Halloween Costume ideas 2015
Articles by "zaha hadid"
@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


VARIATION of clones (copies) in PROCEDURAL GEOMETRY creation is possible in Sverchok via something called "Vectorized Input".

The term "was coined" by Zeffii, and Linus also tried to explain this at Blender Artist "Sverchok" thread a few times, I recommend you to have a read at the thread.

UPDATE 20140520:

Zeffii corrected me:
"I'm afraid it was neither Linus nor I who coined this term. I started using it to describe how we interpret data coming into nodes. like:

is it one value, or a list of values... or a list of lists of values...etc. As soon as you get more than 1 value as input, you can speak of vectorization.

The term is probably in use since 1930s. More correctly, but less fancy way to call this is Array Programming
http://en.wikipedia.org/wiki/Array_programming. 

But even in big packages like Matlab and R it is often called Vectorization"

This is probably a little bit difficult to understand, however it is clear after shown with examples.

USE VIEWER TEXT NODE TO SEE DATA

What I use often, but I don't always mention in the writing is that I use VIEWER TEXT node really often to check the DATA being passed on from one node to another.

It is often clearer than using VIEWER DRAW. Sometimes the DATA become invalid or in the wrong form of LIST, and Sverchok does not understand what to do with it.


When we bring in 3 Objects:

When I first started using Sverchok, although I sort of getting in what Nikitron analogy about "nesting list in Sverchok" as "Matryoshka Doll", not until I am using it for a while that I started to get a grasp of it.

Dumping DATA into TEXT OUTPUT node as Sverchok also give you a different preview of the data:

For 3 Cubes above that I brought in, I can see the EDGE data in LIST like this:
[ [ [ ], [ ], [ ] ... ], [ [ ], [ ], [ ] ... ], [ [ ], [ ], [ ] ... ]  ]

LIST inside a LIST inside a LIST can be little difficult to grasp in our brain. However remember that most of time this, Sverchok will take care of them, as long we know what to do.

Anything to do with list you can modify using the LIST nodes. These below are the most useful:

  • LIST LEVELS
  • LIST JOIN
  • LIST FLIP
  • LIST ITEM
  • LIST MASK

But all of them are actually equally important and worth trying to understand list.

RANDOM LINES USING RANDOM VECTOR

Supposed we want to generate some random connected LINES. We can do that most easily using RANDOM VECTOR and LINE CONNECT.

Random Vector can generate random 3 values (vector) that act as points that we can easily connect using the Line Connect.


We know that we could use "Seed" parameter to quickly get variations. However, if we are cloning the data using Matrix, we are always end up with same exact clone for each copy. It could be a hassle to always need to random pick Seed, then Bake the mesh each time.

In another 3D package, we want to do variations using "copy stamping" method where each copy has variations, whether it is via Random Seed number or other DATA values supplied.

Now, the key here is to check whether:
- The Generator Node is supporting Vectorized Input port
- We have way to port the Vectorized Input data.

This all made trivial via one node: LIST INPUT.

INTRODUCING LIST INPUT (FOR VECTORIZED INPUT)

This is quite a new node for me. The way I see it is this is one node to manage the Vectorized Input data. I know that this list allows me to generate VARIATION in clones.

"Random Vector" node accept Vectorized Input data and this is key to remember. This makes everything work as expected and we get variations.

So, if we plug in LIST INPUT node into RANDOM VECTOR we get instant variations:


We could then "offset" the SEED Integer value like below just to get all kinds of variations.


This might not sound like a big deal, but think about it for a moment, THIS is actually VERY POWERFUL. This is the reason I like about procedurality.

Because when we are able to generate variations with every node and every parameter in Sverchok, we suddenly have an unlimited possibilities.

Below is CONNECT LINES FROM RANDOM VECTOR:


What if I make a KNOT (lines goes into loop like Circle)? CIRCLE node is special and just recently upgraded so it can take Vectorized Input. Again, this is important. We cannot actually do this not long ago.

