Case study · Desktop application

InterForge

A desktop tool that turns a text prompt into a game-ready asset — a 2D sprite, a 2.5D relief, or a full 3D mesh. Entirely on your own GPU. No cloud, no API keys, no per-generation cost.

Prompt goes in. SDXL renders the concept art, the background is stripped, and then you choose what comes out: a flat textured sprite, a depth-reconstructed relief that reads as solid from the front, or full geometry you can orbit all the way around. Every route ends in a UV-unwrapped, textured GLB. The whole pipeline runs locally on an 8 GB card.

Most tools pick one of those three and make you live with it. Choosing per asset is the point — a background prop does not need the triangles a hero character does.

InterForge running: the Prospect view with a prompt field, asset-type list and generated concepts in the asset tray
Prospect — prompt, optional image reference, and a typed asset list (character, creature, animal, weapon, armour, shield, prop, vehicle, building) so the model is steered before a word of the prompt is written. Negative guardrails are applied automatically.

One concept, three modes

The same generated character down every branch of the pipeline, twice over. Every mesh below came out of the plate to its left — nothing here is a stock model or remodelled by hand.

Source Chibi knight — generated concept art
Concept artSDXL · local
2D
Loading…
2 tris · 4 verts · 1 texture A textured quad. That is all a sprite needs to be, and it still exports as a GLB so it drops into the same engine pipeline as everything else.
2.5D
Loading…
14,282 tris · 7,484 verts · 1 texture · UV-mapped Depth reconstructed from the same image. Solid from the front at a fraction of the cost of full geometry — right for anything the camera never walks behind.
3D
Loading…
Drag to orbit
20,344 tris · 15,548 verts · 2 textures · UV-mapped Stable Fast 3D reconstructs the whole form, UV-unwrapped and textured, in one pass. Drag it: the back is really there.
Source Templar knight — generated concept art
Concept artSDXL · local
2D
Loading…
2 tris · 4 verts · 1 texture A textured quad. That is all a sprite needs to be, and it still exports as a GLB so it drops into the same engine pipeline as everything else.
2.5D
Loading…
21,016 tris · 10,952 verts · 1 texture · UV-mapped Depth reconstructed from the same image. Solid from the front at a fraction of the cost of full geometry — right for anything the camera never walks behind.
3D
Loading…
Drag to orbit
24,300 tris · 17,927 verts · 2 textures · UV-mapped Stable Fast 3D reconstructs the whole form, UV-unwrapped and textured, in one pass. Drag it: the back is really there.

2.5D Relief

Depth reconstructed from a single image. Shown face-on, which is how a relief is meant to be seen. A relief pushes every pixel back by its depth, so at the silhouette it stretches a skirt of long thin triangles across the depth jump — about 3% of faces, each 8–26× longer than any real edge. Those are stripped here by edge length, which leaves vertex positions and UVs untouched. The full 3D route has none of it.

Stylised fox — generated concept art
Concept artSDXL · local
Loading…
Stylised fox 9,816 tris · 5,313 verts · 1 texture · UV-mapped

3D Full geometry

Complete reconstruction — geometry all the way around. Drag to orbit, scroll to zoom.

Slime runner — generated concept art
Concept artSDXL · local
Loading…
Drag to orbit
Slime runner 15,296 tris · 11,040 verts · 2 textures · UV-mapped
Horned brute — generated concept art
Concept artSDXL · local
Loading…
Drag to orbit
Horned brute 19,928 tris · 12,167 verts · 2 textures · UV-mapped

The application

A native desktop app, not a web wrapper. Four stages across the top — Prospect, Pose, Forge, Projects — with an asset tray that carries work between them. Prospect is at the top of this page; here are the other two that do the heavy lifting.

InterForge Forge view: the six-step mesh pipeline running, with export format options
Forge — the mesh pipeline Six stages, each reporting as it runs. On the 3D route Stable Fast 3D emits a clean, low-poly, watertight, UV-textured mesh in a single pass — roughly 20k faces — so decimation, refinement and the LOD chain report as deliberately skipped rather than run. An external decimator would break the UVs, which is the whole reason it does not. Output is a textured GLB.
InterForge Anvil sketch board: a story field with ordered concept panels
Anvil — sketch board Storyboarding alongside asset generation. Write the script, order the panels, and feed any of them back into the pipeline as a reference.

How it works

  1. Prospect — SDXL generates concept art from your prompt, with LoRAs for style and asset-type conditioning.
  2. Smelt — background removal and contour cleanup, isolating the subject.
  3. Forge — Stable Fast 3D turns one locked image into a UV-textured mesh.
  4. Decimate, refine, LOD — reported and skipped. SF3D already emits a clean, watertight, low-poly mesh, and running a decimator over it would destroy the UVs.
  5. Export — a textured GLB, plus a project manifest with paths and settings.

That skip is the decision worth defending. The obvious build runs every mesh through quadric decimation and spits out an LOD ladder, because that is what the tutorials do — but SF3D's output is already around 20k faces and already unwrapped, so the only thing decimation adds is broken texture coordinates. Reporting those stages as skipped, with the reason, beats quietly shipping a worse mesh.

Running locally is the rest of it. Cloud generators charge per generation and hold your pipeline hostage; this runs on hardware you already own, which matters when you are iterating on one character forty times.

← Back to projects