<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Anim Theme</title>
    <description>The latest articles on Forem by Anim Theme (@anim_theme_a5314fe2e0c287).</description>
    <link>https://forem.com/anim_theme_a5314fe2e0c287</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3623454%2F36c41c22-9ecc-4412-9b27-55928191f732.png</url>
      <title>Forem: Anim Theme</title>
      <link>https://forem.com/anim_theme_a5314fe2e0c287</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/anim_theme_a5314fe2e0c287"/>
    <language>en</language>
    <item>
      <title>Building 'Block City Racer': Procedural Generation &amp; Performance in Three.js</title>
      <dc:creator>Anim Theme</dc:creator>
      <pubDate>Thu, 04 Dec 2025 15:15:27 +0000</pubDate>
      <link>https://forem.com/anim_theme_a5314fe2e0c287/building-block-city-racer-procedural-generation-performance-in-threejs-1iie</link>
      <guid>https://forem.com/anim_theme_a5314fe2e0c287/building-block-city-racer-procedural-generation-performance-in-threejs-1iie</guid>
      <description>&lt;p&gt;The Challenge&lt;br&gt;
I wanted to build an infinite, procedural cyberpunk city. I wanted traffic, drones, physics, and day/night cycles.&lt;br&gt;
But there was a catch: I’m coding on a laptop with only 4GB of RAM.&lt;br&gt;
If I loaded a single 4K texture or a heavy physics engine, my browser tab would crash. So, I had to get creative. I decided to build Block City Racer—a lightweight, mobile-responsive driving simulator for the web—using raw math and optimization tricks.&lt;br&gt;
Here is a look at the dev log and how I pulled it off.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Visuals: "Baking" on the Fly
I couldn't afford to download heavy .jpg textures for the buildings or roads. Instead, I used the HTML Canvas API to generate textures in memory when the game loads.
Roads: Generated via code (black background + white dashed lines + noise).
Branding: I wrote a script to paint "ANIMTHEME" directly onto the asphalt texture, so as you drive, the road itself markets the platform.
Windows: Procedurally drawn rectangles with a chance to be "lit" (yellow/blue) or "dark."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5pze211nkumrx9cgrcf5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5pze211nkumrx9cgrcf5.png" alt=" " width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Performance: The Power of Instancing
Rendering 3,000 unique building meshes kills the CPU.
Instead, I used THREE.InstancedMesh.
This allows the GPU to render one cube geometry 3,000 times in a single draw call. I used the same technique for the traffic system and the drone swarm.
Traffic: 50 cars.
Drones: 50 sci-fi discs tilting into the wind.
Draw Calls: 2.
FPS: 60 (even on mobile).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgc0mboj7jupyeppg8zl3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgc0mboj7jupyeppg8zl3.jpg" alt=" " width="720" height="1322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The "Dr. Driving" Mobile Controls&lt;br&gt;
I didn't want simple buttons. I wanted a simulation feel. I built a custom DOM-based dashboard overlay that sits on top of the Canvas.&lt;br&gt;
Steering: I used SVG math to track the user's thumb rotation. You actually "turn" the wheel.&lt;br&gt;
Gearbox: A working D/R shifter that inverts the gas pedal logic.&lt;br&gt;
Pedals: Custom SVG graphics for Gas and Brake.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Audio Synthesis (No MP3s!)&lt;br&gt;
Downloading an engine sound file takes bandwidth. Instead, I built an AudioEngine class using the Web Audio API.&lt;br&gt;
I created an oscillator (Sawtooth wave) and connected it to a Low Pass Filter.&lt;br&gt;
Idle: The filter closes (muffled rumble).&lt;br&gt;
Accelerate: The filter opens (aggressive growl) and pitch increases based on velocity.&lt;br&gt;
It sounds like a sci-fi turbine, and it costs almost 0kb of memory.&lt;br&gt;
What's Next?&lt;br&gt;
This project is a flagship template for AnimTheme, a new marketplace for developers and designers that we just launched.&lt;br&gt;
I'm currently working on:&lt;br&gt;
Adding a Third-Person Character Controller (getting out of the car).&lt;br&gt;
Interior mapping for fake 3D windows.&lt;br&gt;
More aggressive drone AI.&lt;br&gt;
x.com/Animtheme&lt;br&gt;
Follow me here for Part 2 where I add the character controller!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Preview the project here:&lt;br&gt;
&lt;a href="https://animtheme-city.vercel.app" rel="noopener noreferrer"&gt;https://animtheme-city.vercel.app&lt;/a&gt;&lt;br&gt;
&lt;a href="https://youtu.be/TXSe2c1qbgY?si=bB7k6JSG8lrM_Ata" rel="noopener noreferrer"&gt;Watch Demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>gamedev</category>
      <category>performance</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🎉 I Just Launched AnimTheme A Marketplace for Web Animations</title>
      <dc:creator>Anim Theme</dc:creator>
      <pubDate>Mon, 24 Nov 2025 15:18:51 +0000</pubDate>
      <link>https://forem.com/anim_theme_a5314fe2e0c287/i-just-launched-animtheme-a-marketplace-for-web-animations-160f</link>
      <guid>https://forem.com/anim_theme_a5314fe2e0c287/i-just-launched-animtheme-a-marketplace-for-web-animations-160f</guid>
      <description>&lt;p&gt;Hey DEV community!&lt;br&gt;
I’m Emmanuel, a full-stack developer who loves building animation-driven interfaces with Three.js, GSAP, and modern web tools.&lt;/p&gt;

&lt;p&gt;After weeks of work, I just launched AnimTheme — a niche marketplace for developers and designers who create web animations, motion components, and animated UI elements.&lt;/p&gt;

&lt;p&gt;🔥 What AnimTheme offers&lt;/p&gt;

&lt;p&gt;Curated animations &amp;amp; themed components&lt;/p&gt;

&lt;p&gt;Ready-to-use motion assets for websites/apps&lt;/p&gt;

&lt;p&gt;A place for creators to list and sell their animation work&lt;/p&gt;

&lt;p&gt;Instant downloads for buyers&lt;/p&gt;

&lt;p&gt;I built it because I’ve always loved animation-heavy projects, and I noticed there wasn’t really a marketplace focused specifically on web animation code — so I decided to make one.&lt;/p&gt;

&lt;p&gt;🚀 What’s next&lt;/p&gt;

&lt;p&gt;Right now I’m:&lt;/p&gt;

&lt;p&gt;Improving the platform week by week&lt;/p&gt;

&lt;p&gt;Adding new animations myself&lt;/p&gt;

&lt;p&gt;Inviting creators to upload their work&lt;/p&gt;

&lt;p&gt;Talking to early users to understand what they want&lt;/p&gt;

&lt;p&gt;I’ll be sharing updates, behind-the-scenes, and lessons I learn along the way here on DEV.&lt;/p&gt;

&lt;p&gt;🙌 If you want to check it out:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://animtheme.vercel.app" rel="noopener noreferrer"&gt;https://animtheme.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love any feedback, ideas, or things you'd like to see in a motion marketplace.&lt;/p&gt;

&lt;p&gt;Thanks for having me here! 🚀&lt;/p&gt;

</description>
      <category>startup</category>
      <category>showdev</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
