Halloween Costume ideas 2015
Articles by "parametric"
@dorothiar #arttips #interview 101 2 Column Template 2012 mentee 2013 2013 mentee 2014 2014 mentee 2014 Portfolio Winner 2014 SCBWI Portfolio Mentorship Winner 2015 mentee 3 Column Template 360 3d 3d print 3d printing 3delight 8bit Abbey McCulloch abstract acryla gouache acrylic action addon adobe Adobe Flash CS3 Adobe Illustrator Advanced Tutorials advection Advertising advice Agata Wierzbicka agents airplane Al Wiseman ALA Alan E. Cober Alan Lee Alex Ross Alexandra Compain-Tissier Alexandra Lekias Alexandra Levasseur Alexandre Korobov Alexis Winter algorithm alien ALT Amelie Hegardt Amit Shimoni amusement an Ana Aranda analog Andrea Hrjnak Andrea Hrnjak andrea offermann andreaoffermann andreazuill Andy Musser Angela DiTerlizzi Angelika Peißker animal logic animals animation animation nodes anime anisculpt Anja Kroencke Anna Higgie Anna Jensen Anna McKay Annabel Briens AnneBerry Anneke Krull Annu Kilpeläinen anstudy anthology António Soares ar arduino area armature arrange array array modifier arrow art art director art directors Art is fun! art reps art tools Artaksiniya arthictecture arthur rackham artists artwork ase Ashlyn Anstee Asian aspiring asset atom attribute attribute transfer audio Audrey Kawasaki augmented reality aurasma Aurelius Battaglia author illustrator automatic automation Autumn Whitehurst avatar Avrom Yanovsky AW14/15 award awards Babeth Lafon Babies baboon Baby Love Background background color bacteria bake baking ball Bamboo banner Banner images banner making Barbara Dziadosz barcode basic bbox beads beats Bec Winnel beginner Bel Johnstone Ben Denison Bernie Fuchs Berto Martinez Beth Krush better photos bge Bijou Karman Bike biscuit bishop black and white black and white art Blair Breitenstein blam blender blender game engine blender3d blending Blinkie Blinky blob blocks Blog Tips blogger Blogging Friends blogs Blonde blur effect in pixlr and photoshop blur images and pictures bmesh bmesh viewer bolognaragazziaward bombing bone bone modeling bones book book launch books boomerang bottle bounding box bowl bpy brian eno brian ormiston Brian Sanders brian won brick bridge Bridget Davies bright Brooke Boynton Hughes build modifier building burns business Buttons bvh cage Caitlin Shearer caldecott calibration camera camera settings camera tips Candle capcom card career Carole Wilmet cartoony Cassandra Rhodin cast Catherine Campbell Cecilia Carlstedt cell center pivot centipede cg cg photography chair challenge Chanel changin color in pixlr changing color chaos character Character Bible character development charcoal charles Charlie Dot Charlie Hebdo Children children's book illustration chocolate Christina Drejenstam christina forshay Christina K christinaforshay Christmas Cindy Derby circle circle dance city cityengine clock clones cloning cloth Cloud based clover CMYK Coco Chanel Cody and the Fountain of Happiness coffee collect collection Collections collision color color balance color cast color correction color mode color study colorful Commercial Use complexity component compositing composition computational thinking computer concept art Condensed Posts conference connect connect the dot connection Connie Lim Conrad Roset constrain constrast contagion content Contest contracts control converter copy copyright Corinna Luyken count Courtney Brims crack Craft craftsmanship Craig & Karl creative creativity creature cricket Cristina Garcia Martin critic criticism critique Crop Crop Tool cross section crowd csv cubism curve curve modifier custom Custom Blog Design Custom Blog Design Tutorial Custom Blog Designers Custom Illustration custom properties Custom Signature custom xml cut cutting plane cycle cycles dae Damien Florébert Cuypers Dan Hillier dance Daniel Egnéus Daniel Segrove Danny Roberts Daren Newman Dasha Tolstikova data data path David Blossom david diaz David Shrigley David Stone Martin Dean Hardscrabble Debbie debbie ohi debbieohi deform deformer degrees deleting background in pixler demo demoscene desaturation of images design design by numbers design process Design Tips dictionaries dictionary Different Text Writing in Pixlr digital digital paint Digital Scrapbook Freebies Digital Scrapbooking disk distance distractions distribute diversion DIY DIY Contest Dolf Veenvliet Doll Doll Bones dolls domino domino effect doodle Doodles door doraemon Doris Jackson Dorothia Rohner dots dpi draw drawing drill driven driver drivers dual versions dummy duplicate duplicates duplication dupliframe dvd dynamic dynamic paint dynamic text E Simms Campbell Easy easy pixlr Easy Tutorials Ed Graham Ed Vebell editing editing photos editors education effect effects ego Eleanor Dalton electric Elia Fernández eliza wheeler Elizabeth Mayville elizawheeler Emily Forgot Emma Zanelli emoticon happy-face Emotional storytelling empathetic characters empty entoforms envy epicycloid EPS Illustration Epson scanner erasers Erin Armstrong Erin Petson erinoshea ernest shepard Esra Roise euler evaluate line Eveline Tarunadjaja evenly spacing vertex event everywhere door exhibition Expandable Posts experiments explode exploded view export expression extrude eye eye color in pixlr eye trick eyeball face rig facial expressions facial setup factory Faiyaz Jafri Families fashion illustration fashion week fcurve feature Featured Fee Harding Feedback fence Fernanda Guedes fibonacci Fifi Lapin file File Types Finalists Finding Nemo fire fix photos Flash Tutorials flicker flip flip flop floor flop flow flower Flowers fnmatch focal point follow up font Fontaine Anderson Fonts food footage For Sale force form formula fractal fracture frame Frames Francois Berthoud Frank Bellamy Frank Furlong Franklin McMahon freckles Fred Steffen FrederiqueBertrand Free for Commercial Use Free for Personal Use Free Stock Photography Free transform tool Freebies Frenchillustration Fritz Siebel frosted mylar fruit ninja Fumi Mini Nakamura Fun function futurism FW2017 fx Gabriel Moreno Gabriella Ibarra game game animation gameart gamma gangnam style Garance Doré Gary Fernandéz gel medium generate generative generator geometric geometry Gerald Lazare Géraldine Georges GIF Gildo Medina Girl Giuseppe Castellano Giveaway glorar goals golden ratio google google docs Google Tools Grant Young graph graphite graphite transfer grease pencil grid group group node growth Gucci Guest Guil Godier gustave dore hair handbook Harper's Bazaar harpercollins Harvey Schmidt Haute Couture head Headers heat map Helena Hauss hexagon hexagonal grid Hiroshi Mizuno Hiroshi Tanabe Holiday Holly Black homology honeycomb hook horror houdini how to how to blur a face or an object in pixlr How to change eye color how to delete an object how to desaturate an image how to edit a image in pixlr how to erase an object how to fix red eye problem how to fix red eyes in pixlt How to fix the parts in pixlr in photoshop How to make a banner in pixlr How to overlap the nevus how to remove a object How to remove an object in pixlr how to remove red eyes How to Remove the Background of an Image in Pixlr How to remove the parts that you don't want in pixlr and photoshop how to replace color How to write a Patterned Text in Pixlr how-to Hsiao-Ron Cheng hsv hue humor Hyshil I love illustration magazine idea ideas Igor+André illusion illustrating illustration illustration board Illustration Books Illustration Intensive Illustration Now! Fashion illustration process Illustrations Illustrative Berlin illustrator Illustrator Intensive Illustrator Tutorials iloveillustration magazine image ediditing lessons Image Ready image sequences image theft imaginative import import text import vertex color improving photos inbetween index visualizer Info Ingrid Bockting ink inktober input Inspiration inspirational quotes install instance instance switching intensive interaction Intermediate Tutorials internet interoperability interpolation intersect intersect edges intersecting intersection interview introduction invoke subprogram io ipad Irana Doucer Isabella Hemmersbach islam islamic iteration Izzie Klingels Jack Hearne Jack Tremblay James Dignan James Gurney japanese Jason Brooks Jean Kim Jeanne Detallante Jen and Chris Creed Photography jen betton Jen Rofé Jenny Mörtsell Jeremy Combot Jeslyn Kate Jesse Auersalo Jessica Jessica Lanan jessicalanan jewellery jewelry jiggle Jim Schaeffing Joe Bowler Joe Cleary Joe Isom Joe Krush Johanna Goodman john maeda John Vernon Lord joint Jordan Sondler JPEG JPG jpop juana martinez-neal juanamartinezneal Judge Judit Garcia Talavera Judith van den Hoek Judy Byron Schachner Jules Julien Julian Beever Julie Verhoeven Jump Break Tool JW Anderson K-Fai Steele Kaethe Butcher Kareem Iliya karel zeman Kate van Harreveld Kathrin Kuhn Kathryn Ault Noble Kathryn Noble Katie Kath kdtree Kei Meguro Kelly Beeman Kelly Light Kelly Smith kelly sonnack Kelly Thompson keyframe keyframing kidlit kidlitartists kimberlygee Kirkus Review Kisoo Chai Kodak Konstantin Kakanias Korean illustration Kotaro Chiba Kozue Himi Kremos Ksenia Finogeeva KT Smail kuler Kustaa Saksi Lanan Laptop larry gritz lasso tool latte lattice Laura Callaghan Laura Laine Lauren Rille layer layering Layla Holzer layout leaf learning learning blender LED Leendert meets Ingrid lego length Leonard Starr lessons levels LFW A/W 14 liangzhu liero lightbox lighting lightning Lina Bodén Lina Ekstrand Linda Dorn line line connect line drawing lines Links Linky Love Linn Olofsdotter Lionel Gilbert Lisa Anchin Lisa Billvik Lisa Krannichfeld lisaanchin lisbeth zwerger Liselotte Watkins list list comprehension List First Last listing locator lofting logo Logo Design Lola Dupré London Fashion Week loop looping loops looptools Lorraine Fox lossless lossy lost weekend lostweekend lotte reininger Louis Glanzman louis vuitton Luciana Rondolini luciograph LULU* lv Lynnie Zulu Mac macgyver macouno maeda Magda Antoniuk magic Magnus Voll Mathiassen mailing mailings maker Makiko Sugawa making banners Malika Favre MAMP mandala manga map map range maplelam mapping Marcel George Maren Esdar Margot Macé Margot van Huijkelom Maribeth Olson Marie El-Ahmar Marilyn Conover Marina Esmeraldo Marine Marbleindex mario Marlies Niemeijer Marsha Riti Martha Rago Martin Krusche Martine Johanna mask masking material materials math matrix matrix apply matryoshka Matt Baker matte medium Matthew Woodson maya maze mdd Meagan Morrison measure megaman Megan Hess Meizhen Xu Mel Crawford memory mentee mentees mentors mentorship program Mercer Mayer Meridth McKean Gimbel mesh mesh cutter meshlab Meta Tags metal gear rising Meyoko Mia Overgaard Micca mice Michael Sanderson Michela Picchi middle grade midi miku Milan milipede minidom Minima Mio Matsumoto mirror cut Misc Miss Blackbirdy miss maple's seeds Miss Take Mitchell Hooks mixamo mixing Mobile Apps mocap mod model modeling modifier modular modulation modulus mold molecule molly idle Molly Ruttan Molly Ruttan Illustration money monitors monkey mono-zero monster monster university morph morpher mosaic mosquito motion motion capture motion capture mouse motion trail moto360 mountain muji Muriel Wood Murray Tinkelman mushroom Music and Podcasts My dead pony Nadia Flower Naiad Einsel Naja Conrad-Hansen Natalie Brockett Natalie Foss nathan vegdahl nautilus Nav Bar navigation needle-felting negotiating Neil Boyle neon nescbwi14 nested New Blogger Questions New Blogger Template Tutorials new user pixlr new year new york New York Fashion week Newbery nicholas nicholas bishop Nicholas Hong Niki Pilkington Niso Ramponi nla No Software node node-based nodebox noise non linear animation Non-Web Font normal Noumeda Carbone npr number NURBS NYFW object object color change object info octopus offset Ola Volo Olaf Hayek old formats opaque projector open movie open shading language open source openshadinglanguage opensoundcontrol optical organization origami original art show Ornaments osc Oscar Schlienger osipa osl outline outliner output Pages paint paint weight painting painting on illustration board painting on wood painting with movie painting with numbers Pair pandas panorama Paper paper lantern parabola parametric parent parenting particle particle info node particles pat david Pat Zietlow Miller pattern Patterned Text Paul Faassen Paul X. Johnson Paula Sanz Caballero PC pdb pebbles pencil Pencil Sketch pencils Penguin perfume perlin Peter Helck Photo CD.8B photo editing software Photo Reference Photobucket photographing art Photographs photography photomerge photoshop Photoshop Brushes Photoshop CS3 Photoshop elements photoshop pixlr desaturaion Photoshop tips Photoshop Tutorials Picture Book Builders picture books Pierre Louis Mascia Piet Paris Pietari Posti pingpong pinnochio pipes pixar pixel pixel art pixel generator pixlr Pixlr advanced Pixlr blog pixlr desaturate keep a colorful part pixlr editting pixlr express Pixlr forum Pixlr free transform Pixlr Lesson Pixlr lessons Pixlr mobile Pixlr resizing images pixlr shortcuts Pixlr tools pixlr tutorial pixlr tutorial with pictures Pixlr Tutorials pixlr white black pixlr.com plant plot plotting ply PNG PNG Illustration podcast point point color pointilism polka dots polyCut polygon Pomme Chan pop-overs portfolio Portfolio award portfolio showcase portfolio-advice portrait position Post Dividers postcard poster Posting pot powdered graphite powerhousemuseum Prada presentation print printmaking Prize procedular procedural process processing programming projection Promotion property prototype PSD psy publishing pulse puppet puppetry pydriver pydrivers pyhandler pyhandlers pyramide python quad quick select set quick tips qumarion Rabbit Moon Rachel Ryle radians radius ramp random random motion randomization randomize range float raspi Ray Houlihan reading reading XML READY-TO-WEAR realflow Rebecca Clarke rebecca dautremer Rebecka Skog rebuild recursive recursivedrawing red eye remove reducing glare reference referencing release remesh modifier remix removal remove remove red eyes remove unwanted objects Removing backgroung render rendering renderman repeat repeater repeating replace replacement replacing color representation rerouter resample resampling research Resizing image resolutions retopology retro review revolve rgb rib Ricardo Fumanal Richard Scarry rig rigging rigify Rikke Jorgensen ring ripple roadkill Robert Heindel Robert J. Lee Robert McCloskey Robert Shore Roberta Zeta Robin Rosenthal robot robotic rocks Rodolfo Montalvo Roller Coaster rotation Rousseau rsl Rubin Pfeffer ruler tool Russ Mills russian rut S/S14 S/S15 S/S16 Sabine Pieper sadako Saftey Pins Sainte Maria Sale Sam Weber Sanda Suy Sandy Kossin santoso Sara Andreasson Sara Singh Sarah Jacoby saturation artist tools scan scanners scanning scatter scbwi SCBWI 2015 mentee SCBWI conference scbwi germany SCBWI mentorship scbwi-la scratch scratchboards screensaver screw screw modifier script scrub sculpting seamless Seamless Patterns Search Engines select by material select by name select by type SEO sequence series set keyframe set keyframes shader shading shadow Shannon Stirnweis shape grammars shape key shapekeys shapes shards shatter Sheilah Beckett shell ship shipping shipwright Shoes SHOWstudio shuffle Sid Barron Sidebar Titles Signature Silja Goetz silkworm Simon and Schuster Simon Varela simple simplicity simulation sine Site Engine Optimization Sjoukje Bierma sketch Sketches sketching skin skin modifier skinning slice slicing slides sloth slow parent smoke smoothstep SN snake Sneek Peek snippet Snow Snow White Snowflakes soccerball social media Social Media Buttons Social Networking society of illustrators Society6 soft body softbody Sonia Menti sound sound wave space spaceship sparta special spider spiderman spiderweb spin spiral Spiros Halaris Spiros Halaris x Urban Decay spline Spot Healing Tool spreadsheet SS16 stack stacking stair stamp Stan Galli star starfish stencyl step Steven G. Dobson still Stina Persson stone stones storytelling strand strand info strands street art string stripes structure studies studio style stylistic summary Summary Posts Summer sun supplies surface Susan Farrington suzanne Suzanne Kaufman sverchok swatch switch sydney system table table of contents take out background Tal Drori tangent tangled Taschen teaching teapot Template Templates tentacle Tess Jacobson Tex Avery text text editor Text Formats Text Styles in Pixlr texture texturing The Cartorialist The Grudge Keeper The Purple Book thinker1 Thomas B. Sawyer thread TIFF tile tilecam tiling time time code Tina Berning Tina Kugler tips tips for artists Toby Neilan Tom Baxter Tom Bjarnason tombow tomie depaola tool tools topology tower Tracy Turnbull Train transfer drawing transferring sketch transform transformation transit travel triangle wave Tricia Springstubb trigger tris tristan lock tube tubes Tutorials twitter type tool typeface typography unbake unity3d universal unquad utah uv valentine Valentino Valerie Servais vanilla variable variation variety vase vector vectorized Velwyn Yossy venus Veronica Ballart Lilja vertex vertex color vertex group vertex paint vertex weight VFX Victoria Boysen video Videos viewer Vintage virtual virtual studio visualization vivid vividfestival VOGUE volumetric voronoi Vote voxel voxelated voxelation walking teapot Walter Einsel wand tool water soluble graphite watercolor wav wave we need diverse books web webbing Week Themes weight welcome Wendy magazine Wendy Plovmand what casues red eyes What is Pixlr Wherever You Go Wide Awake Bear wiggle Will Davies Winner Winnie Fitch Winnie Truong Winter wire wired wireframe wolfram Woman wood woodwork wool wooly wordpress work workflow World writing writing XML www.pixlr.com XML YA yayoi kusama Yelena Bryksenkova yoda Yoko Furusho Yuliya zaha hadid zen zsphere

