<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Portfolios on 4ny&#39;s Blog</title>
    <link>/portfolio/</link>
    <description>Recent content in Portfolios on 4ny&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 02 Oct 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="/portfolio/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Bonctober Trailer</title>
      <link>/portfolio/bonctober-trailer/</link>
      <pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate>
      <guid>/portfolio/bonctober-trailer/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/RBdDgGcM4qY?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;Learning from my mistake on &lt;a href=&#34;/portfolio/witherstorm-attack-animation/&#34;&gt;the previous animation&lt;/a&gt; this time I&amp;rsquo;ve imported the environment in chunks. And while it wasn&amp;rsquo;t used on the final animation, I did make a frustum culling setup for the far away chunks, as everything today it&amp;rsquo;s powered by geometry nodes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;/images/bonctober-trailer/frustum-culling.gif&#34; alt=&#34;frustum-culling.gif&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Witherstorm Attack</title>
      <link>/portfolio/witherstorm-attack-animation/</link>
      <pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate>
      <guid>/portfolio/witherstorm-attack-animation/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/S3_NLjrvKQs?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;This time I&amp;rsquo;ve used &lt;a href=&#34;https://github.com/BramStoutProductions/MiEx&#34;&gt;MiEx&lt;/a&gt; which is a much better tool than &lt;a href=&#34;https://www.realtimerendering.com/erich/minecraft/public/mineways/&#34;&gt;Mineways&lt;/a&gt;, but also much more complex to use, but it allows for importing modded blocks.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;/images/witherstorm-attack/environment.webp&#34; alt=&#34;environment.webp&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The map on this one is very simple since it&amp;rsquo;s just one house in the middle of nowhere, but then we need a bunch of nowhere to be in the middle of. That led me to importing a bunch more land than necessary, which made the rendering slower. But after this project I&amp;rsquo;ve promptly started working on a solution to allow importing big environments and also keep rendering times low.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Youtubers vs Realistic Monsters</title>
      <link>/portfolio/youtubers-vs-realistic-monsters/</link>
      <pubDate>Mon, 23 Oct 2023 00:00:00 +0000</pubDate>
      <guid>/portfolio/youtubers-vs-realistic-monsters/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/7jkHHWVI8HQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;This project was a lot of fun on the tech side, there&amp;rsquo;s a nice split of stuff to do both in Minecraft and Blender.&lt;/p&gt;&#xA;&lt;h2 id=&#34;but-how-did-we-do-it&#34;&gt;But how did we do it?&lt;/h2&gt;&#xA;&lt;p&gt;On Minecraft we had to use &lt;a href=&#34;https://www.replaymod.com/&#34;&gt;ReplayMod&lt;/a&gt; to capture gameplay with depth data on a sequence of &lt;code&gt;.exr&lt;/code&gt; files, and also camera movement data. As for Blender we had to import the Minecraft world into it, I&amp;rsquo;ve used &lt;a href=&#34;https://www.realtimerendering.com/erich/minecraft/public/mineways/&#34;&gt;MineWays&lt;/a&gt; which sadly doesn&amp;rsquo;t support importing meshes from installed mods, it required me to manually add placeholders for the animation pass to work with.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
