<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="https://digitalproduction.com/wp-content/plugins/xslt/public/template.xsl"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:rssFeedStyles="http://www.wordpress.org/ns/xslt#"
>

<channel>
	<title>procedural animation - DIGITAL PRODUCTION</title>
	<atom:link href="https://digitalproduction.com/tag/procedural-animation/feed/" rel="self" type="application/rss+xml" />
	<link>https://digitalproduction.com</link>
	<description>Magazine for Digital Media Production</description>
	<lastBuildDate>Mon, 03 Nov 2025 13:24:38 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">236729828</site>	<item>
		<title>Free WaveManager Brings Procedural Motion to Maya</title>
		<link>https://digitalproduction.com/2025/11/04/free-wavemanager-brings-procedural-motion-to-maya/</link>
		
		<dc:creator><![CDATA[Bela Beier]]></dc:creator>
		<pubDate>Tue, 04 Nov 2025 07:18:00 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[3D software]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[animation tools]]></category>
		<category><![CDATA[Autodesk Maya]]></category>
		<category><![CDATA[expression-based rigging]]></category>
		<category><![CDATA[FK controls]]></category>
		<category><![CDATA[Julen Armendariz]]></category>
		<category><![CDATA[Maya rigging]]></category>
		<category><![CDATA[procedural animation]]></category>
		<category><![CDATA[rigging]]></category>
		<category><![CDATA[VFX]]></category>
		<category><![CDATA[wave motion]]></category>
		<category><![CDATA[WaveManager]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=219431</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/11/lj4hqajdmrf1y9o20wxeu1e4j9wh.webp?fit=1005%2C1005&quality=72&ssl=1" width="1005" height="1005" title="" alt="A digital interface showing the WireManager software with a list of driven targets and control buttons. A 3D wireframe model of a curved shape is displayed in the background, emphasizing the connection between the software and the model." /></div><div><p>WaveManager for Maya adds procedural wave motion to any rig via expressions: no keyframes, full control, free download.</p>
<p>The post <a href="https://digitalproduction.com/2025/11/04/free-wavemanager-brings-procedural-motion-to-maya/">Free WaveManager Brings Procedural Motion to Maya</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/qualityjellyfish45275761d0/">Bela Beier</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/11/lj4hqajdmrf1y9o20wxeu1e4j9wh.webp?fit=1005%2C1005&quality=72&ssl=1" width="1005" height="1005" title="" alt="A digital interface showing the WireManager software with a list of driven targets and control buttons. A 3D wireframe model of a curved shape is displayed in the background, emphasizing the connection between the software and the model." /></div><div><div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:371,&quot;href&quot;:&quot;https:\/\/julentresde.gumroad.com\/l\/ohyvnq&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20251227135354\/https:\/\/julentresde.gumroad.com\/l\/ohyvnq&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-01-09 12:43:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-28 11:42:41&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-01 14:18:25&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-05 19:33:20&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-10 12:30:28&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-19 05:22:19&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-25 03:02:23&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-14 17:10:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-19 16:48:06&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-25 15:25:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-31 11:13:18&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-17 18:20:31&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-25 01:28:12&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-28 20:41:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-02 10:43:40&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-05-02 10:43:40&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:372,&quot;href&quot;:&quot;https:\/\/www.autodesk.com\/products\/maya\/overview&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20251216222206\/https:\/\/www.autodesk.com\/products\/maya\/overview&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-27 13:52:22&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-09 12:43:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-20 02:39:32&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-23 14:23:16&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-27 01:50:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-01 14:18:25&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-05 13:05:07&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-08 17:30:25&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-13 10:36:44&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-19 01:07:31&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-24 16:39:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-27 22:05:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-06 09:59:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-09 10:02:36&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-12 12:56:28&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-15 15:09:08&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-18 20:30:44&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-22 05:31:12&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-25 06:15:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-28 08:01:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-31 12:22:20&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 13:59:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-06 14:03:19&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-09 14:05:13&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-12 16:57:16&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-16 05:56:04&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-19 07:14:01&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-22 07:28:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-25 08:32:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-28 09:08:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-01 10:09:35&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-05-01 10:09:35&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'></div>
<p class="wp-block-paragraph">Character rigger <a href="https://julentresde.gumroad.com/l/ohyvnq" title="">Julen Armendariz</a> has released <em>WaveManager</em>, a free Python-based tool for <a href="https://www.autodesk.com/products/maya/overview">Autodesk Maya</a>. The script generates procedural wave motion on any hierarchy of controls, using Maya’s native expression system instead of keyframes. WaveManager operates entirely through driven expressions, allowing a single driver control to manipulate the entire wave behaviour across a chain of objects. This approach makes it especially suitable for rigging and animating tentacles, tails, ropes, wings, or any FK-based control structure.</p>



<h3 id="one-control-to-rule-them-all" class="wp-block-heading">One Control to Rule Them All</h3>



<p class="wp-block-paragraph">All motion parameters are centralised in one driver. The available attributes—amplitude, speed, length, falloff, and offset—can be tuned independently or together, and they act simultaneously on the X, Y, and Z axes. The tool applies the wave procedurally, so timing and spacing adjustments propagate across the hierarchy in real time. Armendariz includes an optional <em>Create Offset Group</em> function. When enabled, the script inserts an additional node above each control, isolating the wave expression from the original animation channels. This keeps rigs non-destructive and clean for keyframed animation.</p>



<h3 id="fully-expression-based" class="wp-block-heading">Fully Expression-Based</h3>



<p class="wp-block-paragraph">Unlike tools that rely on dynamic simulations or baked motion, WaveManager uses pure expressions in Maya. The result is a lightweight, deterministic system: behaviour is fully defined by a mathematical expression, with no simulation cache or physics overhead. Expressions can be removed per control or cleared globally with one command, returning the rig to its original state. The tool also includes <em>Select Childs</em>, an option that automatically collects all children of a selected control, simplifying setup for long FK chains.</p>



<h3 id="installation-and-workflow" class="wp-block-heading">Installation and Workflow</h3>



<p class="wp-block-paragraph">WaveManager is distributed as a single Python file. Installation is straightforward: drag and drop <em>WaveManager.py</em> into the Maya viewport, or execute it from the Script Editor. Users can create a custom shelf button for faster access. To use the tool, select the controls that should carry the wave, assign a single driver, and configure the desired parameters. All motion remains non-destructive and can be adjusted interactively during animation.</p>



<h3 id="non-destructive-animation-friendly-design" class="wp-block-heading">Non-Destructive, Animation-Friendly Design</h3>



<p class="wp-block-paragraph">Because expressions are stored separately from animation channels, artists can combine procedural motion with hand animation. This workflow is particularly valuable for rigging setups that require secondary motion or layered deformation without simulation. All expressions can be deleted at any time, leaving no residual data in the scene. The tool is entirely Python-based and uses only Maya’s built-in features, which ensures compatibility and avoids reliance on external plugins or compiled code.</p>



<h3 id="availability" class="wp-block-heading">Availability</h3>



<p class="wp-block-paragraph">WaveManager version 1.0 is available now as a free download under a pay-what-you-want model (listed at €0+). It can be obtained via <a>Julen Armendariz’s release page</a>. As with any utility, users should test the tool thoroughly before integrating it into production pipelines.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://digitalproduction.com/2025/11/04/free-wavemanager-brings-procedural-motion-to-maya/">Free WaveManager Brings Procedural Motion to Maya</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/qualityjellyfish45275761d0/">Bela Beier</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/11/lj4hqajdmrf1y9o20wxeu1e4j9wh.webp?fit=1005%2C1005&#038;quality=72&#038;ssl=1" length="216508" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/11/lj4hqajdmrf1y9o20wxeu1e4j9wh.webp?fit=1005%2C1005&#038;quality=72&#038;ssl=1" width="1005" height="1005" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[A digital interface showing the WireManager software with a list of driven targets and control buttons. A 3D wireframe model of a curved shape is displayed in the background, emphasizing the connection between the software and the model.]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/11/lj4hqajdmrf1y9o20wxeu1e4j9wh.webp?fit=1005%2C1005&#038;quality=72&#038;ssl=1" width="1005" height="1005" />
<post-id xmlns="com-wordpress:feed-additions:1">219431</post-id>	</item>
		<item>
		<title>Pawn to VEX: Chess Comes to Houdini&#8217;s Viewport</title>
		<link>https://digitalproduction.com/2025/05/28/pawn-to-vex-chess-comes-to-houdinis-viewport/</link>
		
		<dc:creator><![CDATA[Bela Beier]]></dc:creator>
		<pubDate>Wed, 28 May 2025 14:56:02 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[topnews]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[chess]]></category>
		<category><![CDATA[game logic]]></category>
		<category><![CDATA[Houdini]]></category>
		<category><![CDATA[post-production]]></category>
		<category><![CDATA[procedural animation]]></category>
		<category><![CDATA[Realtime]]></category>
		<category><![CDATA[rigging]]></category>
		<category><![CDATA[VEX]]></category>
		<category><![CDATA[VFX]]></category>
		<category><![CDATA[viewport]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=184973</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Chess.webp?fit=1200%2C675&quality=72&ssl=1" width="1200" height="675" title="#image_title" alt="A chessboard with pieces set up, CPU label, and a red game interface." /></div><div><p>Play chess in Houdini’s viewport using VEX-driven logic - no simulation needed, no rendering required.</p>
<p>The post <a href="https://digitalproduction.com/2025/05/28/pawn-to-vex-chess-comes-to-houdinis-viewport/">Pawn to VEX: Chess Comes to Houdini’s Viewport</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/qualityjellyfish45275761d0/">Bela Beier</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Chess.webp?fit=1200%2C675&quality=72&ssl=1" width="1200" height="675" title="#image_title" alt="A chessboard with pieces set up, CPU label, and a red game interface." /></div><div><div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:1573,&quot;href&quot;:&quot;https:\/\/nodesofnature.gumroad.com\/l\/dwkyxr&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20250601065820\/https:\/\/nodesofnature.gumroad.com\/l\/dwkyxr&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-27 20:09:54&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-13 15:29:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-28 10:22:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-17 11:15:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-25 12:05:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-11 10:34:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-27 13:22:32&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-27 13:22:32&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'></div>
<p class="wp-block-paragraph">Houdini users can now play chess directly in the viewport, <a href="https://nodesofnature.gumroad.com/l/dwkyxr" title="">courtesy of technical artist Mohamad Salame. </a>The interactive chess tool relies entirely on VEX scripting for move logic and game state tracking. That means no simulation nodes, no rendering pipelines, and certainly no Python backdoors. It’s all handled inside Houdini’s SOP (Surface Operator) context, with every rule of chess implemented as raw VEX code. If you lose, don’t blame your renderer.</p>



<h4 id="learning-tool-or-just-fun-yes" class="wp-block-heading">Learning Tool or Just Fun? Yes.</h4>



<p class="wp-block-paragraph">While not meant for production (unless your project is a very confusing FX-heavy Queen’s Gambit remake), the project highlights how logic systems and user interaction can be prototyped in Houdini using just VEX. Think of it as a conceptual playground rather than a feature request for SideFX. </p>



<h4 id="where-to-download" class="wp-block-heading">Where to Download</h4>



<p class="wp-block-paragraph">The Houdini chess tool is available for free on<a href="https://nodesofnature.gumroad.com/l/dwkyxr" title=""> Gumroad</a>. No license fees, no royalties – just 64 squares of procedural decision-making. If you’re wondering whether chess belongs in your postproduction pipeline, the answer is: probably not. But if you’re curious how far VEX can be pushed for interactive logic and UI inside Houdini, this checkered curiosity might be worth a look. Or at least a quick match between caching sessions. Check before use, especially if your studio’s pipeline doesn’t include en passant.</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://digitalproduction.com/2025/05/28/pawn-to-vex-chess-comes-to-houdinis-viewport/">Pawn to VEX: Chess Comes to Houdini’s Viewport</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/qualityjellyfish45275761d0/">Bela Beier</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Chess.webp?fit=1280%2C720&#038;quality=72&#038;ssl=1" length="46532" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Chess.webp?fit=1200%2C675&#038;quality=72&#038;ssl=1" width="1200" height="675" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title>#image_title</media:title>
	<media:description type="html"><![CDATA[#image_title]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Chess.webp?fit=1200%2C675&#038;quality=72&#038;ssl=1" width="1200" height="675" />
<post-id xmlns="com-wordpress:feed-additions:1">184973</post-id>	</item>
		<item>
		<title>Free 3D Looping Animated Tree Asset</title>
		<link>https://digitalproduction.com/2024/12/06/free-3d-looping-animated-tree-asset/</link>
		
		<dc:creator><![CDATA[Bela Beier]]></dc:creator>
		<pubDate>Fri, 06 Dec 2024 10:10:04 +0000</pubDate>
				<category><![CDATA[Fun and Functional]]></category>
		<category><![CDATA[3D looping animation]]></category>
		<category><![CDATA[Asset]]></category>
		<category><![CDATA[asset libraries]]></category>
		<category><![CDATA[CGI loops]]></category>
		<category><![CDATA[environment art]]></category>
		<category><![CDATA[Epic Unreal Engine]]></category>
		<category><![CDATA[Gumroad free assets]]></category>
		<category><![CDATA[modelling]]></category>
		<category><![CDATA[procedural animation]]></category>
		<category><![CDATA[seamless animation]]></category>
		<category><![CDATA[Tree]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=153463</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/11/Cov_gum.0001.webp?fit=1200%2C675&quality=72&ssl=1" width="1200" height="675" title="" alt="" /></div><div><p>"VFXAssets" on Gumroad offers a free procedural 3D looping animated tree for VFX, game design, and CGI workflows—ideal for environment animation projects - a larger library is also available!</p>
<p>The post <a href="https://digitalproduction.com/2024/12/06/free-3d-looping-animated-tree-asset/">Free 3D Looping Animated Tree Asset</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/belabeier/">Bela Beier</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/11/Cov_gum.0001.webp?fit=1200%2C675&quality=72&ssl=1" width="1200" height="675" title="" alt="" /></div><div><div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:2353,&quot;href&quot;:&quot;https:\/\/assetsvfx.gumroad.com\/l\/3DLoopingAnimatedTreeFree&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20241127004006\/https:\/\/assetsvfx.gumroad.com\/l\/3DLoopingAnimatedTreeFree&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-28 01:33:04&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-06 14:43:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-15 03:07:22&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-19 11:12:18&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-23 09:48:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-28 11:31:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-31 17:49:09&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-04 09:24:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-08 10:15:13&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-13 20:08:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-23 08:42:24&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-27 15:39:22&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-03 16:44:19&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-09 03:26:25&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-24 15:11:42&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-29 19:55:00&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 05:07:00&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-09 22:25:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-18 09:22:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-22 07:36:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-25 13:34:43&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-25 13:34:43&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:2354,&quot;href&quot;:&quot;https:\/\/assetsvfx.gumroad.com\/l\/3DLoopingAnimatedTrees&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20250216025906\/https:\/\/assetsvfx.gumroad.com\/l\/3DLoopingAnimatedTrees&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-28 01:33:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-06 14:43:09&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-16 13:54:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-20 07:02:26&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-23 09:48:59&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-31 17:49:13&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-04 09:24:24&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-08 10:15:16&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-13 20:09:03&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-27 15:39:24&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-03 16:44:23&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-09 03:26:30&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-24 15:11:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-29 19:55:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 05:07:01&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-09 22:25:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-18 09:22:08&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-22 07:36:06&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-25 13:34:45&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-01 10:55:20&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-05-01 10:55:20&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'></div>
<p class="wp-block-paragraph"></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 id="procedural-animation-meets-seamless-loops" class="wp-block-heading">Procedural Animation Meets Seamless Loops</h3>



<p class="wp-block-paragraph"><a href="https://assetsvfx.gumroad.com/l/3DLoopingAnimatedTreeFree">The latest addition to Gumroad’s asset library targets</a> environment artists and animators looking for a reusable 3D looping animated tree. The asset comes with a key feature—its looping animation ensures uninterrupted playback for endless sequences, ideal for background motion in scenes demanding visual continuity.</p>



<h3 id="built-for-flexibility" class="wp-block-heading">Built for Flexibility</h3>



<p class="wp-block-paragraph">This animated tree is crafted using procedural techniques, enabling clean and customizable results. Procedural animation minimizes manual adjustments, saving time while ensuring the asset remains adaptable to various environments. The loop is engineered for smooth transitions, preventing noticeable starts or stops in animations, which can otherwise distract from the main visuals in your project.</p>



<h3 id="compatibility-and-download-details" class="wp-block-heading">Compatibility and Download Details</h3>



<p class="wp-block-paragraph">The asset, available for free on <a href="https://assetsvfx.gumroad.com/l/3DLoopingAnimatedTreeFree">Gumroad</a>, is optimized for seamless integration into industry-standard 3D and VFX tools. Whether you’re working with software like Blender, Maya, or Unreal Engine, the tree’s universal format makes importing hassle-free.</p>



<h3 id="price-and-practical-notes" class="wp-block-heading">Price and Practical Notes</h3>



<p class="wp-block-paragraph">Cost: Free.<br />While the tree offers high adaptability and loop-ready functionality, production artists should evaluate its quality and compatibility within their pipelines before committing it to large-scale projects. Free assets are often excellent for experimentation but may lack the polish needed for high-stakes delivery. If you are happy with the tree, <a href="https://assetsvfx.gumroad.com/l/3DLoopingAnimatedTrees">there is a library for little Money with many more of the green things :) </a></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Looking to explore? Download the tree now and see how it fits into your next environment design.</p><p>The post <a href="https://digitalproduction.com/2024/12/06/free-3d-looping-animated-tree-asset/">Free 3D Looping Animated Tree Asset</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/belabeier/">Bela Beier</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/11/Cov_gum.0001.webp?fit=1280%2C720&#038;quality=72&#038;ssl=1" length="37740" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/11/Cov_gum.0001.webp?fit=1200%2C675&#038;quality=72&#038;ssl=1" width="1200" height="675" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/11/Cov_gum.0001.webp?fit=1200%2C675&#038;quality=72&#038;ssl=1" width="1200" height="675" />
<post-id xmlns="com-wordpress:feed-additions:1">153463</post-id>	</item>
		<item>
		<title>We Hunt Giants</title>
		<link>https://digitalproduction.com/2023/10/03/we-hunt-giants-rexy-and-the-strong-men/</link>
		
		<dc:creator><![CDATA[Andreas Feix]]></dc:creator>
		<pubDate>Tue, 03 Oct 2023 07:51:00 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[3D pre-visualization]]></category>
		<category><![CDATA[Andreas Feix VFX]]></category>
		<category><![CDATA[Autodesk 3ds Max]]></category>
		<category><![CDATA[CAT rigging system]]></category>
		<category><![CDATA[character animation toolkit]]></category>
		<category><![CDATA[chromeball lighting]]></category>
		<category><![CDATA[digital double creation]]></category>
		<category><![CDATA[digital matte painting]]></category>
		<category><![CDATA[dinosaur animation]]></category>
		<category><![CDATA[dinosaur textures]]></category>
		<category><![CDATA[DP2305]]></category>
		<category><![CDATA[film editing workflow]]></category>
		<category><![CDATA[Houdini simulations]]></category>
		<category><![CDATA[matchmoving Nuke]]></category>
		<category><![CDATA[Nuke]]></category>
		<category><![CDATA[OpenEXR sequences.]]></category>
		<category><![CDATA[particle simulation]]></category>
		<category><![CDATA[prehistoric environments]]></category>
		<category><![CDATA[procedural animation]]></category>
		<category><![CDATA[PyroFX Houdini]]></category>
		<category><![CDATA[real-time VFX]]></category>
		<category><![CDATA[RED Gemini camera]]></category>
		<category><![CDATA[snow FX]]></category>
		<category><![CDATA[subscribers]]></category>
		<category><![CDATA[T-Rex modeling]]></category>
		<category><![CDATA[Titus Paar director]]></category>
		<category><![CDATA[V-Ray]]></category>
		<category><![CDATA[VFX production]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=153603</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot1_final.jpg?fit=1200%2C633&quality=80&ssl=1" width="1200" height="633" title="" alt="" /></div><div><p>The short film "We Hunt Giants" takes the viewer into a world in which humans and dinosaurs fight for survival. Action, drama and CGI - without a Hollywood budget in the millions. Here is a brief insight into the making of the film and its visual effects.</p>
<p>The post <a href="https://digitalproduction.com/2023/10/03/we-hunt-giants-rexy-and-the-strong-men/">We Hunt Giants</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/andreasfeix/">Andreas Feix</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot1_final.jpg?fit=1200%2C633&quality=80&ssl=1" width="1200" height="633" title="" alt="" /></div><div><p class="wp-block-paragraph">A wild, prehistoric landscape – herds of dinosaurs roam the frosty plains, or sail through the snowstorm over the mountain ranges. In the undergrowth stirs a completely different, small group – primitive humans, but in this world they are among the hunted. They lie in wait for a creature that haunts their tribe, hoping to defeat it once and for all. But nature has other plans: they are surprised by a gigantic T-Rex and are forced to fight. However, they are powerless against the monster; their primitive weapons have no effect. In the end, only one of them remains, who bravely confronts the giant with his daggers..<br />This is how the short pilot film “We Hunt Giants” ends in terms of content; but the production began much more harmlessly.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="675" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot1_previz.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153610" ></figure>



<h2 id="the-beginnings" class="wp-block-heading">The beginnings</h2>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="800" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/production_team_alt.jpg?resize=1200%2C800&quality=80&ssl=1"  alt=""  class="wp-image-153609"  style="aspect-ratio:1;object-fit:cover" ><figcaption class="wp-element-caption">Titus Paar (right) and Andreas Feix</figcaption></figure>



<p class="wp-block-paragraph">Towards the end of 2021, Swedish director Titus Paar contacted me to make me a special offer: At the time, he had seen several of my past dino works online; and now he was hoping to develop another prehistoric short film with me. In this way, he wanted to fulfil a childhood dream on the side; at the same time, the film would also serve as a possible pilot with which the concept could later be expanded into a longer format. Although the initial reaction to any enquiries was somewhat sceptical, the concerns were quickly dispelled – on the one hand, the VFX work was important enough to Titus that he immediately offered to develop the film as a co-production, which I gratefully accepted. In addition, he already had a high-quality résumé of genre films in short and long format, which indicated that he would have high expectations of the project; and several people from the team were already familiar to me from previous projects, some of which had been going on for 15 years. So the go-ahead was officially given.</p>
</div>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153613"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot2_final.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153613" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="675" width="1200"  decoding="async"  data-id="153612"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot2_previz.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153612" ></figure>
</figure>



<p class="wp-block-paragraph"><br />Although Titus took the lead on the script, it was important to him to involve me from the first version of the book. On the one hand, I was able to think about the quantity and realisation of the VFX shots at an early stage. At the same time, I was able to give him critical feedback on the contrast with my own perspective on film and offer further creative suggestions from my side. One of these suggestions was, for example, to introduce the film with a vignette of different dinosaurs for a better worldbuilding – even if this would mean creating several additional dinosaurs in CG, which would be counterproductive.<br /></p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153615"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot3_final.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153615" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="675" width="1200"  decoding="async"  data-id="153614"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot3_previz.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153614" ></figure>
</figure>



<p class="wp-block-paragraph">While Titus was making revisions from his side, I began to create the first storyboard sketches and to build and cut a 3D pre-visualisation based on them. This gave me creative freedom to design the resolution & composition, as well as giving Titus the option to plan the shoot in a more focussed way. As the 3D scenes & cameras were scaled to real-life specifications, this allowed us to plan the technical side of the work on set in advance and identify any potential obstacles that could cause problems for the VFX work. This was particularly helpful when talking to cameraman Marcus Möller, as he not only got a better idea for the shoot on set, but was also able to contribute his own expertise. With a finalised 3D previs, shooting schedule and a well-rehearsed core team, nothing should now stand in the way of production.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-gallery has-nested-images columns-2 wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="898" width="1200"  decoding="async"  data-id="153622"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Setfoto1.jpg?resize=1200%2C898&quality=80&ssl=1"  alt=""  class="wp-image-153622" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="898" width="1200"  decoding="async"  data-id="153621"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Setfoto2.jpg?resize=1200%2C898&quality=80&ssl=1"  alt=""  class="wp-image-153621" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="898" width="1200"  decoding="async"  data-id="153620"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Setfoto3.jpg?resize=1200%2C898&quality=80&ssl=1"  alt=""  class="wp-image-153620" ></figure>
</figure>



<h2 id="the-shoot" class="wp-block-heading">The shoot</h2>



<p class="wp-block-paragraph">A few days before the shoot in February 2022, cameraman Marcus unexpectedly showed severe Covid symptoms and tested positive. However, giving up was not on the cards, as the equipment and transport had already been booked, and fortunately Andrés Rignell was found at the last minute to stand in for him. He had also already gained experience with VFX as a professional on various shoots and was very familiar with the camera system (RED Gemini). So we found ourselves for a weekend in Tyresta National Park south of Stockholm, and perfect for the first morning we were presented with an untouched winter wonderland, as it had snowed freshly overnight. So deep that even some of the rental cars got stuck in the snow on the last few metres to the film location.<br />To gain time, Andrés & I went off separately and started shooting various VFX plates while the rest of the crew freed the cars and prepared the actors. This allowed us to find a rhythm on the fly to gather references & camera data alongside the main takes. This was also important as we had to work with less daylight due to the winter season in the north, so some scenes were shot in a rush.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="1024"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/AF_vfxsupervision.jpg?resize=1024%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-153618" ><figcaption class="wp-element-caption">Reference shots with toy dinosaur</figcaption></figure>



<p class="wp-block-paragraph"><br />As soon as director Titus & I were happy with the takes of one shot, the actors were prepared for the next shot or recorded sound. Meanwhile, we were shooting quick cleanplates, noting camera specs, taking shots of lens grids, chrome & greyballs and a toy dinosaur for reference. This initially attracted some strange looks, but after a few shots there were always a few interested people around the camera monitor who wanted to catch a first “preview” of the prehistoric star. In every free minute or general break in filming, I also had to take separate photos of all possible references – actors, props, the surroundings & set design (a mini attrape for the dino trap) as well as additional Chromeball photos at different times of day so that an appropriate selection would be available depending on the shot. </p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="800" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Chromeball_photo.jpg?resize=1200%2C800&quality=80&ssl=1"  alt=""  class="wp-image-153619" ><figcaption class="wp-element-caption">Chromeballs were photographed for each new shot to reconstruct the light in CG – for example, here is the 360º panorama of the set based on several Chromeball photos.</figcaption></figure>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="600" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Chromeball_unwrap.jpg?resize=1200%2C600&quality=80&ssl=1"  alt=""  class="wp-image-153617" ></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Another result of the tight schedule was that almost all the shots were shot on location without any additional equipment – a blue screen was only used for a few specific shots where the VFX work would otherwise have been enormously complicated. After two intensive days of filming in the snow, I flew back to London to start preparing the VFX, while the material went into editing for the next few weeks.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="626" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/matchmove_nuke.jpg?resize=1200%2C626&quality=80&ssl=1"  alt=""  class="wp-image-153625" ><figcaption class="wp-element-caption">All shots were prepared and 3D tracked directly in Nuke.</figcaption></figure>



<h2 id="plate-prep" class="wp-block-heading">Plate Prep</h2>



<p class="wp-block-paragraph">Finally, all the footage from the shoot was sent to London in the post as RED raw files, along with the first rough cut. Nuke Indie allowed the EDL of the cut to be imported directly and the individual shots to be exported in separate Nuke scripts. For further processing, the plates were reduced from 5K to 2.5k and saved locally as OpenEXR sequences. As the editing was still in progress in Sweden, the sequences were exported with extra leeway to be on the safe side and all tracked in 3D in Nuke Indie for the matchmoving. Thanks to the quality of the shots and the rich texture of the environment, an automatic 3D track usually produced a high-quality result, and it was rarely necessary to intervene with manual tracks or further manual work. </p>



<p class="wp-block-paragraph">Based on the 3D track, 3D meshes of the environment could also be generated in Nuke at the same time using point clouds. Fortunately, despite initial fears, only a few shots had to be retouched to remove isolated references to the park such as fences or signs. However, the small amount of bluescreens would mean that every interaction with VFX would have to be rotoscoped by hand – some of the shots would end up spending several days or weeks exclusively in rotoscoping. Luckily, a friend and former colleague, Dominik Platen, stepped in towards the end of post-production and took care of the rotoscoping for some shots.</p>



<figure class="wp-block-gallery has-nested-images columns-1 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153626"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/00CO0030_still01.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153626" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153627"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Tucki.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153627" ></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">Digital potions – water, snow & breath were also simulated in Houdini.</figcaption></figure>



<h2 id="dinosaur-assets" class="wp-block-heading">Dinosaur assets</h2>



<p class="wp-block-paragraph">Before filming began, thorough internet research was carried out for each dinosaur. Drawings & photos of skeletons, artistic reconstructions & screenshots from films, as well as material from related species were collected to provide further references. For the main dinosaur in particular, we initially considered a range of large theropods, but Titus was keen to use a T-Rex as a homage to Jurassic Park. In the end, we allowed ourselves a little variation – the bony dorsal crest was inspired by another theropod, the Acrocanthosaurus.<br />All 3D models were first roughly pre-built in 3ds Max, and then detailed and textured in Mudbox. A method that had proved successful in previous work was again used for the texturing:<br />For each dinosaur, a small library of base textures, masks and further grunge maps were painted onto the surface, which were then combined together with normal & displacement maps in Nuke via compositing to create a finished texture.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="683" width="1200"  decoding="async"  data-id="153629"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/T-Rex_model01.jpg?resize=1200%2C683&quality=80&ssl=1"  alt=""  class="wp-image-153629" ><figcaption class="wp-element-caption">The CG main character of the film; from the first polygons …</figcaption></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="604" width="1200"  decoding="async"  data-id="153630"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/T-Rex_model02.jpg?resize=1200%2C604&quality=80&ssl=1"  alt=""  class="wp-image-153630" ><figcaption class="wp-element-caption">…the prepared model…</figcaption></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="707" width="1200"  decoding="async"  data-id="153632"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/T-Rex_model03.jpg?resize=1200%2C707&quality=80&ssl=1"  alt=""  class="wp-image-153632" ><figcaption class="wp-element-caption">…to sculpting details…</figcaption></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="675" width="1200"  decoding="async"  data-id="153631"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Frame0_rex_tt02.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153631" ><figcaption class="wp-element-caption">…to the final textured asset in V-Ray</figcaption></figure>
</figure>



<p class="wp-block-paragraph"><br />This process, although hardware-hungry, allowed free experimentation with various options & details, all simultaneously on multiple UDIMs in a non-destructive environment. In addition to the main texture, maps for shader attributes could also be “combed” in this way.<br />This was particularly important for the T-Rex: the model should give an idea that the dinosaur led a rough existence, in the form of scars and wounds from past confrontations. Other ailments such as frostbite & inflammation should indicate that it is actually not welcome as an invasive species in the cold.</p>



<figure class="wp-block-gallery has-nested-images columns-1 is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1"  fetchpriority="high"  decoding="async"  width="1200"  height="675"  data-id="153636"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/falle_rendertest.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153636" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="675"  data-id="153637"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/ptero_rendertest.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153637" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="675"  data-id="153638"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/styraco_rendertest.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153638" ></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">More prehistoric CG assets ready for approval in the render test.</figcaption></figure>



<p class="wp-block-paragraph"><br />With the texture compositing in Nuke, a suitable balance could be found quite quickly over a few iterations. At least one dinosaur was spared all the work, as the CG asset from “Tucki”, a past project, could be directly reused for a small guest appearance. You can read all about Tucki in DP 21:02, or download it for free here is.gd/tucki_pdf.</p>



<h2 id="rigging-animation" class="wp-block-heading">Rigging & Animation</h2>



<p class="wp-block-paragraph">For the rigging we went back to 3ds Max. As a tried and tested module, each dinosaur was given a special rig in the Character Animation Toolkit, CAT for short, which could be saved as presets for the subsequent animation process.<br />To save time during rigging and animation, shortcuts were built into the rig for each asset. For example, the flight membranes of the pterosaurs were animated using a cloth simulation, and the tails of all dinosaurs were procedurally controlled with spring constraints to create a flowing organic movement without further manual intervention.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="630" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/muscles_houdini.jpg?resize=1200%2C630&quality=80&ssl=1"  alt=""  class="wp-image-153640" ><figcaption class="wp-element-caption">Different segments of the Vellum Tissue System in Houdini</figcaption></figure>



<p class="wp-block-paragraph">In turn, the T-Rex received an additional upgrade due to its presence in the film: a simplified skeleton and part of the musculature were modelled for the asset, which in turn formed the basis for a tissue simulation in Houdini using the newer Vellum-based Tissue System. The result was subtle, but provided better deformation and volume on the final animated asset. One advantage of working via CAT rig presets in 3ds Max was that the animations could be saved as separate clip files and transferred to identical rigs later. In this way, the animation scenes were kept very performant without having to load the entire asset. Possible revisions could also be quickly transferred to the corresponding main 3D scene later using a new clip. </p>



<p class="wp-block-paragraph">For the animation, which was done exclusively with keyframes, it was important that all dinosaurs should reflect natural behaviour. In addition, the T-Rex should appear more aggressive than usual, which may also be due to the injuries. Smaller tics such as snorting, snarling and more impulsive movements helped with this. The animation would also have a strong influence on the editing; scenes were often extended to give the dinosaurs more time to perform.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="645" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Styraco_3dsMax.jpg?resize=1200%2C645&quality=80&ssl=1"  alt=""  class="wp-image-153654" ><figcaption class="wp-element-caption">The herd of dinosaurs was placed by hand, with various animations prepared in advance.</figcaption></figure>



<p class="wp-block-paragraph">For one particular scene, which features a herd of 20 dinosaurs, a crowd system was not used. Instead, I spent a weekend animating various actions with excess length – eating, head shaking, sleeping, looking out, running, etc. – which were then placed by hand using animation caches and staggered in time to get the appropriate variation. For a quick turnaround, it was advantageous that the individual animations did not have to be too detailed, as they would all blur together in the mass.</p>



<p class="wp-block-paragraph"></p>



<h2 id="fx-simulations" class="wp-block-heading">FX simulations</h2>



<p class="wp-block-paragraph">A critical point in the project was the FX simulations, as all the dinosaurs had to interact with the cold snow world. A few systems could be prepared directly in 3ds Max & Particle Flow, but Houdini was used for the rest.</p>



<p class="wp-block-paragraph">For the most part, snow tracks were created procedurally using geometry; a few shots were even given a dynamic simulation with Houdini Grains, insofar as the interaction had to be represented much more subtly. An important component was also frozen breath for the T-Rex and finely swirled snow dust, which were simulated with PyroFX in Houdini. All Houdini project files were created in such a way that, depending on the shot, only the<br />correct assets for dinosaurs & environment had to be loaded & exchanged, with a little adjustment afterwards.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="645" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/TRexTrees_3dsMax.jpg?resize=1200%2C645&quality=80&ssl=1"  alt=""  class="wp-image-153658" ></figure>



<p class="wp-block-paragraph">Otherwise, separate simulations were created for one or the other shot in the respective tool where it was best suited – such as a flock of birds in Particle Flow (3ds Max) or water splashes with fluids in Houdini. For simpler particle effects such as atmosphere, snowflakes, sparks and more, we even used Nuke Particles, which were incorporated as part of the compositing process.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/00FA0020_still01.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153655" ></figure>



<p class="wp-block-paragraph"><br />In contrast, the most prominent FX interaction – where the T-Rex violently squeezes through two trees in one moment – was primarily animated by hand. Springs were again used in the rigging so that the bending of the branches did not have to be simulated. A secondary layer of different FX sims from 3ds Max & Houdini combined gave the moment the finishing touches.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/FA_0020_stills_v1_05.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153651" ></figure>



<p class="wp-block-paragraph"></p>



<h2 id="rendering-compositing" class="wp-block-heading">Rendering & compositing</h2>



<p class="wp-block-paragraph">All elements were lit & rendered in 3ds Max with V-Ray; caches from Houdini were exported and imported as either VDBs or Alembics. All dinosaurs & snow elements were rendered directly with surface scattering, whereby the intensity of the scattering was slightly exaggerated in order to benefit from the additional details in the shading.<br />The lighting rig was kept quite simple to limit the amount of render passes – after all, all shots had to be rendered on a single desktop PC. For each CG element there was an average of 3-4 setups, one for each light and a separate data pass with geometric or vector-based render layers such as Zdepth, Velocity & Position.<br />As each element in this multi-pass setup was rendered separately, this resulted in countless renders, but only in rare cases did a pass exceed a render time of a few minutes per frame. The immense advantage of this setup was the compositing; the lighting & shading could be manually adjusted for each individual CG element without the need for a second render<br />a second rendering process was required. A comp template in Nuke, which had been refined over the years for V-Ray passes, helped with this, and changes could later be copied directly from one shot to another. Additional details such as dirt, blood and snow were often projected onto the surface of the dinosaurs using the geometric render layers, either as procedural setups or with prepared textures.<br />Thanks to the references & cleanplates on set, the integration process for the dinosaurs was quite effortless and the compositing template proved to be very robust.<br />Some shots also required a few more invisible compositing tricks: for example, in the final shot of the film, one of the hunters faces the T-Rex, but it was not possible on set to make the fur jacket flap in the wind as it roared. So a CG plane was generated in 3ds Max via Cloth-Sim and exported to Nuke, where it served as the basis for a 2D projection of the rotoscoped fur. Additional distortion filters created the impression of turbulent fur.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="634" width="1200"  decoding="async"  data-id="153642"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/trap_after.jpg?resize=1200%2C634&quality=80&ssl=1"  alt=""  class="wp-image-153642" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153643"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/trap_before.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153643" ></figure>
<figcaption class="blocks-gallery-caption wp-element-caption"><strong>Backgrounds had to be enhanced with matte paintings for certain settings.</strong></figcaption></figure>



<h2 id="environments" class="wp-block-heading">Environments</h2>



<p class="wp-block-paragraph">Environments also played a major role in the VFX. To keep the shooting schedule efficient, all shots were filmed in the same location – for example, during the first half of the film, the actors stared at the same hill in the distance where they would later be chased down by the T-Rex.<br />So with the help of digital matte painting, the hill had to be transformed into a flat plane, which was primarily done with alternative plates & more photographs. In addition, a somewhat more threatening sky and more atmospheric fog from the snowfall were added. The forest in the background, on the other hand, could be partially retained and was merely expanded; plates from the shoot with shaken trees helped to give the impression that a larger animal was in the background<br />to give the impression of a larger animal stalking around in the distance.<br />The trap was also collaged together from photographs of the smaller set on set, and a CG pole with a chopped off leg from one of the existing dinosaur assets added the finishing touches. In view of the fact that the DMP would be visible over an entire sequence, it was designed from the outset as a 3D projection in Nuke with simple geometry. Depending on the shot, the Matchmove camera or the DMP could be easily moved into position.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Styracosaurus.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153644" ></figure>



<p class="wp-block-paragraph"><br />The opening shot of the film, in which a couple of pterosaurs fly through a snowstorm, was based on a drone shot of a mountain range at sunset, and followed a group of sled dogs. A new stormy sky was added, the dogs and other anachronistic objects were painted out, and Nuke Particles were used to generate a completely new atmosphere for the pterosaurs to freely interact with.</p>



<h2 id="digital-double-weapons-wounds" class="wp-block-heading">Digital double, weapons & wounds</h2>



<p class="wp-block-paragraph">During the confrontation, one of the humans, Hunter (played by Urban Bergsten), is scooped up by the T-Rex and thrown around. It was clear from the first draft of the script that a digital double would be needed for this moment, and during the shoot there was an extra photoshoot with the actor Urban in costume. The corresponding asset was built quite simply, as it would only be visible for a few seconds with a lot of blurring.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-8 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="720"  decoding="async"  data-id="153647"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/DD_urban_setfoto1.jpg?resize=720%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-153647" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="720"  decoding="async"  data-id="153648"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/DD_urban_setfoto2.jpg?resize=720%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-153648" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="901" width="1200"  decoding="async"  data-id="153645"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/DD_urban_model.jpg?resize=1200%2C901&quality=80&ssl=1"  alt=""  class="wp-image-153645" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="675"  data-id="153646"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/DD_urban_rendertest.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153646" ><figcaption class="wp-element-caption">Render test of the digi-double in V-Ray. The level of detail was completely sufficient for the brief appearance in the film.</figcaption></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">With the help of reference photos of the actor from the set and open source software, a digital double was created in 3ds Max</figcaption></figure>



<p class="wp-block-paragraph"><br />A male figure from the open source programme ‘MakeHuman’ served as the basis, with the model being slightly adapted to Urban in advance. The photos from the shoot were projected directly onto the models of the body and clothing; to suggest more details, while the model could remain quite simple. Instead, cloth simulations & a simple hair groom helped to make the character look more organic, animated with keyframes.<br />All the weapon props were also photographed on set and recreated quite simply on the base. With a little secondary animation, it was possible to create the impression that the weapons were dangling from the body and could be detached if necessary.<br />The digital props were also used in other shots. In one case, a digital bow was placed in the hand of one of the characters to cover up a mistake in the editing; another time, a spear throw had to be digitally replaced so that it could interact with the dinosaur.<br />Plates were originally shot for another shot in which Urban is grabbed directly, but because the moment was redesigned in post-production, the digidouble was also used here. With the help of a new camera, an environment assembled from various cleanplates and a few animation tests, the desired shot was found and was now realised entirely in CG. After the high-altitude ride, Hunter/Urban lands violently in the snow, and the (graphic) consequences are clearly recognisable – his body is torn open from the bite & the fall, and he is missing an eye. Despite a bit of practical facial make-up on set, the result wasn’t scary enough, so a bit of a rush job had to be done towards the end. After an initial (stomach-churning) online search for references, digital DMP patches or projections for wounds, blood spatter and torn clothing were created directly in Nuke for each individual shot. Depending on the situation, individual parts of the body were tracked in 3D or analysed using Smartvector in order to project the elements. Small variations were incorporated into the track for each level, giving the impression, for example, that wounds/skin and clothing moved independently of each other as the person squirmed.</p>



<h2 id="the-hunt-continues" class="wp-block-heading">The hunt continues.</h2>



<p class="wp-block-paragraph">In mid-May 2023, after around a whole year of work, all the VFX shots were finally finalised and delivered. The film went into colour correction & final mixing for another month, followed by the premiere in early June in the heart of Stockholm.<br />As the short film was also conceived as a pilot/pitch, they are already striving for higher things – while the film is enjoying initial success at festivals, the makers are already working on the first script version for a feature-length film. It is still far too early to say what the outcome will be. But we can only hope that the journey into this primeval world is not yet over, despite its dangers.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Tucki-1.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153653" ></figure>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-9 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153608"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot1_final.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153608" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="675" width="1200"  decoding="async"  data-id="153610"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot1_previz.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153610" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="645" width="1200"  decoding="async"  data-id="153658"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/TRexTrees_3dsMax.jpg?resize=1200%2C645&quality=80&ssl=1"  alt=""  class="wp-image-153658" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153655"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/00FA0020_still01.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153655" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153651"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/FA_0020_stills_v1_05.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153651" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="645" width="1200"  decoding="async"  data-id="153654"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Styraco_3dsMax.jpg?resize=1200%2C645&quality=80&ssl=1"  alt=""  class="wp-image-153654" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="675"  data-id="153638"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/styraco_rendertest.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153638" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153653"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Tucki-1.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153653" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="626" width="1200"  decoding="async"  data-id="153625"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/matchmove_nuke.jpg?resize=1200%2C626&quality=80&ssl=1"  alt=""  class="wp-image-153625" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="720"  decoding="async"  data-id="153648"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/DD_urban_setfoto2.jpg?resize=720%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-153648" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="720"  decoding="async"  data-id="153647"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/DD_urban_setfoto1.jpg?resize=720%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-153647" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="675"  data-id="153646"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/DD_urban_rendertest.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153646" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="901" width="1200"  decoding="async"  data-id="153645"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/DD_urban_model.jpg?resize=1200%2C901&quality=80&ssl=1"  alt=""  class="wp-image-153645" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153644"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Styracosaurus.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153644" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="634" width="1200"  decoding="async"  data-id="153642"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/trap_after.jpg?resize=1200%2C634&quality=80&ssl=1"  alt=""  class="wp-image-153642" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153643"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/trap_before.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153643" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="630" width="1200"  decoding="async"  data-id="153640"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/muscles_houdini.jpg?resize=1200%2C630&quality=80&ssl=1"  alt=""  class="wp-image-153640" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="675"  data-id="153637"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/ptero_rendertest.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153637" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1"  fetchpriority="high"  decoding="async"  width="1200"  height="675"  data-id="153636"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/falle_rendertest.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153636" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="604" width="1200"  decoding="async"  data-id="153630"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/T-Rex_model02.jpg?resize=1200%2C604&quality=80&ssl=1"  alt=""  class="wp-image-153630" ><figcaption class="wp-element-caption">…dem  präparierten Modell…</figcaption></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="707" width="1200"  decoding="async"  data-id="153632"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/T-Rex_model03.jpg?resize=1200%2C707&quality=80&ssl=1"  alt=""  class="wp-image-153632" ><figcaption class="wp-element-caption">…über Sculpting-Details…</figcaption></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="683" width="1200"  decoding="async"  data-id="153629"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/T-Rex_model01.jpg?resize=1200%2C683&quality=80&ssl=1"  alt=""  class="wp-image-153629" ><figcaption class="wp-element-caption">Der CG-Hauptdar­steller des Films; von den ersten Poly­gonen …</figcaption></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="675" width="1200"  decoding="async"  data-id="153631"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Frame0_rex_tt02.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153631" ><figcaption class="wp-element-caption">…bis hin zum final texturierten Asset in V-Ray</figcaption></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153627"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Tucki.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153627" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153626"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/00CO0030_still01.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153626" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="800" width="1200"  decoding="async"  data-id="153619"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Chromeball_photo.jpg?resize=1200%2C800&quality=80&ssl=1"  alt=""  class="wp-image-153619" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="600" width="1200"  decoding="async"  data-id="153617"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Chromeball_unwrap.jpg?resize=1200%2C600&quality=80&ssl=1"  alt=""  class="wp-image-153617" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="1024"  decoding="async"  data-id="153618"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/AF_vfxsupervision.jpg?resize=1024%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-153618" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153615"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot3_final.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153615" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="675" width="1200"  decoding="async"  data-id="153614"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot3_previz.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153614" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="633" width="1200"  decoding="async"  data-id="153613"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot2_final.jpg?resize=1200%2C633&quality=80&ssl=1"  alt=""  class="wp-image-153613" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="675" width="1200"  decoding="async"  data-id="153612"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot2_previz.jpg?resize=1200%2C675&quality=80&ssl=1"  alt=""  class="wp-image-153612" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="898" width="1200"  decoding="async"  data-id="153620"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Setfoto3.jpg?resize=1200%2C898&quality=80&ssl=1"  alt=""  class="wp-image-153620" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="898" width="1200"  decoding="async"  data-id="153622"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Setfoto1.jpg?resize=1200%2C898&quality=80&ssl=1"  alt=""  class="wp-image-153622" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="898" width="1200"  decoding="async"  data-id="153621"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Setfoto2.jpg?resize=1200%2C898&quality=80&ssl=1"  alt=""  class="wp-image-153621" ></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="800" width="1200"  decoding="async"  data-id="153609"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/production_team_alt.jpg?resize=1200%2C800&quality=80&ssl=1"  alt=""  class="wp-image-153609" ></figure>
</figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://digitalproduction.com/2023/10/03/we-hunt-giants-rexy-and-the-strong-men/">We Hunt Giants</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/andreasfeix/">Andreas Feix</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot1_final.jpg?fit=4096%2C2159&#038;quality=80&#038;ssl=1" length="307026" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot1_final.jpg?fit=1200%2C633&#038;quality=80&#038;ssl=1" width="1200" height="633" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/10/Shot1_final.jpg?fit=1200%2C633&#038;quality=80&#038;ssl=1" width="1200" height="633" />
<post-id xmlns="com-wordpress:feed-additions:1">153603</post-id>	</item>
		<item>
		<title>Your own particle system with simulation nodes</title>
		<link>https://digitalproduction.com/2023/08/10/your-own-particle-system-with-simulation-nodes/</link>
		
		<dc:creator><![CDATA[Gottfried Hofmann]]></dc:creator>
		<pubDate>Thu, 10 Aug 2023 08:41:00 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Blender]]></category>
		<category><![CDATA[Blender particle simulation]]></category>
		<category><![CDATA[Blender real-time graphics]]></category>
		<category><![CDATA[Cloth]]></category>
		<category><![CDATA[custom particle effects]]></category>
		<category><![CDATA[DP logo animation]]></category>
		<category><![CDATA[DP2304]]></category>
		<category><![CDATA[fire simulation]]></category>
		<category><![CDATA[geometry nodes]]></category>
		<category><![CDATA[Geometry Nodes baking]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[particle system]]></category>
		<category><![CDATA[procedural animation]]></category>
		<category><![CDATA[Simulation Zone]]></category>
		<category><![CDATA[simulation-based effects]]></category>
		<category><![CDATA[soft body simulation]]></category>
		<category><![CDATA[subscribers]]></category>
		<category><![CDATA[Turbulence simulation]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=156111</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/12/aufhaenger.jpg?fit=1200%2C675&quality=80&ssl=1" width="1200" height="675" title="" alt="" /></div><div><p>The Digital Production logo has been through a lot recently. It was thrown in Houdini with a wet towel and turned to earth in Tyflow. And now it is<br />
set on fire in Blender - where will it end?</p>
<p>The post <a href="https://digitalproduction.com/2023/08/10/your-own-particle-system-with-simulation-nodes/">Your own particle system with simulation nodes</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/gottfriedhofmann/">Gottfried Hofmann</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/12/aufhaenger.jpg?fit=1200%2C675&quality=80&ssl=1" width="1200" height="675" title="" alt="" /></div><div><p class="wp-block-paragraph">There are features in Blender that users have been waiting decades for. Until now, these have included a new particle system developed from scratch. In Blender 3.6, an alternative to the outdated, conventional particles is now finally available: The “Simulation Area” in the Geometry Nodes. As a side effect, not only particles can be simulated, but also cloth, soft bodies, etc. However, you still have to create the simulation manually from scratch. And that’s what we’re going to do in this article using a particle system as an example.</p>



<h2 id="burn-logo-burn" class="wp-block-heading">Burn, logo, burn!</h2>



<p class="wp-block-paragraph">As a concrete example, an object should burst into flames, because the fire simulation in Blender also has its quirks, so we use an old-school particle simulation for a stylised fire effect. The Digital Production logo serves as an example object, but you can use any other 3D object.<br /></p>



<h2 id="what-actually-is-a-simulation-in-blender" class="wp-block-heading">What actually is a Simulation in Blender?</h2>



<p class="wp-block-paragraph">In Blender, all processes whose state in a frame depends on the state in the previous frame are a simulation.<br />This classically includes particles, Cloth, Soft Bodies, Rigid Bodies, Fire, Water, Smoke and the Blender speciality “Dynamic Paint”. On the other hand, there are tools such as the modifiers from the “Modify”, “Generate” and “Deform” categories as well as<br />geometry Nodes, where each frame can be each frame is independent of the others.</p>



<h2 id="simulation-zone" class="wp-block-heading">Simulation Zone</h2>



<p class="wp-block-paragraph">In Blender 3.6, you can now set up a so-called “Simulation Zone” in these geometry nodes zone”, which is the area in which the simulations run. You can visualise this as follows. At the input of the simulation zone you can feed in data. These are read out once and remain in the simulation zone from then on Simulation zone.  Processed data can be output. These are then fed back into the simulation in the next frame via sent back to the simulation zone via the input and can be further processed there. This can be the position of a particle, but also its size or any other property size or any other property, which can be accessed with Geometry Nodes. Changing the size with the lifetime of a particle, for example, was previously not possible at all. Thanks to geometry nodes, we now have almost complete freedom when it comes to the structure of particle systems. However, this is still accompanied by the requirement that you have to create everything yourself. On the geometry node side, Blender 3.6 only offers the simulation zone and the associated features such as baking, but not yet any high-level tools such as emitters or force fields. These will probably be delivered in the future as nodegroup assets similar to the hair assets that have found their way into Blender 3.5. Until then, however, manual work is the order of the day.</p>



<h2 id="create-a-new-scene-and-leave-the-default-cube" class="wp-block-heading">Create a new scene and leave the default cube</h2>



<p class="wp-block-paragraph"><br />Leave the default cube alive for a change. It should act as a  container for our particle system. It is best to give it a suitable name such as “Particle Nodes Container” using the shortcut F2. Then switch to the Geometry Nodes workspace and click on “New” to create a new node tree. Assign a suitable name here too, such as “Fire Particle System”.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="880" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/12/mein-erstes-partikelsystem.jpg?resize=1200%2C880&quality=80&ssl=1"  alt=""  class="wp-image-156124" ><figcaption class="wp-element-caption">My first particle system: the “Hello World” of particle systems, so to speak. Particles are distributed on the faces of the cube, which fly upwards in the following frames thanks to the offset in the set position node.</figcaption></figure>



<p class="wp-block-paragraph"></p>



<h2 id="enter-the-zone" class="wp-block-heading">Enter the Zone</h2>



<p class="wp-block-paragraph">Use “Shift A – Simulation – Simulation Zone” to create a sub-zone in which the simulation will take place later. This is highlighted in burgundy and has its own input and output. If nodes are interposed, the highlighted area becomes larger. Nodes that are located within it have access to simulation data and are themselves part of the Simulation. Nodes from outside can be connected to the nodes in the zone, but then have no access to the simulation themselves, which will prove to be practical later on.</p>



<h2 id="distribute-points-on-surfaces" class="wp-block-heading">Distribute points on surfaces</h2>



<p class="wp-block-paragraph">A particle system is based on points, so our first task is to add them. For now, the geometry of the default cube will serve as the emitter. Add a “Point – Distribute Points on Faces” node and place it between the geometry inputs and outputs of the simulation zone. Nothing should happen yet, however, as the simulation zone is not yet connected to anything. Drag the geometry output of the simulation output node to the geometry input of the group output node and the geometry input of the group input node to the input of the simulation input node with the same name. If the playhead in the timeline is set to frame 1, points should now appear in the viewport.</p>



<h2 id="set-in-motion" class="wp-block-heading">Set in motion</h2>



<p class="wp-block-paragraph">However, the dots are not yet moving, i.e. we have a particle system but not yet a simulation. A node that changes or updates the position of the particles in each frame is still missing. Add a “Geometry – Write – Set Position” node and place it between the Points output of the Distribute Points on Faces node and the Geometry input of the Simulation Output node. Under “Offset”, set the value for Z to 0.1. If you now start the animation from frame 1, the particles move upwards at a constant speed, as 0.1 is added to the Z position in each frame.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="599" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/08/mein-besseres-partikelsystem.jpg?resize=1200%2C599&quality=80&ssl=1"  alt=""  class="wp-image-156137" ><figcaption class="wp-element-caption">My better particle system: With just a few nodes, we were able to create a particle system with animatable emission.</figcaption></figure>



<p class="wp-block-paragraph"></p>



<h2 id="my-first-particle-system" class="wp-block-heading">My first Particle system</h2>



<p class="wp-block-paragraph">Congratulations, you have just created your first own particle system with the Blender Simulation Nodes. It consists of an emitter that distributes particles on the surfaces of the input object. These particles are shifted upwards by a constant factor in each frame. The structure corresponds to a legacy blender particle system in which the start and end of the particle emission fall on the same frame.</p>



<h2 id="influence-from-outside" class="wp-block-heading">Influence from outside</h2>



<p class="wp-block-paragraph">Another typical way of emitting particles is recurring emission over several frames, a kind of inflow object. This is also the default setting of the legacy particle system. In the simulation nodes, we have to regularly add new particles from outside the simulation area. This requires an additional object. At this point, the previous cube becomes the container of the particle system and another object takes on the role of the emitter.</p>



<h2 id="its-a-logo" class="wp-block-heading">It’s a logo!</h2>



<p class="wp-block-paragraph">In our example, we use the DP logo, but you can use any mesh objects. Add an “Input – Scene – Object Info” node. This has an orange input socket. Connect it to the empty socket of the group input node. An input field for objects now appears in the modifier. You can name it by opening the sidebar in the Node Editor with the N key and entering a suitable name such as “Emitter Object” in the Group tab under “Inputs”. You can even define a tooltip here.</p>



<h2 id="degraded-to-a-mere-container" class="wp-block-heading">Degraded to a mere container </h2>



<p class="wp-block-paragraph">Switch the object info node to “Relative” so that the points also appear in the correct position later if you move, scale or rotate the object. Then connect the geometry output to the mesh input of the Distribute Points on Faces node and disconnect the geometry input of the Simulation Input node. This cuts the connection to the original geometry of the cube; it is now just a container for the simulation.</p>



<h2 id="union" class="wp-block-heading">Union</h2>



<p class="wp-block-paragraph">Add an object of your choice to the scene and select it in the Geometry Nodes modifier of the container. If you now play the animation from frame one using the space bar, particles will only appear once again. In order for the emitter to emit particles permanently, the newly added points must be merged with the existing ones in each step.<br />Add a “Geometry – Join Geometry” node and place it on the connection between “Distribute Points on Face” and “Set Position”. The Join Geometry node has a slightly elongated input socket. This illustration is intended to indicate that any number of nodes can be plugged in here. Connect the geometry output of the simulation input node to it.</p>



<h2 id="randomness-at-any-time" class="wp-block-heading">Randomness at any time</h2>



<p class="wp-block-paragraph">If you now start the simulation from frame one, you will see a stream of particles from the emitter. But they still look like threads because they are generated from exactly the same position on the surface of the object at each frame. However, we need a different distribution in each frame so that it looks like particles are being emitted from the entire surface. Add a node “Input – Scene – Scene Time” and connect the frame output to the seed input of the Distribute Points on Faces node. Also connect the Density input of the node to the empty socket of the Group Input node in order to be able to control the emission density from outside.</p>



<h2 id="animated-particle-emission" class="wp-block-heading">Animated particle emission</h2>



<p class="wp-block-paragraph">If you now play the animation, you will not only see a particle beam flying away from your object, you can even animate how many particles the emitter generates per frame. This was previously not so easy to do with the legacy particle system in Blender. This is where the strength of Simulation Nodes comes into play, because you no longer have to worry about such limitations.</p>



<h2 id="for-life" class="wp-block-heading">For life</h2>



<p class="wp-block-paragraph">Another feature of particle systems is the option of giving each particle a lifetime and reading out its current age. In the simulation nodes, we achieve this by setting an “age” attribute for each point at birth, which is then incremented by one in each frame. Add a node “Attribute – Capture Attribute” between Distribute Points on Faces and Join Geometry. A float with the value 0.0 is now assigned to each point when it is created. Connect the attribute output to the empty input socket of the simulation output node. A corresponding output now appears at the simulation input node.</p>



<h2 id="marry" class="wp-block-heading">Marry</h2>



<p class="wp-block-paragraph">Just as with the Join Geometry node for the points, we also need to find a way to “marry” the age of the existing particles with the newly added ones. Add a “Utilities – Math – Math” node. This is already set to the correct “Add” operation by default. Now all particles have the attribute and it is looped through the  simulation. However, we are not yet counting up. Duplicate the add node and place it between the existing add node and the simulation output node and set the value in the lower input to 1.0. Now one is added to the age with each frame.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="284" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/08/lebenszeit.jpg?resize=1200%2C284&quality=80&ssl=1"  alt=""  class="wp-image-156138" ><figcaption class="wp-element-caption">Age and lifetime: A new lifetime factor has been added to the particle system. If this is exceeded, the corresponding points are removed from the simulation. A corresponding output attribute has been added so that the shading can later be influenced based on the age of the particles.</figcaption></figure>



<p class="wp-block-paragraph"></p>



<h2 id="age-vs-lifetime" class="wp-block-heading">Age vs. lifetime</h2>



<p class="wp-block-paragraph">Age has not yet had any effect. We can use it to make particles die or disappear after a certain time in frames. Duplicate one of the add nodes and place it in a free area in the simulation zone. Connect the upper input to the second add node and change the The operation to “Greater Than”. Add then use “Input – Group – Group Input” to add another Group Input node and connect the threshold input of the Greater Than node to the free socket of the Socket of the group input node. Name the new parameter “Lifetime”, a default value of 50.0 makes sense here. Add a “Geometry – Operations – Delete Geometry” node and place it between the Geometry output of the Set Position node and the Geometry input of the Simulation Output node. Connect the Selection input to the the Value output of the Greater Than Node. From now on, all particles that are older than their lifetime will be removed from the simulation. If you play the animation now, the particles will disappear again from frame 50.</p>



<h2 id="normalisation" class="wp-block-heading">Normalisation</h2>



<p class="wp-block-paragraph">We can also use the age of the points as an output attribute so that we can later colour the particles differently in Cycles depending on their age. As Cycles likes to be fed with values between 0.0 and 1.0, we should normalise it to this value range beforehand. First connect the attribute output of the simulation output node to the free socket of the group output node. If you now open the Ouput Attributes panel in the modifier, you will see an empty field. Here you can later give the attribute a name so that you can access it in the shader, e.g. “age”. It will then also appear as a separate column in the Spreadsheet Editor. You can change the labelling of the field and the tooltip again in the Group tab of the sidebar of the Node Editor, for example to “Age”.</p>



<h2 id="force-fields" class="wp-block-heading">Force fields</h2>



<p class="wp-block-paragraph">The second component we would add to the legacy particle system would be force fields to control the movement of the particles. In the simulation nodes, this is done within the simulation zone via vectors that control the offset of the Set Position node. In our case these would be two components. A kind of wind that blows the particles in a desired direction and a field for swirling. We can simplify the wind extremely by assuming a constant movement in one direction. If we add a Z component, we have also integrated the buoyancy.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="591" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/08/partikelsystem.jpg?resize=1200%2C591&quality=80&ssl=1"  alt=""  class="wp-image-156140" ><figcaption class="wp-element-caption">The finished particle system: Once the noise texture has been integrated as a turbulence field and the material has been set, the particle system is complete.</figcaption></figure>



<h2 id="drift" class="wp-block-heading">Drift</h2>



<p class="wp-block-paragraph">Connect the offset input of the Set Position node to the free socket of the Group Input node and name the newly created input “Wind Force”. A value of 0.05, 0.01 and 0.025 causes the particles to drift gently and slightly backwards.</p>



<h2 id="swirl" class="wp-block-heading">Swirl</h2>



<p class="wp-block-paragraph">We need a second force to swirl the particles. We can extract this from a noise texture. This is because the RGB colours of the texture can also be interpreted as XYZ values of a vector. These must be merged with the previous forces, again using maths. Add a “Utilities – Vector – Vector Math” node and place it between the wind force socket of the Group Input node and the offset input of the Set Position node. Click on the lower, free vector input of the add node and drag the mouse to a free position. There should be a plus symbol next to the mouse cursor. If you now release the mouse, a search field will appear. Enter “Noise” there and select “Noise Texture – Colour” from the search results.</p>



<h2 id="adjustments" class="wp-block-heading">Adjustments</h2>



<p class="wp-block-paragraph">A noise texture appears whose colour output is directly connected to the vector input of the add node. If you now play the animation, the particles shoot off at a diagonal. This is because the noise texture only outputs positive values between 0.0 and 1.0 for each channel. The result should be colours, and their channel values are defined in Blender as a Range between 0.0 and 1.0.</p>



<h2 id="negative" class="wp-block-heading">Negative</h2>



<p class="wp-block-paragraph">However, the particles should move in all directions, even in the opposite direction to an axis, i.e. in a negative direction. To achieve this, we have to subtract 0.5 from all channels, then the range is between -0.5 and 0.5. Duplicate the Vector Math node, place it between the colour output of the Noise Texture node and the existing Vector Math node, which is currently set to “Add”, and set the operator of the new node to “Subtract”. Enter 0.5, 0.5 and 0.5 in the lower vector field.</p>



<h2 id="buzz" class="wp-block-heading">Buzz</h2>



<p class="wp-block-paragraph">If you now play the animation, you will see quite a hustle and bustle. The turbulence caused by the noise texture is still much too strong. Duplicate a Vector Math node again, place it between Subtract and Add and set the operation to “Scale”. Set the lower input to 0.2 and connect it to the free socket of the to the free socket of the Group Input Node. Name the new input parameter “Turbulence Strength” and view the animation. Set the Lifetime to 100 and the particles will now be swirled around by the noise texture.</p>



<h2 id="control" class="wp-block-heading">Control</h2>



<p class="wp-block-paragraph">How coarse or fine the turbulence is can be controlled via the scale input of the noise texture node. Set it to 1.0 and also connect it to the Group Input node and name the parameter “Turbulence Scale”. If you now play the animation, the particles will flow as if you had added a turbulence force field to a legacy particle system and set the flow value to 1.0. However, this stream-like flow is not quite the way fire moves. The flames flicker and constantly change direction.</p>



<h2 id="the-fourth-dimension" class="wp-block-heading">The fourth dimension</h2>



<p class="wp-block-paragraph">To simulate this effect with the Noise Texture, switch the drop-down in the Noise Texture to “4D”. A new input “W” has now been added. This can be used to permanently change the noise texture. In other programmes, the parameter is called “Evolution”, which really is a good name. To animate this, you do not need to set any keyframes. Instead, connect it to the Seconds output of the Scene Time node and the particles will wobble and flicker when the animation is played.</p>



<h2 id="set-material" class="wp-block-heading">Set material</h2>



<p class="wp-block-paragraph">Before you can move on to shading, you need to give the particles a material. To do this, add a “Material – Set Material” node between the geometry output of the simulation output node and the geometry input of the group output node. Select an existing material from the drop-down menu and edit the name and the shader in the next step.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="936" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2023/08/shading.jpg?resize=1200%2C936&quality=80&ssl=1"  alt=""  class="wp-image-156142" ><figcaption class="wp-element-caption">Rendering in Cycles: The points generated by the simulation nodes cannot yet be displayed with Eevee, so we use Cycles as the render engine. The ‘age’ attribute is used for colouring, the name of which we have assigned in the modifier and entered exactly as it is in the attribute node.</figcaption></figure>



<h2 id="rendering-in-cycles" class="wp-block-heading">Rendering in Cycles</h2>



<p class="wp-block-paragraph">To render the particles, we need the Cycles render engine, as Eevee cannot yet display the points. In the Render tab of the Properties Editor, change the render engine to Cycles and switch to the Shading Workspace. Switch on the Render Preview in the viewport; the particles now appear as small spheres. In the Shader Editor, select the same material in the material drop-down that you have also assigned in the geometry nodes. Now you can also change the name, e.g. to “Particle Material”.</p>



<h2 id="cycles-should-recognise-them-by-their-name" class="wp-block-heading">Cycles should recognise them by their name</h2>



<p class="wp-block-paragraph">Add a new node “Input – Attribute” and enter the exact name you have given to the Age attribute in the “Name” field and connect the Fac output to the Base Colour input of the Principled BSDF node. The particles are now coloured in a gradient from black to white, depending on their age. The perfect input for a colour ramp.</p>



<h2 id="ramp" class="wp-block-heading">Ramp</h2>



<p class="wp-block-paragraph">Insert a “Converter – Colour Ramp” node between Fac and Base Color. Set another stop by pressing the plus icon of the node and set the stop on the far left to a light, desaturated orange. Then set the value for “Value” in the colour wheel to 5.0. Now the particles reflect more light than hits them. A nice effect, which is not physically correct at all, but gives a little more detail than when using emission. Set the second stop to a rich red with a value of 2.0 and the last stop to pure black. Also set the interpolation in the dropdown in the top right-hand corner of the node to “Ease”.</p>



<h2 id="fadeout" class="wp-block-heading">Fadeout</h2>



<p class="wp-block-paragraph">The spheres are now coloured, but it would be nice if they fade out as if the flames were burning out or dissipating like smoke. Connect the Fac output of the Attribute node to the Alpha input of the Principled BSDF node. Now it looks as if the logo is smoking at the beginning and the smoke is turning into fire. For the fire to finally fade out, we need another colour ramp. Set three stops again and the interpolation to “Ease”. The centre stop is given a pure white and the right-hand stop a pure black. The left stop is given a value of 0.1 so that the particles on the emitter are still slightly visible and virtually envelop it.</p>



<h2 id="artefacts" class="wp-block-heading">Artefacts</h2>



<p class="wp-block-paragraph">Black artefacts should now have appeared in the tips of the flames, depending on how many particles you use. The black spots are caused by the fact that Cycles only visits a certain number of surfaces, the so-called bounces. And every time a ray passes through one of the spheres, that’s two transparent bounces. Set the number of transparent bounces in the Light Paths panel of the Render Properties to 256. Now the flame tongues fade out cleanly.</p>



<h2 id="light-and-shadow" class="wp-block-heading">Light and shadow</h2>



<p class="wp-block-paragraph">As the particles in our setup are dependent on light from outside to glow, it is worth loading an HDRI texture into the world. You can achieve the black background by opening the “Ray Visibility” panel in the world properties and unchecking “Camera” and “Glossy”. The latter is a small preparatory step for the next step.</p>



<h2 id="laying-the-floor" class="wp-block-heading">Laying the floor</h2>



<p class="wp-block-paragraph">Add a tarp to the scene and scale it by a factor of 50. Then add a new material and set the value for “Metallic” in the Principled BSDF node to 1.0. You can adjust the strength of the reflection by making the base colour lighter or darker. For an exact replication of the result, set the value of “Value” in the colour selection of the base colour to 0.5. Next, delete the light source that is still present and, if necessary, make the material of the emitter object darker so that it is clearly recognisable in contrast to the light “smoke”.</p>



<h2 id="bake-a-cake" class="wp-block-heading">Bake a cake</h2>



<p class="wp-block-paragraph">After placing the camera, it’s time to render. You can render both a still image and an animation. It would be practical if the simulation data could be saved so that you don’t have to simulate again and again. This process is called “Baking” and can be found for the simulation nodes in the Physics tab of the Properties Editor. Open the Simulation Nodes panel there and click on “Bake”. All frames in the timeline are now simulated and saved. A new simulation is not necessary.</p>



<h2 id="outlook" class="wp-block-heading">Outlook</h2>



<p class="wp-block-paragraph">This article was intended to provide an overview of how particle systems in the new are structured in the new simulation nodes. From this basis you can proceed further. You could also change the radius of the particles with age. A feature that is also not so easily possible with the legacy particle system. Or you can modify it so that the time-dependent calculations always take place in seconds instead of frames, making your system independent of the project’s frame rate. In order to make the fire flicker even better, you could also<br />also modulate the emission with a safely time-varying noise texture. Even more: you can make the result more realistic by giving the particles a very slight initial velocity along the normal of the emission object.</p>



<h2 id="conclusion" class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">With the new simulation nodes in Blender 3.6, particle systems can be created whose thickness exceeds that of the existing legacy particle system. Thanks to the power of the geometry nodes, there is enormous potential ahead of you, but it still needs to be realised. Because there are still no high-level nodes, you have to click together things like an emitter or a force field yourself. It is to be expected that there will be numerous node groups and assets in the future, both from the developers themselves and from the community.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://digitalproduction.com/2023/08/10/your-own-particle-system-with-simulation-nodes/">Your own particle system with simulation nodes</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/gottfriedhofmann/">Gottfried Hofmann</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/12/aufhaenger.jpg?fit=4096%2C2304&#038;quality=80&#038;ssl=1" length="148913" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/12/aufhaenger.jpg?fit=1200%2C675&#038;quality=80&#038;ssl=1" width="1200" height="675" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/12/aufhaenger.jpg?fit=1200%2C675&#038;quality=80&#038;ssl=1" width="1200" height="675" />
<post-id xmlns="com-wordpress:feed-additions:1">156111</post-id>	</item>
	</channel>
</rss>
