{"id":1096,"date":"2010-06-25T14:47:17","date_gmt":"2010-06-25T12:47:17","guid":{"rendered":"http:\/\/www.smart-page.net\/blog\/?p=1096"},"modified":"2018-01-17T18:11:21","modified_gmt":"2018-01-17T16:11:21","slug":"the-binary-kite-even-more-cubes-with-py4d","status":"publish","type":"post","link":"http:\/\/www.smart-page.net\/blog\/2010\/06\/25\/the-binary-kite-even-more-cubes-with-py4d\/","title":{"rendered":"The Binary Kite &#8211; even more cubes with Py4D"},"content":{"rendered":"<p>There are those popular structures we all know and love because they simply look fascinating from every angle &#8211; like the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Sierpinski_triangle\" target=\"_blank\">Sierpinski triangle<\/a>, the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Pythagoras_tree\" target=\"_blank\">Pythagoras tree<\/a> or the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Menger_sponge\" target=\"_blank\">Menger sponge<\/a>.<br \/>\nGenerative geometry is one more proof that math is beautiful no matter how basic.<\/p>\n<p>Recently I stumbled upon a new pattern that is also phenomenally simple but produces rather complex shapes &#8211; the &#8220;Binary Kite&#8221;.<\/p>\n<p><!--more--><\/p>\n<p>I first saw it in Mikael Hvidtfeldt Christensen&#8217;s &#8216;<a href=\"http:\/\/structuresynth.sourceforge.net\/\" target=\"_blank\">Structure Synth<\/a>&#8216; &#8211; an ingenious tool for exploration of generative 3D structures.<\/p>\n<p>Basically it&#8217;s a 3D array of randomly black\/white colored cubes that slightly scale(linear) and rotate(noise) per iteration on one axis.<br \/>\nWhat makes it look so interesting is that each items transformation matrix is subordinated to its predecessor on that axis.<\/p>\n<p>Initially, I played around with the kite in Unity 3D but quickly discovered that it can\u00b4t be animated at high iterations.<br \/>\n<br \/>\nSo I fired up C4D and wrote a simple Py4D generator.<br \/>\n<\/p>\n<h2>The results<\/h2>\n<p>I did end up with this gorgeous picture of a 30*30*500 cubes kite (5400000 polygons) (<a href=\"http:\/\/www.smart-page.net\/py4d\/sp_kite\/binary_kite.jpg\" target=\"_blank\" rel=\"lightbox[1096]\">fullsize<\/a>):<\/p>\n<p><a href=\"http:\/\/www.smart-page.net\/py4d\/sp_kite\/binary_kite_small.jpg\" target=\"_blank\" rel=\"lightbox[1096]\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1097\" title=\"binary_kite_01\" src=\"http:\/\/www.smart-page.net\/blog\/wp-content\/uploads\/2010\/06\/binary_kite_01.jpg\" alt=\"\" width=\"683\" height=\"169\" rel=\"\" srcset=\"http:\/\/www.smart-page.net\/blog\/wp-content\/uploads\/2010\/06\/binary_kite_01.jpg 683w, http:\/\/www.smart-page.net\/blog\/wp-content\/uploads\/2010\/06\/binary_kite_01-300x74.jpg 300w\" sizes=\"(max-width: 683px) 100vw, 683px\" \/><\/a><\/p>\n<p>Here is a closeup from the same viewpoint (<a href=\"http:\/\/www.smart-page.net\/py4d\/sp_kite\/binary_kite_close.jpg\" target=\"_blank\" rel=\"lightbox[1096]\">fullsize<\/a>):<\/p>\n<p><a href=\"http:\/\/www.smart-page.net\/py4d\/sp_kite\/binary_kite_close_small.jpg\" target=\"_blank\" rel=\"lightbox[1096]\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1098\" title=\"binary_kite_02\" src=\"http:\/\/www.smart-page.net\/blog\/wp-content\/uploads\/2010\/06\/binary_kite_02.jpg\" alt=\"\" width=\"683\" height=\"169\" srcset=\"http:\/\/www.smart-page.net\/blog\/wp-content\/uploads\/2010\/06\/binary_kite_02.jpg 683w, http:\/\/www.smart-page.net\/blog\/wp-content\/uploads\/2010\/06\/binary_kite_02-300x74.jpg 300w\" sizes=\"(max-width: 683px) 100vw, 683px\" \/><\/a><\/p>\n<p>Want to render your own kite with even more cubes? Grab the <a href=\"http:\/\/www.smart-page.net\/python\/BinaryKite4Py.c4d\">scene file here<\/a>.<\/p>\n<p><strong><span style=\"color: #ff9900;\">Update:<\/span><\/strong><br \/>\n<em>The file has been updated to work with the R12 version of Cinema 4D.<\/em><\/p>\n<p><strong><span style=\"color: rgb(255, 102, 0);\">Hint:<\/span><\/strong><br \/>\n<em>Remember to uncheck &#8220;Optimize cache&#8221; in the Python Generator\u00b4s properties if you want to animate the parameters.<\/em><br \/>\n<\/p>\n<h2>Conclusion<\/h2>\n<p>While Structure Synth is awesome, Cinema 4D and Py4D are a great way to visualize generated geometry too as Cinema&#8217;s render instances enable you to work with millions of objects.<br \/>\n<br \/>\nCheers<\/p>\n<p><strong><span style=\"color: #ff9900;\">Update 2:<\/span><\/strong><br \/>\n<em>This is a 150*150*500 cubes wallpaper version in ultra high resolution (7964*4480) &#8211; 135.000.000 polygons!<\/em><\/p>\n<p><a href=\"http:\/\/www.smart-page.net\/py4d\/sp_kite\/binary_kite_ultra.jpg\" target=\"_blank\" rel=\"lightbox[1096]\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1098\" title=\"binary_kite_02\" src=\"http:\/\/www.smart-page.net\/blog\/wp-content\/uploads\/2010\/06\/binary_kite_ultra_small.jpg\" alt=\"\" width=\"683\" height=\"169\" \/><\/a><\/p>\n<p><em>You can download it <a href=\"http:\/\/www.smart-page.net\/py4d\/sp_kite\/binary_kite_ultra.jpg\" target=\"_blank\" rel=\"lightbox[1096]\">here.<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are those popular structures we all know and love because they simply look fascinating from every angle &#8211; like the Sierpinski triangle, the Pythagoras tree or the Menger sponge. Generative geometry is one more proof that math is beautiful no matter how basic. Recently I stumbled upon a new pattern that is also phenomenally simple but produces rather complex shapes &#8211; the &#8220;Binary Kite&#8221;.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[52,1,88],"tags":[169,54,154,171,89,170],"_links":{"self":[{"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/posts\/1096"}],"collection":[{"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/comments?post=1096"}],"version-history":[{"count":50,"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/posts\/1096\/revisions"}],"predecessor-version":[{"id":1777,"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/posts\/1096\/revisions\/1777"}],"wp:attachment":[{"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/media?parent=1096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/categories?post=1096"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.smart-page.net\/blog\/wp-json\/wp\/v2\/tags?post=1096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}