Below is KNOTS FROM RANDOM VECTOR: (I called this "Linus Knots")


Before, we have an open LINES, now we have KNOTS.

Unpredictability is part of procedural creations.

Vectorized Input => (NEW) Noise


Not always very obvious, many nodes can take multiple data input (vectorized input). For doing something like above, I often use Viewer Text to check whether my LIST data is correct or matching, and whether it is really outputting the correct data needed for final bake.


Remember we are working with low level data.
- A cube has 8 vertices
- If we want 4 x List Input, we will multiply the data 4 x 8 = 32 vertices, each still contained within 4 x List Input
- Then perhaps we want to push each vertex using random vector value (each vector is 3 values), how many random vector do you think we need

Now, I think Sverchok data structure management is pretty smart (I think so), so often we don't need to think too much about this. Just watch how the data get passed from one node to the next, keeping the pattern needed (to create geometry) and make everything manageable and we should get predictable output.

PROCEDURAL KAMASUTRA (2014)



EXAMPLE: Procedural Stars

Looks like with STAR, we can do it differently, I think below is kind of the right way to approach it. I am using LIST MASK to select "every other" points and then just scale it out.


One key different here is that we can use Vectorized Input with Circle node. Which means, we can output instant variations to our stars generator.




NOTE:
Funny thing I found here is that is I use VARIATION COUNT over 30 counts, I am starting to get some glitches. Maybe 30 Vectorized Input data is maxed out at the moment?


UPDATE:
Linus gave explanations:



Something like below would work:

TRIANGLES INA BOX



What can Triangles in a Box do? Instant Zaha Hadid? For that we only need Cross Section and Random Vector nodes.


GLITCH IN OPENGL SVERHOK VIEWER

Sometimes you might notice there is a little glitch on the Viewer like this:



Linus and Zeffii's explanation:
- For now, convex draws fine, concave doesn't.
- Don't expect ngons with concave elements to render properly

Keep that in mind, the preview is just a preview. Anyway, the resulting bake is completely fine.

It is probably fixed already.

EXAMPLE: Procedural Stones Generator



Interesting how we have all kinds of method to generate "random shaped" rocks or stones or pebles. This is probably the ultimate way.

Combined this with PROCEDURAL SHADER creation in Blender:


Random glowing Stones.

EXAMPLE: Liero's Rings


At Sverchok Thread #880, Liero gave this example creation you can do using the updated CIRCLE node and Vectorized Input.


All credits goes to LIERO on this one.


This is something that might become a Procedural City Map

THE ZEN OF PROCEDURALITY IN SVERCHOK

I can be madly philosophical about this.

Think about the BEGINNING and ENDING of a MESH geometry, before it become a truly useful entity (rendered out or used in game engine).

Your geometry may BEGIN its LIFE as 3D polygon mesh that you already have in the scene. It may also start inside the Sverchok, made using Generator node, out of nothing, just collection of NUMBERS.

Either way, the geometry eventually escapes and falls into Sverchok world. There, this geometry is TRANSFORMING.

Inside Sverchok, it become the Matrix, Vector, and List of Array of Numbers, Simply A GHOST mesh object. We can observe, manipulate, reduce, replicate, clone, filter, ... basically anything. This GHOST is FORMLESS, as Sverchok GHOST object is not yet REAL.

Suzanne is now a Delta.
To be REBORNED as a new object in Blender, we need to hit BAKE. Or turn it into temporary mesh using the BAKERY node. Or the (NEW) BMESH Viewer.

However, for us, the CREATORS, between the BEGIN and END of PROCEDURAL MESH, what truly matter is the JOURNEY.

"Procedural Unfold Script" by LIERO:


I accidentally stumbled into this awesome script.

Actually this is also kind of effect I always wanted to create in Blender. This is really brilliant!

