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



This is going to be a very short post experimenting with Random Node and Mask List Node.

RANDOM NODE


This Random node is very simple. It generates and spits out random number, floating value between 0-1.

The node actually has 2 inputs: Count and Seed.

  • Count is HOW MANY random number(s) we want to generate as LIST
  • Seed is somewhat not showing here, but Seed is important to ensure we can get a controlled/same Random sequence each time, depending on the Seed number. Go and Google Search about about Pseudo-Random and Seed. This is very common in programming and computer graphics. For us, all we need to know is that Seed has effect on our Random. Without Seed, we will always get random LIST of values each time node get updated. If we have Seed, we still get random value, but the random value will not change, unless we adjust the Seed.

When in doubt, we can always use Sverchok Viewer Text node to see the DATA we have generated.

Random.output => ViewerText.edg_pol

In our case, we are expecting a single numeric data (green colour) which we can pass into the ViewerText.edg_pol (input). By default it should create a single random number.

vertices: 
None 

edges: 
(1) object(s)
=0=   (1)
0.4588973738056037
matrixes: 
None 

We can have more by increasing the Count number. If we want LIST of 20 random numbers (between 0 and 1), we can just specify 20 => Count, or just adjust the parameter.


vertices: 
None 

polygons: 
(1) object(s)
=0=   (20)
0.3452710857877821
0.1959251996927931
0.616749101637486
0.9718642739239581
0.9664688406408067
0.3798277525541313
0.0980924549260125
0.5251572051427283
0.0538339051067017
0.4373704267856366
0.6565082575113961
0.7860850484911037
0.9472031123834527
0.0486644372599713
0.6069508394335287
0.5390751579694629
0.7691046984194654
0.6443680458225259
0.1883957504224623
0.1218586068312288
matrixes: 
None 

This simple node can be very robust in application.

Let say, those floating value number is not really useful for our usage, sometimes we really want simple round random numbers. Maybe you want:

  • LIST of Random values between 0 and 50
  • LIST of Random values between 5 and 25

EXAMPLE: LIST of Random values between 0 and 50


This is quite easy, we just multiply the random floating values we generated. If we normally get random floating value between 0 and 1, if we multiply the resulting values with 50, we will get random floating value between 0 and 50.



vertices:
None

polygons:
(1) object(s)
=0=   (50)
12.37700385173664
46.345988218807264
8.91381413129011
42.96122140236859
8.080274648870304
45.83639547665967
12.748138902331926
34.26018287670364
38.4480903596117
34.41608517012092
31.51107933320289
19.833197259096817
18.169666461583645
33.06442162814089
1.2023448738040752
8.44917385697978
26.91009535784073
41.37562067226905
.... and so on.

However the LIST of values here is FLOATING VALUES between 0 and 50. We want round values, so we can use Float-2-Int Sverchok Node.

vertices: 
None 

polygons: 
(1) object(s)
=0=   (50)
47
34
30
46
29
32
49
15
0
10
14
31
31
0
35
11
6
... and so on.

EXAMPLE: LIST of Random values between 5 and 25

Now, this may seems a bit complicated, but it is just Math Remapping Value formula converted into Sverchok nodes. 

Here, the problem is instead of generating list of numbers between 0 and 1 (default), we specifically ask for MIN and MAX number for the Random LIST generated.

There is Math formula for that, I found from here:
http://stackoverflow.com/questions/1969240/mapping-a-range-of-values-to-another

This is the solution in Python:

def translate(value, leftMin, leftMax, rightMin, rightMax):
# Figure out how 'wide' each range is
leftSpan
= leftMax - leftMin
rightSpan
= rightMax - rightMin

# Convert the left range into a 0-1 range (float)
valueScaled
= float(value - leftMin) / float(leftSpan)

# Convert the 0-1 range into a value in the right range.
return rightMin + (valueScaled * rightSpan)

Our case is much simpler, our Original MIN and MAX is already a range between 0 and 1. All we need to do is to REMAP the RANGE into the NEW MIN and NEW MAX, which is in our case 5 and 25.


vertices: 
None 

polygons: 
(1) object(s)
=0=   (50)
19
14
11
7
12
21
21
17
8
22
6
8
6
5
6
17
13
23
21
22

Next, we will use this Random Node to randomly deleting edges of mesh.

EXAMPLE: Random Delete Edges

To randomly deleting edges of a mesh, we can use Sverchok Node Tree like below:


(Thanks to NIKITRON and LINUSY at Blender Artist Forum for this solution.)



