{"id":825,"date":"2025-12-30T05:40:03","date_gmt":"2025-12-29T20:40:03","guid":{"rendered":"https:\/\/ryohirano.com\/?p=825"},"modified":"2026-01-03T13:04:14","modified_gmt":"2026-01-03T04:04:14","slug":"diary20251230","status":"publish","type":"post","link":"https:\/\/ryohirano.com\/en\/diary20251230\/","title":{"rendered":"Blender: Learning Geometry Nodes\ud83d\udee0\ufe0f"},"content":{"rendered":"<p>My upcoming animated film, &#8220;<strong>Night in the Eyewall<\/strong>&#8220;, is set on a stormy night during a typhoon.<\/p>\n<p>Because of this, I need trees and forest leaves that sway realistically in the wind for the background. I figured if I could create them in <strong>Blender*<\/strong>, it would make the workflow much smoother&#8230;<\/p>\n<p>To build a forest, if I were to model every single tree one by one&#8230; I\u2019d never finish in a lifetime.<br \/>\nI thought about making a few patterns and copy-pasting them, but I was worried it might look a bit cheap.<br \/>\nSo, I decided to use <strong>&#8220;Geometry Nodes&#8221;*<\/strong> to create a &#8220;Procedural Tree&#8221;\u2014a versatile tool where I can adjust the trunk shape and the amount of branches and leaves just by tweaking parameters.<\/p>\n<p>Geometry Nodes are built by connecting various &#8220;Logic Nodes&#8221; with lines. It feels a bit like programming, and since I had never touched it before, I was completely lost.<br \/>\nI asked Google\u2019s AI, Gemini, to be my tutor, and we progressed step-by-step, question by question.<br \/>\nGemini 3 is incredibly capable with almost no misinformation, and it actually worked! Moreover, it explained the function of each node in detail as we went along, so I think I\u2019ve grasped at least the absolute basics of Geometry Nodes.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-826\" src=\"http:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/NiEW_Op_Deer_Mori_.gif\" alt=\"\" width=\"511\" height=\"374\" \/><\/p>\n<p>I can adjust the height, the curvature, the number of branches, and more.<br \/>\nWith this, I can place various iterations of trees on the screen, so it shouldn&#8217;t look unnatural. Now, I need to make a coniferous version too.<\/p>\n<p>While I was at it, I also tried using Geometry Nodes to recreate the grass in the forest swaying in the wind.<br \/>\nPhysics simulations can be very heavy on the PC, so I want to avoid them as much as possible.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-828\" src=\"http:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/NiEW_Op_Deer_Mori_2-1.gif\" alt=\"\" width=\"574\" height=\"460\" \/><\/p>\n<p>The grass and leaves are simply drawn with a brush. It gives them an analog vibe, which is quite cute.<br \/>\nThe length, color, and other attributes are adjusted to vary randomly.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-827\" src=\"http:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/blender_making_wind.gif\" alt=\"\" width=\"565\" height=\"393\" \/><\/p>\n<p>With Geometry Nodes alone, the planes just ended up wobbling back and forth.<br \/>\nSo, I also used the Wave Modifier on the base assets to create a rippling effect.<\/p>\n<p>I hope it looks like a somewhat strong wind is blowing.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-830\" src=\"http:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/Ss_20251230.png\" alt=\"\" width=\"846\" height=\"588\" srcset=\"https:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/Ss_20251230.png 2088w, https:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/Ss_20251230-300x208.png 300w, https:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/Ss_20251230-1024x712.png 1024w, https:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/Ss_20251230-768x534.png 768w, https:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/Ss_20251230-1536x1067.png 1536w, https:\/\/ryohirano.com\/wp-content\/uploads\/2025\/12\/Ss_20251230-2048x1423.png 2048w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><br \/>\nThe full view of the &#8220;Procedural Tree&#8221; Geometry Nodes.<br \/>\nBlue is the trunk, yellow is the branches, red is the sub-branches growing from them, and green is the leaves.<\/p>\n<p>I built it by combining commands like: &#8220;give the line a surface,&#8221; &#8220;make it taller,&#8221; &#8220;taper the tips,&#8221; &#8220;make it curvy,&#8221; &#8220;set the number of branches to X,&#8221; &#8220;set the branch direction\/angle to&#8230;&#8221; and so on.<\/p>\n<p>*<strong>Blender<\/strong>&#8230; A world-famous **free** software that can do almost anything related to 3D.<br \/>\n*<strong>Geometry Nodes<\/strong>&#8230; A feature that allows you not just to model an object, but to create the &#8220;recipe&#8221; for the construction itself.<\/p>","protected":false},"excerpt":{"rendered":"<p>My upcoming animated film, &#8220;Night in the Eyewall&#8220;, is set on a stormy night during a typhoon. Because of this,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[3,55,54,45],"class_list":["post-825","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-animation","tag-blender","tag-nightintheeyewall","tag-workinprogress"],"_links":{"self":[{"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/posts\/825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/comments?post=825"}],"version-history":[{"count":7,"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/posts\/825\/revisions"}],"predecessor-version":[{"id":971,"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/posts\/825\/revisions\/971"}],"wp:attachment":[{"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/media?parent=825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/categories?post=825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ryohirano.com\/en\/wp-json\/wp\/v2\/tags?post=825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}