I was questioning about CODE vs NODE and how algorithm can be used and setup advanced complex things. I realized I am just a newbie after all.

This Unfolding Flipping effect is brilliant because it makes use of Blender Rig (Bones) system and the effect is "procedural". I am sure that eventually this kind of iterative procedural animated effect can be done inside Sverchok.

Definitely something for you to play with:
http://blenderartists.org/forum/showthread.php?307784-unfold-transition

NOTE:
If you want similar "philosopy" about "Particle's Life and Death", you can read it inside this old book:
http://books.google.com.au/books/about/The_Magic_of_Houdini.html?id=PKN8AAAACAAJ

BMESH VIEWER NODE (!)

This BMesh Viewer node is very new, still in Beta. This node allows a different kind of "Baking". We can apply Material while Sverchok is still cooking. And more. Sverchok object is now LIVE.

What interesting is how we could manipulate geometry in this way:
MESH => SVERCHOK => BMESH => MODIFIER => SVERCHOK => and so on ....

BMesh Viewer makes Sverchok Viewer more real.

This is starting to get really serious and making me a little bit nervous.

We could start inside Sverchok and then combo with normal Blender environment.

SVERCHOK => BMESH VIEWER => Blender MODIFIER
=> Back into SVERCHOK => OUTPUT



This BMesh Viewer node is still in beta and of course there are some limitations, but this is quite exciting.

I have touched many of the basics and the most trivials. Hopefully this information helps you to build some more interesting procedural works.

LINKS

http://www.gamasutra.com/blogs/JayelindaSuridge/20130903/199457/Modelling_by_numbers_Part_One_A.php
http://www.complexification.net/gallery/
https://www.youtube.com/watch?v=AnAqB7LZUb8
https://vimeo.com/94720637
http://cliptic.wordpress.com/



I quite like the word "deconstruct", here is the same word in Russian according to Google Translate:
деконструировать

That will be our keyword of the day. I want to take you to look at one Sverchok example, breaking it down and putting it back together.

TODAY'S MAIN INGREDIENT

  • Matrix In
  • Matrix Deform
  • Cross Section
  • Line Connect

LEVELING UP

That is the only way one can actually LEARN and MAKE and DESIGN the Sverchok way (parametric or procedural way)

In term of learning Computer Science stuffs, like text-based programming, or node-based which is basically visual way of programming, we need to learn from examples. And with the examples, we will encounter range of examples from Basic Level examples to Super Advanced complicated and complex examples.

It is very tempting to want to go directly to complex advance examples right away, but it is a good idea to understand the fundamental and re-create the simple Basic Level examples, before going to the next level. If you are stuck on something complex, try breaking it down and go back to easier level.

What often frustrates learning experience is that there is a HUGE gap between Beginner Level to Advanced Level. This is very common in many fields.

You want to know my Level today? I am actually still just a Beginner, slowly going to Intermediate Level. I like the Beginner Level, because we have more freedom. Recreating Basic Level Artwork is usually faster and we can be creative and think of many solutions.

Advanced Level will take longer time and we need more planning and you want to get it right and efficient. Don't worry you will get there eventually if you diligently follow your own Sverchok path. Some of you are probably faster to grasp the concept, some a bit slower, but we will get there.

The SVERCHOK Parabola Example 

There are some Blends file kindly provided by Nikita on his website:
http://nikitron.cc.ua/blend_scripts.html

Some examples there are pretty complex, but very nicely organized.

Check the one that says: Parabola. Download, unzip and check the Blend.

Parabola Example

When you open it up in Blender, you probably will see nothing.


Click on Sverchok big UPDATE button to refresh the node-tree. With Viewer Draw node at the end of node-tree, we can see an Output.


I think there are around 8 mesh there. Click on "Bake" button on Viewer Draw to see the resulting mesh.


Yes, I was correct, there are exactly 8 polygon mesh object in a shape of Parabola. Each polygon mesh is made of 81 vertices, there is only a single Face poly for each object.