Above, we basically get the input mesh (Grid) and pass it on to this Sverchok Node-Tree that simply deleting some edges and output the result. Very simple.

Remember in previous post how I talk about DATA inside Mesh, which is basically a collection DATA that consist of DATA for Vertices, Edges, and Polygon? If we are to randomly deleting EDGES, we simply need to modify the Edges DATA and pass it back as output.

We can use Sverchok LIST MASK node to help us with this task.

Imagine if we have LIST of total of 10 Edges. With LIST MASK, we can tell Sverchok to mask some edges. When Edge DATA in the list is masked, it will be hidden when the data is pass on as input.

Edge DATA like below:
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
(6, 7)
(7, 8)
(8, 9)
(10, 11)

Using the LIST MASK node, we can mask it using LIST of True (1) or False (0) values.
0 => (0, 1)  => HIDDEN
1 => (1, 2)
1 => (2, 3)
0 => (3, 4)  => HIDDEN
0 => (4, 5)  => HIDDEN
0 => (5, 6)  => HIDDEN
1 => (6, 7)
0 => (7, 8)  => HIDDEN
1 => (8, 9)
0 => (10, 11)  => HIDDEN

If we then pass the new Edge DATA, of course we are basically DELETE-ing the hidden edges.

So, let's recreate this setup step by step using Sverchok node.

STEP 001 - Get Input Object

I have my object, which is Blender default Grid mesh, it has 100 Vertices and 180 Edges.


STEP 002 - Random List of 0 or 1 (False or True)

Next, we want to create Random List + List Mask. We know that we will be dealing with total number of 180 Edges, we can supply that value into Random node. What's happening here is I am trying to adjust the Random value range so that when converted, I will be getting value that is either 0 or 1. Not between 0 and 1, but exactly either 0 or 1. 0 = False and 1 = True.


vertices: 
None 

data:(1) object(s)
=0=   (180)
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1

STEP 003 - Use Mask List

Next, simply use the MASK LIST which takes 2 inputs: Data and Mask.

  • We have our Data, which is DATA that makes 180 Edges.
  • For the Mask, we simply supply DATA list that is either 0 or 1, randomly.
Any DATA index that is masked will not be passed, which means that particular edge will be deleted.

IMPORTANT: Our MASK LIST Level Lists needs to be set to 2, because our Edges original data is an array pair of 2 numbers.



STEP 004 - Bake Final Mesh


BACK TO SPIDER WEB (WIP)


Now, for our SPIDER WEB... 

I am testing it on Blender default Cone. Of course this will be better if we actually create our own procedural webbing, in which we can separate RING EDGES and EDGE LOOPS. We only want to randomly delete Ring Edges.


This also kind of resembles bullet holes and cracks too actually. Or some kind of ancient maze.






I cannot seem to get enough of Sverchok, so I decided to continue and spend few more hours before this Sunday is over.

I am still very green with this Add-On and super curious about what this Add-On can do, cannot do and potentially do if Sverchok continues being developed. There are a lot more unknowns that I need to study than what I know. Anyway, I try to slowly build up from what I know.

Apart from needing to understand the Sverchok nodes, we really need to understand how DATA (Vector, Vertex, Matrix) can work with one another to output a complete geometry/mesh that we are familiar with.

EXAMPLE 1: CREATING COMPONENT DATA

In this post, I will not get too details with Sverchok, but will attempt to walk through a simple creation that hopefully helps both you and me to see how COMPONENTS DATA create a normal 3D mesh.

Let say we create a simple row of square grid 1 x 7 (2 x 8 number of vertices) using Sverchok.

Plane.vertices => ViewerData.vertices



Above, I am only passing the Vertices data from Plane generator and we are getting Points. These guys cannot be baked, unfortunately it spits out error message.

Using Viewer Text node, we can see the actual DATA it outputs.

vertices: 
(1) object(s)
=0=   (16)
(0.0, 0.0, 0.0)
(1.0, 0.0, 0.0)
(0.0, 1.0, 0.0)
(1.0, 1.0, 0.0)
(0.0, 2.0, 0.0)
(1.0, 2.0, 0.0)
(0.0, 3.0, 0.0)
(1.0, 3.0, 0.0)
(0.0, 4.0, 0.0)
(1.0, 4.0, 0.0)
(0.0, 5.0, 0.0)
(1.0, 5.0, 0.0)
(0.0, 6.0, 0.0)
(1.0, 6.0, 0.0)
(0.0, 7.0, 0.0)
(1.0, 7.0, 0.0)
unknown data: 
None 

