<?xml version="1.0" encoding="UTF-8"?><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/"
	>

<channel>
	<title>jetro</title>
	<atom:link href="https://jet.ro/feed/" rel="self" type="application/rss+xml" />
	<link>https://jet.ro</link>
	<description>designer / developer tidbits</description>
	<lastBuildDate>Fri, 21 Aug 2026 20:54:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.11</generator>
	<item>
		<title>Dynamic 3D Text in Unity Engine</title>
		<link>https://jet.ro/2026/08/21/dynamic-3d-text-in-unity-engine/</link>
		
		<dc:creator><![CDATA[jetro]]></dc:creator>
		<pubDate>Fri, 21 Aug 2026 20:52:13 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Visuals]]></category>
		<guid isPermaLink="false">https://jet.ro/?p=2577</guid>

					<description><![CDATA[Example of using Dynamic 3D Text, direct capture from Unity Engine It was roughly 2 years ago when I added the first version of my latest asset to the Unity asset store: Dynamic 3D Text. All of my Unity assets fill some kind of gap in what the engine itself offers. Or, at least, filled [&#8230;]]]></description>
										<content:encoded><![CDATA[<table cellpadding=2 cellspacing=0 border=0 class="alignright size-full">
<tr>
<td><video src="https://jet.ro/wp-content/uploads/2026/08/VIDEO-Dynamic3DText_v095-w400.mp4" width="400" height="226" autoplay loop muted playsinline></video></td>
<tr>
<td><em>Example of using Dynamic 3D Text, direct capture from Unity Engine</em></td>
</tr>
</table>
<p>It was roughly 2 years ago when I added the first version of my latest asset to the Unity asset store:<br />
<strong><em><a href="https://strobotnik.com/unity/dynamic3dtext/" target="_new">Dynamic 3D Text</a></em></strong>.
</p>
<p>All of my Unity assets fill some kind of gap in what the engine itself offers. Or, at least, filled such a gap at the time of the original release of the asset.</p>
<p>This holds especially true for Dynamic 3D Text. There is no support for runtime-generated 3D text in the engine itself. And when I started building this asset, there was exactly one such asset available in the Asset Store itself, with development having already been abandoned some years earlier, and that particular asset not working properly on the most recent versions of Unity.</p>
<p><span id="more-2577"></span></p>
<p>Consider how games, for example, often contain a lot of artistic logos or menu titles as textures. Beautiful text, lit and then rendered in some content creation tool. Then comes the time for localization to several languages. In the end, you have likely tens of megabytes of such texture data in the project. At the same time you&#8217;re sweating over the size, as it&#8217;s still very much a thing to minimize download sizes, at least for mobile apps. Imagine leaving out all those textures and variants, and adding just a couple of TrueType/OpenType font files. Change text content dynamically in the app itself, as well as the text setup with the lighting and everything, and create beautiful text in runtime, rendered and animated in real time. File size of the final build goes down, and the game itself looks better than ever. That&#8217;s just one example of what using and switching to this asset can bring you.
</p>
<p>The reason I&#8217;m writing about this on my blog only now, after two years, is that the asset is finally somewhat ready for prime time. Not so much as a &#8220;public beta&#8221;. I recently updated it, thinking about calling it 1.0.0 now that the crucial features were finished, such as word wrapping (even with soft hyphen support), many language-specific tweaks for better glyph shaping and ordering, better smooth normals, detaching as simple meshes, carefully tweaked custom inspector that makes it feel just like a native part of Unity, proper Prefab support, support for RTL languages such as Arabic and Hebrew, CJK support, optimization of the generation to make it multiple times faster than the original reference code and proof of concept, and even more&#8230; of course, including the core feature of dynamically creating geometric text with depth and support for beveling. Naturally, I have many ideas in the roadmap for awesome features. What&#8217;s lacking are proper in-depth marketing videos, images and information to show all the facets of Dynamic 3D Text <em>[pun intended]</em>.
</p>
<p>The asset itself is built in a &#8220;traditional&#8221; software engineering way. However, I recently used AI to create a separate test suite for it, as well as hunt down a few hard to track bugs. That has considerably enhanced its robustness and proved useful. Using AI made me think that the asset should be equally easy to use in agentic development. That made me realize that the programmatic API probably needs a few small tweaks or changes to properly enable that. And that&#8217;s only reason why I actually didn&#8217;t release the latest version as 1.0.0 but instead declared it to be 0.9.5.
</p>
<p>Other than that, the asset is now remarkably better than the initial release (just check the Version History at bottom of the asset home page). So far, I&#8217;ve also raised the price with every update of the asset, and for now, the intention is to keep doing that, at least up to the forthcoming 1.0.0 release.
</p>
<p><strong>And now, if you&#8217;re reading this at the right moment, there&#8217;s a unique opportunity. The asset is going to be in a Flash Sale starting very soon now.</strong> I&#8217;m not planning to put it on sale very often, so if you have been holding off buying it, now is an excellent time to grab it at a considerable discount.
</p>
<p><a href="https://assetstore.unity.com/packages/tools/modeling/dynamic-3d-text-286449?_aid=1011lMK9&#038;_pubref=jetro" target="_new">Go get it! &#8211; <strong><em>Dynamic 3D Text</em></strong> in the Unity Asset Store</a></p>
]]></content:encoded>
					
		
		<enclosure url="https://jet.ro/wp-content/uploads/2026/08/VIDEO-Dynamic3DText_v095-w400.mp4" length="170568" type="video/mp4" />

			</item>
		<item>
		<title>Assembly 2022 &#8211; Echoes from the past &#8211; Seminar Slides</title>
		<link>https://jet.ro/2022/08/22/assembly-2022-echoes-from-the-past-seminar-slides/</link>
		
		<dc:creator><![CDATA[jetro]]></dc:creator>
		<pubDate>Mon, 22 Aug 2022 17:11:37 +0000</pubDate>
				<category><![CDATA[Misc.]]></category>
		<category><![CDATA[Seminars]]></category>
		<guid isPermaLink="false">https://jet.ro/?p=2404</guid>

					<description><![CDATA[Echoes from the past: Seminar slides of "Making of Porrasturvat" presentation. That game also got an award now, 20 years later.]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="/wp-content/uploads/2022/08/400px_Asm30YearsAwards_Gamedev_Audience_Favourite.jpg" alt="Assembly 30 Years Awards Displate, Gamedev Audience Favourite" width="400" height="289" class="alignright size-full"></p>
<p>This post is about echoes from the past—from 10, 20 and 30 years ago—and how they&#8217;re reaching 2022. In 1992, the Assembly demoscene event was born, as was a little not-so-serious joke demogroup called <em>tAAt</em>. In 2002, tAAt won the first Assembly Game Development competition. And in 2012 I made the decision about switching jobs and setting up a new company (which was officially founded just at the next turn of the year).</p>
<p>I just attended the Assembly Summer 2022 event, as I&#8217;ve done since 1992, so it&#8217;s been 30 years already. Since the event has now been held for 30 years, they did <em>Assembly 30 Years</em> awards. There were shortlist nominees in different categories, and audience had the chance to vote for their favorite in each one.</p>
<p>Incidentally, it&#8217;s now also 20 years since the release of the <em>Porrasturvat &#8211; Stair Dismount</em>, which was that game which won the first Gamedev compo at the event. And now, 20 years later, it was nominated in the above mentioned awards and even <em>ended up winning the audience award</em> in the Gamedev category! 😲 The Displate metal poster is shown in the image.</p>
<p>Funny enough, <a href="https://taat.fi" target="_new" rel="noopener">tAAt</a> was also nominated in the shortlist of <em>Impactful Group</em> category. And like Assembly event, tAAt group is also now 30 years old, as its first release was made in late 1992. My friends also finished their Lego stop-motion animation trilogy, with the final version mostly made in 2002, but with the material only getting edited now in 2022. They won the Short Film competition once again. Check out <a href="https://youtu.be/TJAA_0icoE8" target="_new" rel="noopener">LeGorski in YouTube</a>. I had a very minor voice acting role. 😀</p>
<p>You might know that development of the <a href="https://iki.fi/jetro/dismount/" target="_new" rel="noopener"><em>Dismount</em></a> game series is still <a href="http://secretexit.com" target="_new" rel="noopener">continued</a>, although I haven&#8217;t been personally involved with it for the last 10 years. But, at the award ceremony, my old colleagues still <a href="https://twitter.com/jlauha/status/1555285150568677377" target="_new" rel="noopener">remembered me with their own award</a> &#8211; a gift card for buying a concrete stairs element. 😵</p>
<p>Also, the Assembly event organizers asked me to do a little seminar presentation&#8230;<br />
I agreed to do one &#8211; and you might almost guess the theme:<br />
<strong><a href="https://youtu.be/hgP1M7mYITE" target="_new" rel="noopener">View &#8220;Making of <em>Porrasturvat</em>&#8221; presentation in YouTube</a></strong>.</p>
<p>If you check the video, you may notice that I used custom slideshow software. I&#8217;ve done that previously as well (<a href="https://iki.fi/jetro/2013/08/06/using-emerging-hardware-software-for-inspiration-2013/">here</a>, <a href="https://iki.fi/jetro/2013/12/09/apps4finland/">here</a> and <a href="https://iki.fi/jetro/2013/12/10/seminar-slides-aalto-games-now-what-is-this-indie-anyhow/">here</a>). This time I continued to tinker with my system, e.g. by adding multi-display support. When activated, it shows small slide with presenter notes on the primary display and full-screen slide on the secondary display. This is of course similar to what you&#8217;re used to with PowerPoint and other off-the-shelf presentation software.</p>
<p>Using custom slideshow software allows doing some unusual integrations like OSC integration, or embedding 3D models, and so on. If you&#8217;re interested in contracting me for something similar, please use the contact email address in <a href="https://strobotnik.com/showcase/" target="_new" rel="noopener">Strobotnik Showcase</a> page (<a href="https://strobotnik.com" target="_new" rel="noopener">Strobotnik</a> is my consulting company).</p>
<p>PS. I might post the slides here a bit later, maybe with the executable version!</p>
<p><!--
<strong>Temporary addendum:</strong>
I'm currently available for a new contract. Note that I only take part-time contracts. Check out these pages for some more background information: <a href="/about">about me</a>, <a href="https://strobotnik.com/showcase/" target="_new" rel="noopener">Strobotnik Showcase</a>.
--></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Assembly 2019 (Pending Posts part 2)</title>
		<link>https://jet.ro/2019/10/10/assembly-2019-pending-posts-part-2/</link>
		
		<dc:creator><![CDATA[jetro]]></dc:creator>
		<pubDate>Thu, 10 Oct 2019 20:12:01 +0000</pubDate>
				<category><![CDATA[Visuals]]></category>
		<guid isPermaLink="false">https://jet.ro/?p=2183</guid>

					<description><![CDATA[Some productions released at Assembly'2019]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" src="/wp-content/uploads/2019/10/screenshot_blackhole_225p.png" alt="Orbital Acceleration image from PYO PYO" width="400" height="225" class="alignright size-full"><br />
Together with friends, we attended Assembly&#8217;2019 event in August.</p>
<p>We made some productions as well:</p>
<ul>
<li><em><strong>PYO PYO</strong></em> by <strong>Rustbloom</strong><br />
(1st in Oldskool PC demo competition, target hardware was roughly Pentium 120MHz with Gravis UltraSound).<br />
<a href="https://jet.ro/files/PYOPYO.zip" rel="noopener noreferrer" target="_blank">Download executable</a> &#8211; runnable in DOSBox.</li>
<p>Or <a href="https://youtu.be/4iF_9WwVwKU" rel="noopener noreferrer" target="_blank">watch it in YouTube</a>.</p>
<li><em><strong>Neon Heartburn &#8211; Värinärästys</strong></em> by <strong>tAAt 2019</strong>. <a href="https://youtu.be/FxGt32z1DLQ" rel="noopener noreferrer" target="_blank">Watch it in YouTube</a>.</li>
</ul>
<p>Naturally one day I&#8217;d like to write some blog post about the details of making of those productions, which is why I&#8217;m calling this post also &#8220;pending posts part 2&#8221;. But it&#8217;s starting to seem quite unlikely.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Pending Posts</title>
		<link>https://jet.ro/2019/01/13/pending-posts/</link>
		
		<dc:creator><![CDATA[jetro]]></dc:creator>
		<pubDate>Sun, 13 Jan 2019 16:14:40 +0000</pubDate>
				<category><![CDATA[Visuals]]></category>
		<guid isPermaLink="false">https://jet.ro/?p=2142</guid>

					<description><![CDATA[Clearly when I occasionally find a bit of time to create something for fun, I tend to be more interested in creating something with friends than spending time to write blog posts and technical info about such stuff. I say this because I noticed how I haven&#8217;t posted here anything about a few things we&#8217;ve [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Clearly when I occasionally find a bit of time to create something for fun, I tend to be more interested in creating something with friends than spending time to write blog posts and technical info about such stuff.</p>
<p>I say this because I noticed how I haven&#8217;t posted here anything about a few things we&#8217;ve done in 2015-2018. I&#8217;d like to create an in-depth look of each such thing, but just don&#8217;t seem to find the time to do that.</p>
<p>So, here&#8217;s at least a list of the things I&#8217;m talking about:</p>
<ul>
<li>&#8220;<em>cay/decay</em>&#8221; (shortfilm for Assembly 2015, 2nd) &#8211; in <a href="https://youtu.be/Lkt8fDOntpY" target="_new" rel="noopener noreferrer">YouTube</a></li>
<li>&#8220;<em>de_bust funk de_lax</em>&#8221; (demo for Assembly 2017), <a href="https://files.scene.org/get/parties/2017/assembly17/demo/de_bust_funk_de_lax_by_rustbloom.zip">download</a> for Windows / <a href="https://youtu.be/ofChGSIeLMQ" target="_new" rel="noopener noreferrer">YouTube video</a></li>
<li>&#8220;<em>Rakka</em>&#8221; (demo for Assembly 2018), <a href="https://files.scene.org/get/parties/2018/assembly18/demo/rakka_by_rustbloom.zip">download</a> for Windows / <a href="https://youtu.be/ZXOVbuiEWz0" target="_new" rel="noopener noreferrer">YouTube video</a></li>
</ul>
<p>Each of those three have been created mainly with help of the <a href="https://unity3d.com/" target="_blank" rel="noopener noreferrer">Unity</a> engine. But each of those also have some little twist in how they were created. Perhaps I some day find the time to write more.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Klattersynth TTS for Unity</title>
		<link>https://jet.ro/2017/08/11/klattersynth-tts-for-unity/</link>
		
		<dc:creator><![CDATA[jetro]]></dc:creator>
		<pubDate>Fri, 11 Aug 2017 06:44:39 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Misc.]]></category>
		<guid isPermaLink="false">http://jet.ro/?p=1836</guid>

					<description><![CDATA[Klattersynth TTS for Unity is a small and fully embedded speech synthesizer.]]></description>
										<content:encoded><![CDATA[<p>Introducing <a href="https://strobotnik.com/unity/klattersynth/" target="_blank" rel="noopener noreferrer"><strong>Klattersynth&nbsp;TTS</strong> for Unity</a>, now available in the Unity Asset Store.</p>
<p>It&#8217;s a really small and fully embedded speech synthesizer (a text-to-speech engine).</p>
<p>In contrast to some other speech assets, it does not need a network connection for generating speech using a 3rd party website, and it also does not use the speech synthesizer embedded in the Operating System (which differs based on what OS and what OS version you&#8217;re using).</p>
<p>Instead it&#8217;s fully embedded and runs probably on all platforms targeted by the Unity engine. It can generate and stream the speech real-time or it can pre-generate &amp; cache clips and play them later. The audio clips are also played using a normal Unity AudioSource component, so they&#8217;ll also work with the 3D spatialization and reverb zones. Klattersynth TTS is contained in a ~100 KB &#8220;cross-platform&#8221; DLL file for Unity, which zip-compresses down to less than 30 KB!</p>
<p>You can try a WebGL demo build yourself in <a href="https://strobotnik.com/unity/klattersynth/" target="_blank" rel="noopener noreferrer">Klattersynth&nbsp;TTS website</a>, or <a href="https://www.youtube.com/playlist?list=PLmsJW9P5Hfdmfdcy9cYO1iStC_oTfrOAk" target="_blank" rel="noopener noreferrer">view showcase videos in YouTube</a>.</p>
<p><span id="more-1836"></span></p>
<p>Pangrams Example Scene:<br />
<iframe width="640" height="360" src="https://www.youtube.com/embed/LzEO3j71nfo?list=PLmsJW9P5Hfdmfdcy9cYO1iStC_oTfrOAk" frameborder="0" allowfullscreen=""></iframe></p>
<p>Text Entry Example Scene:<br />
<iframe loading="lazy" width="640" height="360" src="https://www.youtube.com/embed/74XU32Pz2OE?list=PLmsJW9P5Hfdmfdcy9cYO1iStC_oTfrOAk" frameborder="0" allowfullscreen=""></iframe></p>
<p>Lorem Ipsum Robots Example Scene:<br />
<iframe loading="lazy" width="640" height="360" src="https://www.youtube.com/embed/DXkSeZGCQ3I?list=PLmsJW9P5Hfdmfdcy9cYO1iStC_oTfrOAk" frameborder="0" allowfullscreen=""></iframe></p>
<p><a href="https://strobotnik.com/unity/klattersynth/" target="_blank" rel="noopener noreferrer"><strong>Klattersynth&nbsp;TTS</strong> for Unity</a> website</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>frutos do mar</title>
		<link>https://jet.ro/2015/05/04/frutos-do-mar/</link>
		
		<dc:creator><![CDATA[jetro]]></dc:creator>
		<pubDate>Mon, 04 May 2015 14:18:02 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Visuals]]></category>
		<guid isPermaLink="false">http://jet.ro/?p=1767</guid>

					<description><![CDATA[About "frutos do mar", a 2014 demo.]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="/wp-content/uploads/2015/05/frutos_do_mar_thumb_w300.jpg" alt="frutos_do_mar_thumb_w300" width="300" height="169" class="alignright size-full wp-image-1768"><br />
About 9 months after the release, I finally took a bit of time to add a page about this demo and also write a little bit about it. Frutos do mar was a demo for the Assembly 2014 demo competition.</p>
<p><a href="https://iki.fi/jetro/visuals/demos/frutos-do-mar/">Read more from its own page</a>.</p>
<p>Or just <a href="https://youtu.be/drvJEHvxNDI" target="_blank" rel="noopener noreferrer">watch it in YouTube</a> if you&#8217;re not interested in details about it.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Internet Reachability Verifier for Unity</title>
		<link>https://jet.ro/2014/06/27/internet-reachability-verifier-for-unity/</link>
		
		<dc:creator><![CDATA[jetro]]></dc:creator>
		<pubDate>Fri, 27 Jun 2014 12:28:37 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Misc.]]></category>
		<guid isPermaLink="false">http://jet.ro/?p=1658</guid>

					<description><![CDATA[Introducing and explaining my latest addition to Unity Asset Store - Internet Reachability Verifier.]]></description>
										<content:encoded><![CDATA[<p>Introducing my third little thing for the Unity Asset Store:</p>
<p><strong><a href="http://strobotnik.com/unity/internetreachabilityverifier/">Internet Reachability Verifier</a> for Unity</strong></p>
<p>It&#8217;s a simple thing, but there wasn&#8217;t other assets available doing exactly this. Since I needed to build something like this, I figured out I&#8217;ll polish it a bit and put to asset store as well.</p>
<p>So what does it do, since Unity API already has <em>Application.internetReachability</em>?</p>
<p>The Application.internetReachability has a bit misleading name &#8211; it actually tells if it is technically possible for you to try to use the network. So, on a desktop machine it will always tell you that you can. On a mobile device it&#8217;s nice for checking if you&#8217;re really offline, or if you can try to make a connection (and if it is going to use WiFi or carrier data).</p>
<p>However, with mobile devices, quite often you need to go through a login web page before the internet <em>truly</em> works. In such wireless network, any WWW request will actually give you the login page instead of the data you actually wanted. This is the situation why you want to use Internet Reachability Verifier &#8211; <a href="http://strobotnik.com/unity/internetreachabilityverifier/">read more details from its own web page</a>.</p>
<p><strong>Here are also some other assets to check out:</strong></p>
<ul>
<li><a href="http://strobotnik.com/unity/googleuniversalanalytics/" target="_new" rel="noopener">Google Universal Analytics for Unity</a>
<li><a href="http://strobotnik.com/unity/dynamictext/" target="_new" rel="noopener">Pixel-Perfect Dynamic Text</a>
<li><a href="http://strobotnik.com/unity/klattersynth/" target="_new" rel="noopener">Klattersynth TTS</a> <em><strong>NEW!</strong></em>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