I have a growing interest with everything Parametric Design. Blame it on Sverchok and Blender. Well, actually ... I have been researching about this area pretty much since I started Computer Graphics.


There is instant beauty with patterns, repetitions, variations, generative, all those qualities that are inherited from nature and hence look very natural for our eyes, yet feel alien sometimes.

A small confession: I have an obsession with Voronoi (Cell) patterns. And that alone can be seen in many modern design. Actually designers and architectures are abusing Voronoi patterns for quite some times. Voronoi 3D is used in fracturing.

Maybe, designers and architects are just a bit curious (or "lazy") when they decided just to add complex looking pattern to their "simple" design! Let computer randomly form and generate the design! Sometimes, they end up with an interesting design that is really difficult to design. Happy accident.

I bet that is happening too. However, in grander scale, we do appreciate both SIMPLICITY and COMPLEXITY in design.

I want to give an example today how we could parametrically "re-modification of" Soccer Ball design into an interesting complex design.

POLYGON vs NURBS FOR PARAMETRIC DESIGN

Remember in the past when 3D people are modeling characters using NURBS? Until they realize that Subdivided Polygon is probably better and more efficient. Actually both are a good for parametric modeling. Polygon can easily tesselate into complex design, working with vertices, edges, and faces. While NURBS Curve and Surfaces has it's own built-in parametric UVW surface that is always smooth and can be modified in a more parametric ways (extrude, loft).