matrixes: 
None 


Getting used to utilize both Viewer Draw and Viewer Text nodes, these two nodes are very useful to track the data.

I now plug either Edges or Polygons data to Viewer Draw. This will create a complete Mesh data. We can have either Grid mesh that is made of Vertices data and Edges data OR Grid mesh that actually has Faces.

Knowing and understand how to inspect Data from Object is important.

GRID OF EDGES DATA
vertices: 
(1) object(s)
=0=   (16)
(0.0, 0.0, 0.0)
(1.0, 0.0, 0.0)
(0.0, 1.0, 0.0)
(1.0, 1.0, 0.0)
(0.0, 2.0, 0.0)
(1.0, 2.0, 0.0)
(0.0, 3.0, 0.0)
(1.0, 3.0, 0.0)
(0.0, 4.0, 0.0)
(1.0, 4.0, 0.0)
(0.0, 5.0, 0.0)
(1.0, 5.0, 0.0)
(0.0, 6.0, 0.0)
(1.0, 6.0, 0.0)
(0.0, 7.0, 0.0)
(1.0, 7.0, 0.0)
data:(1) object(s)
=0=   (22)
(0, 1)
(2, 3)
(4, 5)
(6, 7)
(8, 9)
(10, 11)
(12, 13)
(14, 15)
(0, 2)
(2, 4)
(4, 6)
(6, 8)
(8, 10)
(10, 12)
(12, 14)
(1, 3)
(3, 5)
(5, 7)
(7, 9)
(9, 11)
(11, 13)
(13, 15)
matrixes: 
None 



GRID OF POLYGONS (has FACES) DATA
vertices: 
(1) object(s)
=0=   (16)
(0.0, 0.0, 0.0)
(1.0, 0.0, 0.0)
(0.0, 1.0, 0.0)
(1.0, 1.0, 0.0)
(0.0, 2.0, 0.0)
(1.0, 2.0, 0.0)
(0.0, 3.0, 0.0)
(1.0, 3.0, 0.0)
(0.0, 4.0, 0.0)
(1.0, 4.0, 0.0)
(0.0, 5.0, 0.0)
(1.0, 5.0, 0.0)
(0.0, 6.0, 0.0)
(1.0, 6.0, 0.0)
(0.0, 7.0, 0.0)
(1.0, 7.0, 0.0)
data:(1) object(s)
=0=   (7)
(0, 1, 3, 2)
(2, 3, 5, 4)
(4, 5, 7, 6)
(6, 7, 9, 8)
(8, 9, 11, 10)
(10, 11, 13, 12)
(12, 13, 15, 14)
matrixes: 
None 


YELLOW = First Index Number Polygon / Face (index zero)
BLUR = Last Index Number Polygon / Face
Gradation of color from yellow to blue is showing the direction of index from first to last.

Noticed we ALWAYS need Vertices DATA in order to have a complete mesh.

We have not really supply the Matrix Transformation DATA for this mesh yet. But that is alright, it will default at the center of world if you actually BAKE out the mesh.

LADDERS

Ok, let say, I want to create something like a LADDER procedurally and I want to separate the LADDER STEPS, how would we go about doing that?

I will first bake out our GRID EDGES and will pay attention to the Vertices Indices (index numbers):
TIPS: bpy.app.debug = True


Depending on how you create the grid, you might end up with numbering that like above, where the indices number of vertices is like below:
TOP LINE = 0,2,4,6,8,10,12,14
BOTTOM LINE = 1,3,5,7,9,11,13,15

You might also get something like this:
TOP LINE = 0,1,2,3,4,5,6,7,8
BOTTOM LINE = 9,10,11,12,13,14,15,16

Which one is preferable? I think either one is something you need to know how to deal with.

Anyway, our task here is simply to tell Blender Sverchok to connect and create EDGES that pairs up the the indices number. Very simple right?

We need to create DATA that is actually a LIST of PAIR. Below is how you would do that using Sverchok.

TOP LINE NUMBERS

BOTTOM LINE NUMBERS

You can check if you are creating the right data by checking the data output using Viewer Text.

LIST OF TOP LINE NUMBERS
vertices: 
None 

polygons: 
(1) object(s)
=0=   (8)
1
3
5
7
9
11
13
15
matrixes: 
None 

LIST OF BOTTOM LINE NUMBERS
vertices: 
None 

