# Bit Studio — Modern Pixel Art That Loops Forever

*2026-10-17 — Announcement — By Kim*

> Bit Studio is the successor to Bit - Animation Editor, rebuilt around cycles of loops on our Blastwave engine: every export loops seamlessly, compositions add depth, Focus mode generates starting points, Unreal Engine 5 gets a native plugin, and the whole thing ships through CI/CD instead of by hand. Coming soon.
{/* Before publishing: the release date and the Steam link (no app id yet). */}

Remember [Bit - Animation Editor](/games/bit-animation-editor)? It's back, and it has grown up. Meet **Bit Studio**.

<LiveScene src="/bit-studio/scenes/cortex-main/scene.json" poster="/bit-studio/scenes/cortex-main/poster.webp" alt="Cortex Main, a looping pixel-art scene made in Bit Studio" className="w-full max-w-[512px] mx-auto" />

That's not a video, by the way. It's the scene itself, playing in your browser. More on that further down.

## Where Bit came from

When I made the old Bit Animation Editor, I thought I'd make maybe one or two versions, for myself only. It started as an art project.

Then it grew, a bit organically: it needed export targets, and it needed to run on more platforms. It leaned heavily on manual deploys and packages, so it was hard to maintain and hard to support users with. The interface was rough to manage too: a heavily stylized <Abbr explanation="Immediate-mode GUI: a fantastic library for debug tools. Dress it up as a real product and it fights you on every pixel, every day.">Dear ImGui</Abbr> on top of <Abbr explanation="Simple DirectMedia Layer. It gives you a window, input and sound on every platform, and asks for very little in return.">SDL</Abbr>'s built-in 2D renderer.

We saw quite a few more users in the age of <Abbr explanation="Non-Fungible Tokens: a receipt for a JPEG, stored on a blockchain, sold for the price of a car. For a while there, everybody wanted looping pixel art.">NFTs</Abbr>... but also from other artists. And one feature came up more than any other: **seamless looping exports**. In the editor and in game engines a scene always looped forever, but the <Abbr explanation="Graphics Interchange Format, from 1987. 256 colors, no sound, and somehow still how the internet laughs.">GIFs</Abbr>, MP4s and the rest didn't loop seamlessly, and there was no simple way to fix it, because Bit had no notion of loop cycles or timelines.

## Built around cycles of loops

Having hacked a bunch on music apps (<Abbr explanation="Digital Audio Workstations: where everything is a loop, everything is on the beat, and nobody ever finishes the track.">DAWs</Abbr>, and hardware, more on that later perhaps), I took that idea and structured Bit Studio around **cycles of loops**. You keep the creative freedom to animate and compose however you like, and it still always produces a seamless loop.

A part always plays a whole number of times inside its parent: a 10 second composition in a 60 second scene plays 6 times. Change how many times something loops and its speed changes, never its length. So every export loops, by design.

![The Bit Studio editor: the scene on the canvas, the selected clip](/images/bit-studio/editor/editor.png)

The new editor. Every lane in the timeline is a loop, and the x1 on it is how many times it plays inside the scene.


    


## A real engine underneath

I also took the time to make [Blastwave](/news/blastwave-cross-platform-gpu-engine) and to study cross-platform graphics pipelines. So now we have control over the <Abbr explanation="Graphics Processing Unit: the chip that does all the pretty pixels while your CPU sits there doing spreadsheets.">GPU</Abbr> and the <Abbr explanation="The assembly line that turns triangles and textures into pixels. Own it, and lights and black holes are yours to bend.">shading pipeline</Abbr>, and that unlocks a modern art pipeline: lights, darkness, glow, shader distortions and post effects, all on the pixel art. Bit now leans heavily on the new engine.


<LiveScene src="/bit-studio/scenes/void-cog/scene.json" poster="/bit-studio/scenes/void-cog/poster.webp" alt="Void Cog: cogs around a black hole distortion" className="w-full" />
<LiveScene src="/bit-studio/scenes/attractor/scene.json" poster="/bit-studio/scenes/attractor/poster.webp" alt="Attractor: a black hole dragging circuitry in" className="w-full" />