In Blender, we are using Polygon mostly. Maybe that will change when the NURBS is making a come back.

PURE SOCCER BALL MANUAL 3D MODELING



Firstly, I stumbled into this tutorial by Weelian Soh by accident today. Luckily, we have a good way to make soccer ball manually. It's quite fast too.

I went through his every steps on modeling soccer ball and I kind of like this.
https://vimeo.com/5991717

In a way, this is quite procedural modeling and parametric as well. Why so? Because it is like a recipe, there is exact step by step and it teaches few modeling techniques.

Soccer Ball is very special, it's Mathematically correct.

SVERCHOK AND MATH FOR SOCCER BALL?
We could start from nothing and model the Soccer Ball using Sverchok and Math. I am 100% sure! Maybe someone will go about doing that. So we can have a nice parametric Soccer Ball design (Soccer Ball is after all just a Soccer Ball, or is it?) right inside Blender. I will save this as challenge for you and myself.

https://www.awesomemath.org/assets/PDFs/MR4_planar_graphs.pdf

I simplified Weelian Soh's STEP BY STEP soccer ball into something like below that we can actually memorize and recite, to teach our future CG artists (I am dead serious!):

Here it is ... Soccer Ball in 30 Seconds... Start the timer....

1. Start with Icosphere.
Just like the Weelian Soh tutorial, I started with Blender Icosphere. Tap F6, set division from default of 2 to 1 division.