The reason Sverchok preview a bright yellow is because by default, when giving preview of Polygon, Sverchok will displayYellow color for smallest Face Indices and Blue color for largest Face Indices. Well, there is really only 1 face per object created (with total of 8 objects), so it just colored it Yellow. Probably would be better if the color is not fully flat opaque, but more like transparent.

Anyway, to be more clear, we can unplug the Face data from ViewerDraw.edg_pol input socket and seeing the actual Parabola Vertices Data that makes the parabolic Curve.


You can unplug just by selecting end of noodle and drag it out. Or you can use Ctrl+LMB click drag to cut slice the noodle that you want to disconnect.

So, now we only have Vertices data and Matrix data goes into Viewer Draw and we can definitely see the parabolic shape more clearly.


Next, you can actually adjust the parameter of the nodes. I suggest by trying and change that parameter that made up the Matrix, see how the Parabola changes.


You see the List Series that is creating the Matrix is rotating in Z axis, based from that START, STOP, STEP information, we can see it is really "duplicating" the object 8 times. Because if the range start from 0 and stop at 120, with each step the value of 15, then we get 120 / 15 = 8 Matrices.

Each Matrix duplication is rotated in 0, 15, 30, 45, 60, 75, 90, 105 angle. Total of 8 duplicates, each rotated in 15 degree.

Apparently that is how you can create Duplication by supplying the Matrix. This is really quite neat.

You can have more or less of that Parabolic mesh just by adjusting the step. Be careful and watch the number though, you do not want to get too much "duplications" and you don't want to end up division by zero, it may crash Blender.

If, we modify how the data goes into MatrixIn node, let's try that Location input for example, I can end up with a different arrangement altogether:



Above, you see how it got translated 8 times in Z axis, each one of them, I bet each was translated around 15 units in Z axis, because of how the List Series node is giving the DATA input.

Let's try reroute the DATA into Location and Scale of the MatrixIn node. I use 2 different VectorsIn nodes, one for Scale and the other for Location.

I use a Formula2 node to "Normalize" the input from ListSeries.



If you want to put that Parabola on the Grid Floor, we can use MatrixDeform to deform each individual Matrix and offset the Z position up.



Baking out the result.
If you like to go further in deconstructing this Parabola example, you can see what is making the Parabolic Vertices (Points) DATA in the first place.


This function f(x) = -x * x is responsible in creating that nice Parabolic Curve! This part should be quite clear, if not clear, you can read further, I will try to make a similar example below.

Nikita also once recorded this video giving intro on Sverchok LIVE on Google+, now available on YouTube:
http://www.youtube.com/watch?v=hLQAYTKK250

There are more useful information there presented. I watched the video few times and took some notes.

PARAMETRIC SINE WAVE POINTS

In previous post, I show you how you can take advantage of Line node to draw Sine Wave that goes forever. That is one way to do it. Line node is there for convenient.

But you can also make your own by supplying Points Data using List Series and provide the Range of Numbers you want the total points to be.

Start from blank Node-Tree canvas in Node Editor. Enable the "F" to save the Note-Tree. Shift+A and create List Series node. We need Vectors data XYZ position, so we need Vectors In node before we can see anything when we use Viewer Draw.

ListSeries.output => VectorsIn.x => ViewerDraw.vertices



We can adjust the parameter START and STOP so that the Points created is more centered in grid.



You noticed the START is -10 and STOP is 11. Why don't we specify STOP value at 10? Because that is how the node function work, the series of number will stop before the last STOP. So in order to have a correct "centered" points, I specify STOP as 11, so that the actual last point on the right is placed at exactly 10 unit on the positive X axis

This is all easy. What next? We can do anything to the point. Just like if we draw a Graph, if we start modifying the other positional axis, we get points placed differently.

How about for those Series of numbers range, we use sin() function? Yes, why not, apply that to the Z axis.