Even the particles follow the loop: they're <Abbr explanation="Every particle is a function of where you are in the loop, not a simulation that runs forward. So they loop exactly, you can scrub them, and an export looks exactly like the editor.">closed-form in the loop phase</Abbr>, which is a fancy way of saying snow that falls forever and still lands back where it started.

## Compositions

Bit Studio comes packed with most of the pixel bits I've made over the years. It also comes with shaders, distortions, effects and one powerful new concept: **compositions**.

A bit on its own is a sprite sheet with a range of animation capabilities. A composition goes one level deeper: an arrangement of artwork and effects combined into a more advanced set piece, which you then place on the scene, again and again. So with little means you get a lot of complexity and depth in the animation.

One of the founding visions for Bit was to create highly detailed pixel-art robotic machines. Now that comes with full control of the loop cycles, and modern effects on top.


<LiveScene src="/bit-studio/scenes/flow/scene.json" poster="/bit-studio/scenes/flow/poster.webp" alt="Flow: a tall machine of mirrored parts" className="w-full" />
<LiveScene src="/bit-studio/scenes/deploy/scene.json" poster="/bit-studio/scenes/deploy/poster.webp" alt="Deploy, a scene from Bit - Animation Editor" className="w-full" />


Themes, masks and type came along for the ride. Art is stored as 16 gray levels and a theme maps them to colors, with 460 palettes from [Lospec](https://lospec.com/palette-list) built in. Masks shape the artwork, and text is baked into the art like a sprite sheet, so lights and distortions treat letters as pixels too.


<LiveScene src="/bit-studio/scenes/pill-eye/scene.json" poster="/bit-studio/scenes/pill-eye/poster.webp" alt="Pill Eye: two blended mask shapes with pulsing bloom" className="w-full" />
<LiveScene src="/bit-studio/scenes/japcore/scene.json" poster="/bit-studio/scenes/japcore/poster.webp" alt="JapCore: kanji and kana set as type" className="w-full" />


## AI, if you want it

When Bit Animation Editor was made, <Abbr explanation="Large Language Models: autocomplete that read the whole internet and now has opinions about your color palette.">LLMs</Abbr> and AI weren't nearly as widespread as they are now. So we took some time to add an <Abbr explanation="Model Context Protocol: a USB port for AI. Plug an agent in and it can press every button in the app, without hands.">MCP</Abbr> server for the entire engine, and an in-editor AI chat: describe what it should try to compose, with your own agent, and pick from the designs it renders.

## Focus mode

That's fun and all, but I'm more excited about the... *drum roll*... **Focus mode**.

It's a scaled-down mode where you basically turn off all the UI and just focus on generating and exploring with the built-in randomizer. (Kids, before AI there was classical procedural generation. [RymdResa's](/games/rymdresa) entire universe is crafted that way.)

One potential art blocker is getting started. With strong randomization you can simply generate a starting point, then take charge and refine it by hand into something greater. Press **R** for a new roll, **T** to transform what you have, and move to the left edge of the screen to see the rest of the keys.

![Focus mode in Bit Studio: only the artwork, with the shortcuts panel that shows when the mouse reaches the left edge](/images/bit-studio/editor/focus.png)


<LiveScene src="/bit-studio/scenes/sea-and-the-sun/scene.json" poster="/bit-studio/scenes/sea-and-the-sun/poster.webp" alt="Sea and the Sun: waves under a glowing sun in a circle mask" className="w-full" />
<LiveScene src="/bit-studio/scenes/bonsai-winter-night/scene.json" poster="/bit-studio/scenes/bonsai-winter-night/poster.webp" alt="Bonsai Winter Night: snow and drifting leaves" className="w-full" />


## Gamepad

