Status
SteamPeaks
ChartsSalesUpcomingPatchesEventsCalculator
New on SteamEvery app, DLC and depot the minute Steam creates itAppsEvery app on Steam, newest change firstPackagesSubs and bundles, and what each containsDepotsDepots, manifests and install sizesTagsSteam's user tags and the games under themDevelopers & publishersCompanies and their cataloguesTechnologiesEngines, SDKs and anti-cheat found in the filesChange historyEvery PICS changelist as it lands
SignalsNineteen readings of the whole catalogueCompareAny games side by sideRecordsAll-time peaks and the days they were setReportsWeekly and monthly write-upsAlerts & newsroomWatch a game, get told when it movesSteam statusIs Steam up, right nowWeb API explorerTry the endpoints in the browser
EventsSteam's own events and the sales calendarCalculatorWhat a Steam account is worth, and its pile of shame
/
Sign in
/
SteamPeaks
The ultimate resource for Steam data.
ExploreChartsSalesSales and festsUpcomingPatchesEventsRecordsTrendingSignals
DatabaseAppsPackagesDepotsTagsDevelopersTechnologiesChange history
ToolsCalculatorCompareSearchAlertsSteam statusAPI
SiteMethodologyFAQDiscordSupportSign in via Steam
Not affiliated with Valve or Steam. Game names and artwork belong to their owners. All times UTC.
PrivacyCookiesFair useStatus
InfinicityEventsTurning Real Footage into Game Animations (and Why I Open-Sourced the Tool)
Community

Turning Real Footage into Game Animations (and Why I Open-Sourced the Tool)

Infinicity · published 17 Dec 2025, 12:29 UTC

All eventsPlayers around this dateRead on Steam

One of the challenges I’ve been thinking about a lot while working on Infinicity is animation.

I wanted characters that feel hand-animated and expressive but without relying on huge animation budgets or locking myself into a very rigid art style. I also wanted a workflow that lets me iterate quickly i.e. change timing, style, or scale without redoing everything from scratch.

That led me down an interesting rabbit hole:
Can I turn real video footage into clean, stylised sprites that actually work in-game?

It turns out: yes (but not without a bit of engineering).

The problem

Traditional sprite animation usually means:

  • drawing every frame by hand, or

  • relying on skeletal animation that doesn’t always fit a specific style

Both approaches are valid but they can be slow to iterate on, especially when you want to experiment.

What I wanted instead was:

  • to capture simple footage (even just me in front of a wall),

  • extract only the person cleanly,

  • and then turn that into animation-ready sprites that I could stylise and tweak.

The solution (high level)

I ended up building a two-stage pipeline:

Stage A High-quality person extraction

This stage uses a research model called Robust Video Matting to separate a person from the background across an entire video, producing clean RGBA frames with proper edges (hair, limbs, motion blur, etc.).

This step is slow and compute-heavy, but it only needs to run once per video.

Stage B Game-focused post-processing

This stage is fast and highly tweakable. It:

  • crops the animation consistently

  • normalises everything to a fixed sprite size

  • skips redundant frames automatically

  • applies pixel-art style quantisation

  • packs everything into a spritesheet with metadata

The important bit is that Stage B can be rerun endlessly with different parameters, without redoing the expensive extraction step.

That makes experimenting with animation style and timing much more fun.

Why this matters for the game

This pipeline exists for one reason:
to make the animations in Infinicity better and more expressive.

It lets me:

  • prototype animations quickly

  • adjust style without re-recording footage

  • keep animations consistent across different characters

  • experiment with pixel-art looks without committing too early

The goal isn’t realism it’s control.

Why I open-sourced it

At some point I realised this tooling might be useful to other developers too, especially indie devs who enjoy building their own pipelines.

So I decided to open-source it.

The repository includes:

  • the full two-stage pipeline

  • documentation on how it works

  • command-line controls to tweak output

  • and clear separation between the heavy ML step and the creative iteration step

If you’re curious about the technical side, you can find it here: video2spritesheet github repo

If you’re curious to see how it all comes together in-game, wishlisting really helps it tells me people are interested and lets Steam know too.

Thanks for reading, and back to building

More from Infinicity

Other announcements

All events
Community26 Dec 2025Procedural Object Placement with Variable-Radius Poisson Disk Sampling and noiseWhen generating large procedural worlds, placing objects believably is harder than it looks. Trees shouldn’t overlap. Rocks shouldn’t clump unnaturally. Buildings need breathing room. And ideally, all of this should be controllable, performant, and compatible with procedural generation. A few years ago, while working on procedural world generation for my game, I ran into exactly this problem i.…Community13 Dec 2025Player moddable terrain feature addedI’ve added a new feature that lets players tweak the mountain noise layers in real-time. Previously, the terrain was generated using layers of noise with fixed frequency and amplitude. Now players can adjust these parameters to shape the mountains exactly how they like whether that’s jagged peaks, rolling hills, or something in between. This gives a lot more expressive freedom while exploring o…Community9 Dec 2025Dev Blog: Tile cachingTile Caching = 159x Faster City Streaming Today I want to share a technical update rather than a visual one but it’s a huge boost for performance. My game uses procedural city tiles. Generating a full city tile costs around 1 millisecond . When the player is flying fast over the world, dozens of tiles may need to be created quickly, and that can become a bottleneck even when each tile is loaded…