2.  Do Subdivide in Edit Mode, Level 2.
Hit Tab, in Edit Mode, do Subdivide up to level 2.

Well this step takes the longest... however, if you go to Top Ortho view, you can quickly select 6 vertices and then switch to Bottom Ortho View to select another 6 vertices.


3. Select all peaks and average.
Selecting the peak vertices of our 3D form so far, we want to "flatten" them so that we end up with the 5-sided parts of the soccer ball.


4. Simplify the soccer ball
In this case, I actually want a flat very basic 3D soccer ball with 5-sided and 6-sided. I use Blender Modifier actually:


Voila! We got Maya's Primitive Soccer Ball.
DONE creating Soccer Ball in 30 seconds?

Continue on, we don't just settle with simple looking ball. We want something more interesting.

You could continue with the usual HQ soccer ball, extruding, inset, Shrink/Flatten, Spherize. Careful here and don't end up with Macaroon Soccer Ball like what I have here:
Oops... I ended making this.
You need to Bevel properly. Use "Face Inset", then Subdivide. Poke the Faces, then Spherize. That's all, I think you could do it differently, to get that perfect Soccer Ball.


Here is the BLEND: https://www.dropbox.com/s/0m0hkh3gwwb5l4n/flower_soccer_ball12.blend

With a bit of Fractal:

However, I want to switch mode now to add some complex design. Let's slow down now.

DETAILING SOCCER BALL

We can take this soccer ball design to many different level.

I am following this trick shown in this "Parametric Building Design using Autodesk Maya". This book has some interesting technique in building all sort of intricate parametric design.

Actually some of them is not a purely parametric, but they are still step by step and applied as whole. Which is procedural. That is okey, we don't worry about that.

Let's bring back our soccer ball.

1. Clean soccer ball.

2. "Chamfer the vertex"
Actually in Blender, there is no Chamfer per se, so we just use Bevel Edge, it can give you kind of similar result....


I have to bring in Maya's Chamfer: (I think this is more like Max)
Maya's Chamfer.
Actually in Blender, you can do something similar if you activate "Bevel Edge - Vertex Only". Very neat.


Blender Edge Bevel is actually pretty robust (similar to Maya). You can modify the profile, segment, etc.


3. Peak the N-Faces
Select all faces, except the Tris, then Peak the face, to get the Poke.

Poking faces is usually bad for deforming geometry (we know, we love quads), however, in parametric design, we care more about getting interesting pattern.


We can Poke and Spherize to get something like below:

If we do Extude Individuals and then Scale Individual Faces:

If we use the "Vertex Only" options, we actually get a more beautiful umbrella flower like pattern.