polygons: 
(1) object(s)
=0=   (8)
1
3
5
7
9
11
13
15
matrixes: 
None 

MIXING DATA (SVERCHOK LIST NODES)

Now that we have 2 LIST, how do we make PAIR OF DATA? Luckily Sverchok provides us with node that does that on the fly.

It is probably a good idea to understand what each LIST X NODES does. I leave that to you. Each of that nodes really need some documentation. Eventually I promise to cover each and every one of those! :)

Those LIST has their own similarity to Python Methods to work with LIST (sort, zip, length, reverse, etc):
http://docs.python.org/2/tutorial/datastructures.html

For our task, we just need to use LIST ZIP, it will pair up our data and create one list of pair.

TIPS: Remember to click on Sverchok big UPDATE button time to time to refresh the data and so that we can see the actual result.


Next, we simply need to pass on those PAIR of NUMBERS as our EDGES data for our final mesh.




Hopefully you understand this part. That is kind of DATA required in order to create mesh that is "complete" and can be baked. Blender + Sverchok will be smart enough to ignore weird data and output a geometry. Unless we did not supply enough data.

EXAMPLE 2: COMBINING DATA / LIST JOIN

Continue on.

Let say I want to have Mesh that is made up of 2 Circles, but I just want the EDGE RINGS.

I will start with 2 Sverchok Circle nodes, let's call them Circle A and Circle B. I know that I only need to care about the Vertices for now. Noticed that for each Sverchok Circle, when we specify the TOTAL NUMBER of Vertices, it will always have 1 more extra vertice in the center of circle.

Then I use LIST JOIN node to combine the Vertices data of Circle A and Circle B. Combined together, there should be total of 2 * (8+1) = 18 vertices.

When combining data like this, you need to watch the DATA OUTPUT in Text Editor, sometimes the data is more like collection of 2 objects, instead of 1 big list.


Next, we just need to connect the dots just like the previous LADDER example.

It should be simple, we will connect vertices as edge using the pair list.



You could further tidy up this network so that you can modify the Circle and the Connected Dots will always give a correct result. Also if you know how to do Node Grouping and Framing, I think you can start doing that. I will do that too soon.
http://www.youtube.com/watch?v=IuGJ_PDwOPI
http://www.youtube.com/watch?v=57YjX3nfb8Q

Blender Wiki:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Composite_Nodes/Node_Groups

UPDATE 20140106: Simple Duplication


Here it seems complicated, but actually similar to previous example of Duplications using Face Center and Face Matrix. Here, we are converting Vector to Matrix and use that as template for our own parametric creation. We can get something like Christmas tree maybe. Or centipede, something that repeats.


Above, I am using LINE as the template for our 2D ASTERISK.

This is really similar to Duplication or Instancing of Objects on Particles... however here, I am using the default Transformation Matrix for each duplication. With further tinkering with Sverchok, we could probably do something with Scale or Rotation axis of each duplicated objects. Example below:


MORE: 3D Asterisk

Using the same concept and idea, we can have something like below using 2 x Spheres. Or Sphere and Line, whichever you prefer.




NOTE: Each lines created are separate from each other and we need to merge and "Remove Double". It is probably possible to do this clean up using Sverchok, but I don't know how yet.

PROCEDURAL SPIDER WEB

I think, using the same idea, we can create Spider webbing!


After tinkering with Sverchok, I realized that thing like Spider web is really just a flattened Cone.



So that is probably if I were to do it manually by hand. But that is is still too "perfect" and not very natural like real spider web.

So, we probably need to add "imperfection", here I use Build Modifier.


Now, how would we create something like that in Sverchok? Then the web even better and more robust?

It certainly needs details, such as below: (albeit cartoony)



Do more research ... (on Sverchok and tangled web)

Since it is the silly spider Summer season in Australia, it is worth looking closely at the web of our friendly neighbours the spiders:





Closer inspection reveal that the spider web is more VORONOI like, although it has MULTI-LAYERS and some RANDOM VARIATIONS, including ROUNDING. In some parts, it is as if the Voronoi has a child of another Voronoi.

Probably the cartoony spider web that we always draw in our mind is more for bigger spider or like a really large type of webbing. There must be many different type of spider web.

Voronoi is perfect to recreate using Sverchok, I guess, and it is alright to think in 2D first.





Well, I guess something like this needs some times to solve, I guess I will come back to it.

I think Spider web also has this kind of feature like random LADDER:
http://askakorean.blogspot.com.au/2010/12/how-do-you-climb-ladder.html



TRIVIA: My favourite superhero is Spiderman.

I am also still confused and unsure on how to do below stuff in Sverchok:
  • SWEEP
  • DUPLICATE MESH (like Array Modifier)
  • VORONOI
  • Many more...
I will have to do more research and write some more. All these are still basics, but important I guess.  Then I have to start Grouping Network and organizing large node-tree.

@Nikita, if you read this, I have some Sverchok questions to ask. Thanks. I will try Blender Artist Forum first.

LINKS

http://yorik.uncreated.net/guestblog2013.html
http://jag-himamshu.blogspot.com.au/p/procedural-fun.html


Wireframe reloaded! Again...
Latest Build of Blender 2.64 adds some packs of new and improved features. Apart from Skin Modifier that is now nearly official, a better Collada DAE export-import (now with built in options), there are some list of great features added:

One super COOL hidden feature I just noticed by reading the Blender Wiki and I really like in particular is the WIREFRAME Tool. This comes to me as another pleasant surprise of Blender, totally unexpected and it is added for convenient of users.

In the past, we would use all kind of ways to get wireframe to happen such as converting mesh into edges into curves. All old techniques are still valid, but this Wireframe Tool will do the job for you very fast, simple and easy.

TURNING MESH INTO 3D WIREFRAME GEOMETRY
Just in case you are a total newbie to Blender, below step by step is all you need to convert polygon mesh into Wireframe. Advanced Blender user will figure this out.

1. ADD 3D MESH PRIMITIVE OR IMPORT YOUR OWN MESH
Shift+A to add object in Blender. Choose Mesh object. I will quickly use Monkey Mesh object. But you can go beyond the monkey. File Import OBJ allows you to bring your own mesh.


2. MAGICALLY TURN MESH INTO WIREFRAME WITH FEW HOTKEYS
Select your Mesh object by RMB click. Hit TAB, to go into Blender Edit Mode. While object still selected, simply tap Spacebar and type in "wireframe" (without quotation mark).

Click Wireframe and DONE!


NOTE:
Before you do the Wireframe conversion. You may scale up or down your mesh (tap S and move your mouse to scale up or down). This will affect your default wireframe geometry. But you could actually adjust the wireframe result by tweaking the parameter post-process, read below.

3. ADDITIONAL OPTIONS FOR WIREFRAME
Notice on the LEFT side of the bar in 3D view (Tool Panel), you actually have more options to adjust the Wireframe result. This is a once-off and post-process, you can only change it while you are still working on this mesh. Once you hit TAB again to go out of this Edit mode, you are no longer able to change the wireframe result.


4. GET MORE FANCY WIREFRAME
Further thing you usually want to do is to Smooth your 3D Wireframe Mesh. You simply do CTRL+1 or CTRL+2 or CTRL+3 to add Subdivision Modifier in level 1, 2, or 3. This smoothen your wireframe 3D geometry into something that looks like Spiderman web!


That's all for this post. Super easy yet fun and cool! I would like to see lots of wireframe 3D printed out. Even better, what if this can be turned into wireframe candy, such as handmade candy you usually buy on the street? Pretty nostalgic, right?

BLENDER SUSHI WILL GET REAL
Anyways, next few posts hopefully I get into more serious Blender production mode. I will focus on Character Development, Rigging, and Animation. I understand that all my previous Blender Sushi posts have been pretty "junkies" and "abstract" and "raw". You know that Sushi is a junk food right?

All seems to be like "play" not "work". But in fact, I found out a lot about Blender than I thought when I first gets hand on Blender version 2.5x. And I get to know some amazing Blender artists out there. It really comes a looong way. I salut all the Blender artists out there that have been using Blender for commercial and personal projects and develop your own works.

I will get real and write about "real" production stuffs. But I will try to make it simple for everyone to follow. Blender needs more tutorial on rigging and character animation. Blender Rigging DVD from Nathan Vegdahl is perfect start to learn Blender Rigging.

Until then, have fun with Wireframe Tool. Remember this tool is inside Blender version 2.64 official release or find and download latest Blender 2.64 Release Candidate.

UPDATE 20120923:
In the meantime, this is a really cool Blender Video Tutorial on Auto Rig Tool "Rigify" and Skin Modifier:
http://www.youtube.com/watch?v=o83K16Zwdos

That's really cool way to quickly prototype character.

MKRdezign

Contact Form

Name

Email *

Message *

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