Lazy composing with a gamepad can be a lot of fun: setting up looping animations and compositions from the couch. The hard part is staying away from the randomizer and just seeing what it makes.

## Native Unreal Engine 5

The old Bit supported exports to Unreal too, but it leaned on the engine's own 2D implementation (<Abbr explanation="Unreal's built-in 2D toolkit. It exists. That's about the nicest thing anyone says about it.">Paper2D</Abbr> sprites, flipbooks and so on), and that brought quite a lot of complexity and performance issues. We learned that the hard way in [Lunar Soil](/games/lunar-soil), where bits are used for a range of things: 2D art in the game, UI screens and more.

Now Bit Studio has a native Unreal layer that makes bits first-class citizens in Unreal's shading and material system, with <Abbr explanation="Unreal's visual scripting: programming by connecting boxes with spaghetti until it works or you cry.">Blueprint</Abbr> events exposed as well. It's super simple: drag and drop a bit into a level and it just works, with the lighting, the looping and much better performance. We're using Bit Studio actively in Lunar Soil.

Here's Pump Triangle in the Unreal 5 editor, on a card in a closed room. The red on the walls and floor is <Abbr explanation="Unreal 5's real-time global illumination: light bounces off things like in real life, and your GPU fans spin up like in real life too.">Lumen</Abbr> picking up the scene's own glow:

![Pump Triangle playing live on a Bit Studio card in the Unreal Engine 5 editor, with the Bit Studio actors in the Outliner](/images/bit-studio/unreal/editor-lumen.png)

![Pump Triangle in Unreal Engine 5, its red glow lighting the room through Lumen](/images/bit-studio/unreal/lumen-pump-triangle.png)


![Drum and Pixels on a card in Unreal Engine 5](/images/bit-studio/unreal/lumen-drum-and-pixels.png)
![One Bit Studio scene in four themes in Unreal Engine 5](/images/bit-studio/unreal/examples-theme-swaps.png)


We dropped <Abbr explanation="A game engine that once changed its pricing overnight and taught a whole industry what a runtime fee is.">Unity</Abbr> support. Honestly, I couldn't bother with it anymore: it's not an engine I use or believe in, and dealing with <Abbr explanation="Microsoft's answer to Java. Pronounced 'see sharp', which nobody looking at it ever did.">C#</Abbr>, no thanks. We support Unreal for now, and maybe <Abbr explanation="The open-source engine everybody switched to for a week after the Unity thing. Some of them even stayed.">Godot</Abbr> and <Abbr explanation="A game engine in Rust, for people who like their compiler to tell them no.">Bevy</Abbr> down the line, after Lunar Soil's release.

## Made for sharing

Social media sharing also got a big revamp. Now that the NFT <Abbr explanation="Laser eyes in the profile picture, a podcast, and very strong feelings about a coin named after a dog.">crypto bros</Abbr> have calmed down a little, it feels like a good time for proper sharing support.

I've personally stopped using most social media (life is kind of too enjoyable to be chronically online), but I still feel the urge to share artwork. And the problem was the same there: it was quite some work, and nothing looped seamlessly.

So now there are MP4, <Abbr explanation="Google's image format: smaller than PNG, animates like a GIF, and still a surprise to some of the apps you upload it to.">WebP</Abbr>, GIF and <Abbr explanation="Animated PNG: what GIF wanted to be when it grew up. Full color, real transparency, and Discord stickers love it.">APNG</Abbr> exports, size-limited versions that fit Discord, social videos in square, 9:16 and 16:9, link-preview images, icons and stickers, and even a kit with every image Steam asks for. Everything is scaled up in whole steps, so the pixels stay crisp, and every file is whole loops. Here's Void Cog as three of them, straight from the Export window:


<figure>![Void Cog as an animated WebP](/bit-studio/formats/void-cog.webp)<figcaption className="mt-1 text-xs text-muted-foreground">WebP · 512 px · 2.1 MB</figcaption></figure>
<figure>![Void Cog as a GIF](/bit-studio/formats/void-cog.gif)<figcaption className="mt-1 text-xs text-muted-foreground">GIF · 256 px · 954 KB</figcaption></figure>
<figure>![Void Cog as an APNG Discord sticker](/bit-studio/formats/void-cog-sticker.png)<figcaption className="mt-1 text-xs text-muted-foreground">APNG sticker · 320 px · 482 KB</figcaption></figure>


The MP4, and one loop in every other format, are on the [Bit Studio page](/bit-studio).

![The Bit Studio Export window: categories on the left, a card per format with its size, and one Size control for crisp whole-factor scaling](/images/bit-studio/editor/export.png)

## Sound that loops

Audio support is good for social media, and for ambience in games. I spent quite some time on a very simple looping function: take basically any MP3, or a song you made, press the button, and it loops. It's not as perfect as doing it by hand, but it needs no AI: it finds the beat (and the <Abbr explanation="Beats Per Minute. The number you nod your head to without knowing it.">BPM</Abbr>), picks a good seam and crossfades it.

The next step for audio is better event triggers, and maybe distortion effects that react to the beat. That puts some pressure on the integrations, Unreal and the rest, to have good audio input, output and trigger support. An adventure for the future.

## Web components

I like web components; they feel fresh, like native <Abbr explanation="JavaScript: named after Java for marketing reasons, built in ten days, now runs the world. Nobody is happy about any of it.">JS</Abbr>. So there's an exporter for that too. It evolved from the original Bit's HTML5 canvas support, but now it's actual <Abbr explanation="The browser's GPU API. Blastwave's shaders get translated to it, so the web version runs the very same shaders as the app.">WebGL2</Abbr>, frame for frame what the app renders. Every scene in this post is one of them: tens of kilobytes of JSON and sprite sheets instead of megabytes of video.

Maybe we'll do a <Abbr explanation="The 3D library for the web. Great work, honestly. Not its fault it is now the default answer to 'make me a game' in every chatbot.">three.js</Abbr> export as well, but three.js is center stage for all the <Abbr explanation="Made by asking a chatbot once and shipping whatever came out. Recognizable by its sameness from orbit.">AI-slop</Abbr> games right now, so I think I'll wait a bit. It's cool to see all the AI game-dev stuff happening, and I think some great games will come out of it, but it depends on the designer and how they compose their outcomes.

## Built to last this time

One of the major issues with Bit Animation Editor was the deployment process: we simply didn't have a deployment pipeline. Now it's fully <Abbr explanation="Continuous Integration / Continuous Delivery: robots build, test and ship every change, so no human has to remember the 14 manual steps at 2 am.">CI/CD</Abbr>, cross-platform, all the way to Steam. And we've killed off heavy legacy packages, like the mighty <Abbr explanation="The Swiss army knife of video. Can do anything, weighs a ton, and has a command line that reads like a spell book.">ffmpeg</Abbr>: every encoder now lives in our own engine.

So bugs, support and maintenance should be way easier to manage, and Bit Studio can keep evolving.

## Coming soon

Bit Studio is coming to Windows, Mac and Linux (and the Steam Deck, if it makes sense). There's a [gallery of artwork](/bit-studio) made in it, all of it playing live, and the [app page](/games/bit-studio) has the full feature list. I will ship it when it's done.

The Unreal plugin still needs a home it can ship to automatically. <Abbr explanation="Epic's marketplace for Unreal assets and plugins: the Unreal Marketplace, Sketchfab and ArtStation's store, merged into one and renamed.">Fab</Abbr> has blocked our publisher account because we didn't update our American tax form, for the fifth time. We'll see how it goes. The <Abbr explanation="The IRS form that proves you are not American, so they tax you less. A PDF-shaped ritual that expires every few years and somehow always needs doing again right before a release.">W-8BEN</Abbr>: the horrors of publishing.
---

*Canonical URL: https://morgondag.io/news/bit-studio-coming-soon*