From here on, Blender has own advantage of being able to go to Wireframe Modifier and just respect the edges to get such design below:


The Wireframe Modifier works only for faces, not edges, but if we have only edges, we can also use the Skin Modifier. And combo with Subdivision Modifier, you got all sort of interesting result.



New York City NYE Ball can be a great inspirations.






SVERCHOK SOCCER BALL MODIFICATION

We have not even used Sverchok yet...

Procedural bouncing ball is also possible by the way.
In Sverchok, we can bring in Polygon and turn it into Edges. Edges is totally and well respected.




Enough with soccer ball for today... I will add more over time for Soccer Ball related.

My point here will be:
We don't always need to start from scratch, in fact, the BASE forms is an important before we add more details. In fact by combining and mixing 2 factors, we often get something that is original.

RECOMMENDED BOOKS

Parametric Building Design using Autodesk Maya
http://ming3d.com/book/resource/

Form + Code
http://formandcode.com/

Parametric Design for Architecture
http://www.laurenceking.com/us/parametric-design-for-architecture/

DRAWING USING WIREFRAME IN THIN AIR INSPIRATION

http://www.thisiscolossal.com/2014/04/lix-the-worlds-smallest-3d-printing-pen-lets-you-draw-in-the-air/
https://www.kickstarter.com/projects/studiocheha/bulbing-a-magical-lamp-design-light-up-your-life

As I started get deeper into parametric modeling using Sverchok, the more I realized how powerful this workflow could be, when fully integrated into Blender environment and work with the rest of Blender.

The Sverchok Add-On is updated daily, so we may see new nodes and improved version of Sverchok. I tried to keep it up to date.

THE SVERCHOK SCRIPT NODE
There are already some awesome tricks like the new SCRIPT NODE (thanks ZEFFII) that is capable of doing lots of unusual Python tricks inside Sverchok.

I tried experimenting with it using simple Python Script node in Sverchok to randomize Light Colors and Light Intensity using node inside Sverchok.

It requires scripting, but by "nodifying" and containing useful Python script inside a portable node, and having ability to control many objects using simple parameter is great.

  • INPUT
  • PROCEDURES
  • OUTPUT
It is just quite fascinating when LOW LEVEL Data can actually modify the HIGH LEVEL Object Data, back and forth.







POST MODIFIER DATA
In latest Sverchok, we also have the option to read the low level data, POST the Modifiers. This is really cool. Just like Particle System "Use Modifier Stack", the Sverchok preview is shown after all the Modifiers applied to the Mesh, but it is still alive. This is even more procedural.

Let say, Dynamic Paint to scatter some Particles, which then with Sverchok we can control the details of the copies. This still has limitation of course, because it can get heavy. Sverchok is like working in Edit Mode, and unlike Particle Instancing, what we are working inside Sverchok is something to be baked out as Geometry or Mesh at later stage.


MORE POWERFUL THAN ONE THINK
The MAIN PURPOSE and focus of Sverchok is for Parametric Modeling as Nikita has stated. It is the right way to remain focus on development to keep it maintainable by Sverchok developers. I agree with this.

However looking many years ahead, I can see that this is going to be bigger than it is today, when continue being developed. As Work In Progress (WIP), Sverchok Add-On is something that can help general CG artists to understand Math, Vectors, Matrix, parametric creation and so on.

In fact, at current development stage, with limited nodes a more technical users can carefully study each node properly and see them working in context. This is very important. Imagine if the collection of nodes grow like Houdini, over hundreds nodes, then thing can started to get very complicated.

There are already a lot of gems and useful information can be found at Sverchok original thread at Blender Artist Forum:
http://blenderartists.org/forum/showthread.php?272679-Addon-WIP-Sverchok-parametric-nodes-for-architects

At the moment, that forum thread above is the best place to ask questions and maybe request a feature. Sverchok development team is amazing.

USEFUL PARAMETRIC SNIPPETS SERIES

Now, with this "Parametric Snippets" blog series, I will be posting some random finding, maybe simple snapshots of Sverchok node tree that is useful and can be used to build a more complex setup.

Nikita also posted lots of Sverchok snippets
https://plus.google.com/103738725871920806709/posts/Xz5v7TrDHeD

