<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Fungi | Ben Ahlbrand CV</title><link>https://benjamin.ahlbrand.me/tags/fungi/</link><atom:link href="https://benjamin.ahlbrand.me/tags/fungi/index.xml" rel="self" type="application/rss+xml"/><description>Fungi</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Tue, 28 May 2019 00:00:00 +0000</lastBuildDate><image><url>https://benjamin.ahlbrand.me/media/sharing.png</url><title>Fungi</title><link>https://benjamin.ahlbrand.me/tags/fungi/</link></image><item><title>Procedural Fungi Generation</title><link>https://benjamin.ahlbrand.me/post/2021-11-27-procedural-fungi-generation/</link><pubDate>Tue, 28 May 2019 00:00:00 +0000</pubDate><guid>https://benjamin.ahlbrand.me/post/2021-11-27-procedural-fungi-generation/</guid><description>&lt;p>From time to time, I meander outside my typical work, and pursue a side project, often dealing with some random use of procedural generation techniques.&lt;/p>
&lt;p>For this one, over the past winter break, I relaxed by seeing if I could generate mushrooms with a few functions, and arrange them in interesting &amp;ldquo;pseudo&amp;rdquo; natural looking ways, perhaps similar to the image below.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="https://benjamin.ahlbrand.me/assets/mushroomclustersimage.png" alt="" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>&lt;a href="https://steemit.com/nature/@mandela/mushroom-clusters" target="_blank" rel="noopener">https://steemit.com/nature/@mandela/mushroom-clusters&lt;/a>&lt;/p>
&lt;p>My overall algorithm was as follows:&lt;/p>
&lt;ul>
&lt;li>using bezier splines: construct caps, stems, and &amp;lsquo;gills&amp;rsquo; - underneath the caps (which aren&amp;rsquo;t visible in this image)&lt;/li>
&lt;li>randomly resize the generated mushroom to a few different presets I chose&lt;/li>
&lt;li>place them according via poisson disk sampling&lt;/li>
&lt;li>feed these into a naive gravity based attractor (basic n-body simulation), where each mushroom considers every nearby mushroom, and pushes them towards each other (and making sure there&amp;rsquo;s no great overlap) to go from a more uniform poisson distribution (see below image for an example distribution) to create clusters closer to what&amp;rsquo;s shown in the image above&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure id="figure-2d-poisson-distribution-image-credit-to-cem-yuksel-at-university-of-utah">
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="https://benjamin.ahlbrand.me/assets/samples_poisson_disk.png" alt="2D poisson distribution, image credit to Cem Yuksel at University of Utah" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
2D poisson distribution, image credit to Cem Yuksel at University of Utah
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;p>2D poisson distribution, image credit to &lt;a href="http://www.cemyuksel.com/cyCodeBase/soln/poisson_disk_sampling.html" target="_blank" rel="noopener">Cem Yuksel&lt;/a> at University of Utah&lt;/p>
&lt;p>My next steps would be to:&lt;/p>
&lt;ul>
&lt;li>create a parameter sweeper to generate many variations of similar mushrooms (i.e. random versions of a species)&lt;/li>
&lt;li>have them grow towards a light source in the scene&lt;/li>
&lt;li>while adding noise and wear / tear to the caps to give the geometry a more natural appearance&lt;/li>
&lt;li>maybe auto texture / bump map them to boost performance of rendering many of these in scenes&lt;/li>
&lt;/ul></description></item></channel></rss>