patch-gg/trompe

Media & Design

Turns a gray game-level blockout into one baked albedo texture by painting from player-eye cameras with image models.

103
5
TypeScript
Apache-2.0
2 days old

Trompe is worth a look if you already have a grey-boxed level and want to see it dressed before committing to hand-authored materials — but it is an early, browser-centric pipeline with real per-view costs, not a replacement for your texturing workflow.

The problem

A level designer wants to judge a blockout as a place, not as grey geometry. Today that usually means hand-authoring materials and UV work across surfaces first, or settling for flat colors in a screenshot. Trompe changes the middle step: you describe the look in material terms, the tool places cameras where a player can stand, has image models paint what each camera sees, projects those paintings back onto the level and bakes a single texture. What comes back is a textured glTF you can drop into an engine.

What's different

The interesting part is the camera plan. Trompe samples walkable floors at eye height, joins spots a player can walk between (stairs included), and greedily picks cameras until most reachable surface is covered, ordering each to overlap what is already painted. Roofs, aerial rings and a final hole-filling pass get their own budgets. The paintings then become one baked albedo, lit by your engine rather than the image model, so shadows are real. The author's demo run, village-07, used 128 views for $4.44 and 26 minutes on fal, split into 88 player views, 20 roof views, 11 exterior views and 9 hole fills.

The trade-off is control. You describe materials, not objects — anything you name in the prompt, such as a fountain, can get painted onto a wall. Painting stays one view at a time, so cost and time scale with the view count, and the planner is the real product: bad camera placement shows up as gray patches, not as an error. The headless script can repaint chosen views of a saved run before you commit to a full pass.

Who should try it

Good fit: a solo developer or small team with a UV-mapped, Y-up .glb blockout who wants to explore a level's look quickly and is comfortable paying per generated view. The saved-run workflow also suits someone evaluating prompt and model choices cheaply. Poor fit: anyone needing production-final textures, strict per-material control, or a project that cannot use a hosted model provider. There are sample levels (Village, Courtyard, Hall) and before/after and shadow comparisons in the repo for judging the output style first.

Requirements and limitations

You need a .glb with UVs and Y up; the browser app runs planning, projection and baking on your GPU, and image generation goes to fal, so an API key and a funded account are required. The quick start uses npm install, a FAL_KEY export and npm run dev, with a headless scripts/texture.mjs path for command-line runs. Resolution is currently 1024 px per view; 2048 px works but a full run then holds roughly 8 GB of per-view images in the tab, which the README lists as an unresolved streaming problem. Some outer walls facing narrow gaps between buildings still come out gray, and the project is Apache-2.0 with brand assets excluded.

HotRepo's take

The repository was created on 2026-10-25 and appeared on HotRepo's NEW-REPOSITORY board (typescript) at #20 with 103 total stars, observed 2026-10-27. That is a single dated snapshot, so persistence cannot be judged from it. Check the before/after and shadow comparison images and the demo video, then run the dry prompt test before spending on a full view count.

Project source and documentation

Written by AI from the project's README, updated October 27, 2026. The project's own docs are the source of truth.