Remember that often by connecting many SIMPLE node tree, users can create COMPLEXITY that normally is very hard to create using manual traditional 3D modeling method.

TRICK: Procedural Animation

It is already possible to create Procedural Animation that can be rendered using Sverchok. I can confirm with that.

There are still few steps involved like:
1. FORCING ANIMATION FOR SVERCHOK
Activating Sverchok animation to update every frame changes, using below Python script below (was written by ZEFFII also, thanks man!)
import bpy

svAnim = bpy.data.node_groups['NodeTree'] 


def my_handler(scene):
    svAnim.update()

bpy.app.handlers.frame_change_pre.append(my_handler)

2. BAKE ALL
Bake is important to enable rendering. Luckily, there is already the Bakery node that can update and output an actual renderable mesh. This data is often destroyed and rebuilt whenever we make changes in Sverchok. However, still useful and make Sverchok Preview renderable.

UPDATE 20140428:
Displaying Real Time Animation is now part of Sverchok, no longer necessary to force it using Python script above.

VECTOR MATH NODE

Vector Math node has lots of useful Math operations for Vectors, such as Cross Product. Below is the basic how to visualize a Cross Product.



TRICK: Outward Vertex Normal => Adaptive Polygons

I learned this trick from Houdini TD Spencer Lueder not long ago. To get Vector of Points that goes outward, just subtract vector to itself.

In Sverchok, just use Vector Math to add or subtract to get outward vector.


Which allows you to do something like below.



If you want it to work for Center of Polygons, use Center Polygons Sverchok node.



Alex said that instead of having Vector In (0,0,1), we use something like this instead: 1e-6 (0.000001). Small number that is almost zero.

Anyways, above we can see how WEIGHT made by node ca be used to pull objects to face certain direction specified.

Of course, there is also the uber powerful Adaptive Polygons node that you can use it when required. It is more convenient, very easy to adapt OBJECT into a TEMPLATE.



Mentioned by Nikitron that we can also use VECTOR NORMAL node.

TRICK: List via Formula

I found this from one of example by Nikita.

We could type in our own List of Numbers into the Formula node. As we know it already, there are two types of Formula nodes: Formula and Formula2.

Formula

Formula2
One of the main reason I like Sverchok is its way to handle LIST DATA STRUCTURE. Very similar to Python, easy to understand and we are given all kind of List nodes that does some interesting modifications to INPUT list and give us OUTPUT list that we really want.

Reversing List example:

We look at data, check and compare to understand why certain List does not give us the output we want. For example below, we have Random Vector node that gives output ready to be used as Vertices, while the Formula2 node, needs List Join to give data output that is better suited for Vertices.


Reversing List can change the output Polygon Face normal.

Try this yourself with all kind LIST nodes in Sverchok to better understand LIST in Sverchok and how it handles multiple data. It is very important once we start dealing with FRAME DATA for Animation Offset, Animation Variations.

NEW TRICK 20140429: Randomize Copy Instance

This is actually something that I requested from Sverchok team around 3 months ago. This is quite a nice surprise and finally we have List Item. Thanks to Linus!

LIST ITEM is a powerful way to quickly create variations of object.

In this example, you see that we have something that resemble Particle Instancing (random object in group). HOWEVER, keep in mind that those duplicate copies are NOT instances, they are actually a single object that can be combined together. Similar to SOP (Surface Operator) in Houdini, or like Blender Edit Mode, if you are adding objects into the Mesh. They are all can ended up being a single mesh or multiple objects if you use LIST JOIN.



There are few things, such as: UV, Materials, etc are not yet implemented. Like I said, it's not instancing.

TRICK: Adaptive Edges

New node from Linus. This replace every edges with another edges. You can supply the replacement edges by drawing it parametrically or just draw Grease Pencil.

Sometimes this node flip, but I guess there is a way around it.

TRICK: List Match

List Match node is an interesting node. I need to look at Grasshopper PDF documentation (Sverchok is originally inspired by Grasshopper for Rhino).

Say, I have 2 Lines DATA, and I want to "match" them.


TOP LINES have 9 Vertices
BOTTOM LINES have 2 Vertices.

Let see what List Match can actually do:


X-Ref

Cycle

Short

Repeat

NOTE:
Watch out, don't forget to do "Matrix Apply" when you use Object In. That is to ensure that the position of our data is already Applied, not at the original position (remember sometimes we do need to Apply Position, Rotation, Scale to confirm the current transform in World Space)

And of course, List Match can give us the MANDALA.
http://en.wikipedia.org/wiki/Mandala

Everything comes from a single dot.
Everything is connected to each other.
A single entity does not belong to itself, but part of the universe.
You see List Match is really quite powerful.