That is nice isn't it? Modifying the step will give us more points within that range and we get something like below. Be careful not and never use 0 for the STEP, because that will tell Sverchok to do DIVISIONS BY ZERO and it will crash Blender.


TIPS: Hit UPDATE if you are not getting expected result.

Now, those are just Points in 3D space.

There is a handy Sverchok node to connect Points called Line Connect node. It is buggy at time and may crash Blender (when Bake button is pressed), but for simple stuff like this, it will work. That Line Connect will connect the dots basically.



PARAMETRIC CIRCLE


I attempted to re-create Points of Circle using formula above. There is Math PI is used there. Using the PI we can specifically tell Sverchok how many divisions of points we want, to create a Circle.

The trickiest part is probably just to translate Math Formula into Sverchok node-tree, however, other than that, it is still a rather simple network.

When provided snapshot of node tree like above, you can easily re-create that yourself.

NOTES: Sometimes you need to use Formula node, some other times you need to use Formula2 node. Which one to use? For simple single value input, just use Formula node. If you have array or series of values to calculate using Math formula/function, then use Formula2.


Next, how about we use the knowledge we have learn from Parabola example?

Let's create Polygon/Face for our Circle. All we need is List Join node to turn Series of numbers into DATA STRUCTURE that is needed to create a polygon Face.

TIPS: Below I started to use Blender Node-Tree FRAME to organize my node network. This is very handy to kind of group your network (but different from actual GROUP-ing of nodes!). To frame some nodes, all you need to do is select bunch of nodes one by one by Shift+LMB clicking on nodes, or you draw box around node by pressing B and dragging on nodes you want to frame, and then finally hit CTRL+J to create Frame. You can Color and give Label to the frame to make it clear.

From the Node Editor Menu, you got select Node -Join In New Frame.



We can then use the Matrix setup thing to duplicate the Circles.


All very straight forward stuff but crucial concept for us to understand.

EXAMPLE: MESH CUTTER USING MATRIX

As a bonus, I might as well add this snippet of gem from Blender Artist Forum Sverchok thread. Because it is kind of related.

There is this awesome node in Svercok called Cross Section. This node is useful in creating "slices". But for that, we will need to provide Matrix information and what object to slice, etc.


For example, here, I am slicing Cone with a Plane. The result is that nice Cross Section Ring line. When we want to slice, always just think of Plane for visualization.




Someone at the forum pointing out that we can have multiple Planes into Objects In input node and use it as slicers. This is handy too.


Nikita's example on this is using Matrix duplication setup for slicing. Which is more parametrically correct.



TIPS: It is a good idea to use multiple Vector Draw nodes sometimes to be able to visualize what each Sverchok steps is doing.

With this setup, we can get some nice Cross Section mesh surfaces that is normally tricky to get in Blender. Of course here we are no really slicing the original Cone object.

If you are architect like Zaha Hadid, being able to quickly get cross sections is kind of nice.


http://www.designboom.com/architecture/wangjing-soho-in-beijing-by-zaha-hadid-nears-completion-01-08-2014

For actual slicing, Blender many ways to do slicings. It is quite fast too. Boolean can be used to do slicing.

Anyways, that is pretty much what I like to talk about today. It is only today using Sverchok and Blender that I can see more clearly how Matrix can be used this way.

2D MATRIX GRID

What if we need to duplicate using X Y like Grid? Lucky we have Circle and Plane generator:


3D MATRIX GRID

I am still not 100% sure if this is the correct or more efficient way, I am still trying to confirm this at the Sverchok forum thread. However, this seems to work alright. Maybe there is a more efficient way?

I am using List Join => List Levels => List Join below and it might be a little strange, but that is to ensure the DATA STRUCTURE is correct.

It is something to do with LIST and NESTED LIST and sometimes data ends up NESTED LIST where we really want a FLAT LIST. In Python terminology, there is probably function to flatten() list. Anyway, for us, just be aware and try List Levels.

BEFORE LIST JOIN, AFTER MATRIX DUPLICATE ALONG Z:

vertices: 
(4) object(s)
=0=   (5)
(0.0, 0.0, 0.0)
(1.0, 0.0, 0.0)
(2.0, 0.0, 0.0)
(3.0, 0.0, 0.0)
(4.0, 0.0, 0.0)
=1=   (5)
(0.0, 0.0, 1.0)
(1.0, 0.0, 1.0)
(2.0, 0.0, 1.0)
(3.0, 0.0, 1.0)
(4.0, 0.0, 1.0)
=2=   (5)
(0.0, 0.0, 2.0)
(1.0, 0.0, 2.0)
(2.0, 0.0, 2.0)
(3.0, 0.0, 2.0)
(4.0, 0.0, 2.0)
=3=   (5)
(0.0, 0.0, 3.0)
(1.0, 0.0, 3.0)
(2.0, 0.0, 3.0)
(3.0, 0.0, 3.0)
(4.0, 0.0, 3.0)

AFTER LIST JOIN:

vertices: 
(1) object(s)
=0=   (1)
=0=   (20)
[0.0, 0.0, 0.0]
[1.0, 0.0, 0.0]
[2.0, 0.0, 0.0]
[3.0, 0.0, 0.0]
[4.0, 0.0, 0.0]
[0.0, 0.0, 1.0]
[1.0, 0.0, 1.0]
[2.0, 0.0, 1.0]
[3.0, 0.0, 1.0]
[4.0, 0.0, 1.0]
[0.0, 0.0, 2.0]
[1.0, 0.0, 2.0]
[2.0, 0.0, 2.0]
[3.0, 0.0, 2.0]
[4.0, 0.0, 2.0]
[0.0, 0.0, 3.0]
[1.0, 0.0, 3.0]
[2.0, 0.0, 3.0]
[3.0, 0.0, 3.0]
[4.0, 0.0, 3.0]

AFTER LIST JOIN => LIST LEVELS => LIST JOIN again, finally we have normal DATA for Vertices that can be output.

vertices: 
(1) object(s)
=0=   (20)
[0.0, 0.0, 0.0]
[1.0, 0.0, 0.0]
[2.0, 0.0, 0.0]
[3.0, 0.0, 0.0]
[4.0, 0.0, 0.0]
[0.0, 0.0, 1.0]
[1.0, 0.0, 1.0]
[2.0, 0.0, 1.0]
[3.0, 0.0, 1.0]
[4.0, 0.0, 1.0]
[0.0, 0.0, 2.0]
[1.0, 0.0, 2.0]
[2.0, 0.0, 2.0]
[3.0, 0.0, 2.0]
[4.0, 0.0, 2.0]
[0.0, 0.0, 3.0]
[1.0, 0.0, 3.0]
[2.0, 0.0, 3.0]
[3.0, 0.0, 3.0]
[4.0, 0.0, 3.0]




UPDATE 20140112

You can also do this:


Having Vertices positions DATA is not enough if we actually wanted to DUPLICATE an object We need to piggy chain and Apply Matrix until we can finally use Matrix In and output the resulting Mesh Duplication.



By doing this, we really have created a true parametric Object Instancing setup, kind of similar if we were to do this using Particles Instancing in the past. Or maybe a simple version of Array Modifier.

We could actually control the Scale, Rotation, of each instances and perhaps also randomize the Position of each duplicates slightly.

Let's save that for another time, you can probably do that yourself. It is probably something to do with modifying the Matrix.

NEXT IN MIND:
  • Procedural Leaves, Flower, Feather
  • Procedural Fence
  • Maybe back to Spider Web WIP

LINKS

http://rudycortes.com/2011/09/take-the-red-pill/
http://www.designcoding.net/

I think I started to be able see the Matrix, although still vague and blurry. Do you?

MKRdezign

Contact Form

Name

Email *

Message *

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