Not necessarily for random abstract looking design,



TRICK: Visualizing Index (of Vertices)

In the past, before Blender 2.7, we are able to display INDEX number of Vertex, Edges, Face of Polygon Mesh in Edit Mode, by turning it on using:
bpy.app.debug = True

You probably want to consider using this script by Bart to visualize the indices.
http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Index_Visualiser

However, in Sverchok we can use the INDX Viewer Draw node.


For now, it seems to display only Index of Vertices. I am hoping that it will one day display ANY kind of values, including Vector, Weight, and other type of data that represent values. A bit like ICE in Softimage. It can be very cluttered, but good to have.

NEW TRICK: Kdtree and Convex Hull

Kdtree node deals with Point Cloud. It is quite powerful as it can find NEAREST points by comparing points. Think Ambient Occlusion or Raycast. Kind of like one mesh can SEE or aware of other mesh. Imagine glass ball with electricity inside and you are touching the of the glass. Kind of like that.

Convex Hull node is useful to create Mesh output based on Point Cloud.


Kdtree is a very advanced node, and I think it has lots of usages.





Use the Force?


TRICK: Line with Noise
Sometimes everything can be a bit more interesting, natural and organic, when we applied Noise.


TRICK: List Mask for Polygon Face Masking

I found out about this by accident.


List Mask can be used to mask data. But it is most obvious when we are masking Polygon Faces.

It works with LIST with ZERO and ONE (TRUE or FALSE).




With something like this, you can quickly create interesting geometry pattern.

SCRIPT NODE: Compare True False

I wrote this Python script for Script Node that "compare" between 2 list and return TRUE or FALSE based on the list. This could be useful for List Masking. Maybe this is possible to re-create using Sverchok node, but often it is easier to write down as code.

I am sure below script can be simpler or more efficient, but it will work.

HOW TO USE:
Just provide 2 different list, the order matters. It will result in TRUE or FALSE (Boolean Binary Code) by comparing the two list, if there are 2 matching number, return TRUE, and if not matching number, return FALSE.

SCRIPT NODE: "COMPARE"

def sv_main(dataA=[], dataB=[]):

    # in boilerplate - make your own sockets
    in_sockets = [
        ['s', 'In list A',  dataA],
        ['s', 'In list B',  dataB]
    ]

    # import libraries if you need.
    
    # your code here
    out = []
    
    for i in dataB:
        if (i in dataA):
            out.append(1)
        else:
            out.append(0)
    
    out = [out]

    # out boilerplate - set your own sockets packet
    out_sockets = [
        ['s', 'Out', out]
    ]

    return in_sockets, out_sockets





SCRIPT NODE: Random Range with Min and Max
def sv_main(min=0.0, max=10.0, count=1, seed=0.0):

    # in boilerplate - make your own sockets
    in_sockets = [
        ['s', 'Min',  min],
        ['s', 'Max',  max],
        ['s', 'Count',  count],
        ['s', 'Seed',  seed],
    ]

    # import libraries if you need.
    from util import sv_zip
    import random

    # your code here
    random.seed(seed)

    myList = []    
    
    for i in range(count):
        #myList.append(random.randrange(min,max))
        #myList.append(random.random())
        randVal = (max-min) * random.random() + min
        
        myList.append(randVal)
    
    print(myList)
    out = myList

    # out boilerplate - set your own sockets packet
    out_sockets = [
        ['s', 'Out', out]
    ]

    return in_sockets, out_sockets


NOTE: We might end up with some stray vertices that we need to clean up later. No big deal. Just use Blender Edit Mode to clean it up.

UPDATE 20140428: Nikitron said we actually have Delete Loose node to clean up stray vertices and edges, so please use that!



TRICKS: Binary Code, Random True or False
Creating Number Pattern is a very interesting area. You can study or source some Math formula that does it for you.

A very cool example is the Script Node for Fibonacci Phyllotaxis (by ZEFFII) to generate numbers that spit out beautiful design:

Now, for something simper, if you want to generate random 0 and 1 number pattern, you can use something like below:


Random gives a random floating values between 0 and 1, the Float2Int node will use round() function to round the number, and you can end up with number 0 and 1.

Below is an example of usage of "BINARY SUZANNE"



Suzanne is made up of 500 Faces, and randomly deleting (masking) Faces using Random 0 and 1, we end up with 250 Faces left. Something to remember. 50-50 chances.

Remember that you can also bring your own Data using Text In node (CSV, etc). Unlimited possibility!

TO BE CONTINUED...
That's all of the Sverchok Parametric Snippets of Tricks I have for now. Hope they are useful. Will add more over time.

MKRdezign

Contact Form

Name

Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget