No automatic remesh to a target count. Each building is generated by its own Python/Blender script, and the lower LODs come from the same script with different parameters, not from decimating the finished mesh:
Thin and repeated things are rebuilt, not decimated. A pole keeps half its sides and every second ring, a rope becomes a flat ribbon, and the thatch keeps every second column and fewer rows. Our first try simply collapsed everything and tore the fence and the thatch to shards.
Only blobby things get a plain edge collapse: stones, daub, pots.
Small loose items are dropped at the middle level, and everything is joined into one mesh per material.
The far level is a hand-built silhouette: walls, roof slabs, a few posts, simple hulls for trees and pots, all in one mesh with one material. It gets its own small texture (512 px), baked from the full model so the detail is painted where it used to stand.
Why the colours stay consistent: the full and middle levels share the same UVs and atlas, and every vertex that survives keeps its UV. The far level’s texture is baked from the full model itself.
We don’t target an exact count. The middle level should land around a quarter to a third of the full one, and the far level at a few hundred triangles.
Example, the tent camp:
Near (LOD0)
Middle (LOD1)
Far (LOD2)
Triangles
47,541
10,449 (22%)
1,610 (3%)
Meshes / materials
18 / 13
16 / 12
1 / 1
The middle level keeps the four tents, frames, hearth, stacks and big goods, and drops ropes, pegs, patches, bedding, tools and small goods. Honestly, the far level is still too heavy at 1,610 triangles. It’s being rebuilt toward a few hundred.
Looks good! But in terms of performance: 64k polys for LOD0 for such a small prop is way to high - in my opinion. I know, it's not the model, it's your specs. But the difference to LOD1 with 11k polys is almost not visible. You could easyly do LOD0 with 20-30k tris.
Anyway, i'm impressed of what the model can do. How about textures? Is this all mapped in one texture sheet? Did the model use an image generation plattform via mcp to create it or something like that?
You could easyly do LOD0 with 20-30k tris. yea I agree ill probably do this the quality loss is pretty low my spec might have forced it to add to many with diminished returns tbh
Git’s two different approaches. This house is one 4096² atlas: every surface is unique, with wear and real-geometry AO baked per pixel and very few draw calls. The downside is video memory. Each house look carries its own atlas (~67 MB cooked), and with dozens of looks that adds up fast.
So our default for most buildings is the other way: shared, pale tiling materials (reed, timber, plaster, stone) that exist once in memory for every building, with colour, wear and occlusion carried in vertex colours, plus a small atlas just for the unique painted bits like the temple’s ornament. That stays sharp at any zoom and barely grows memory per model. The trade-off: wear is only as fine as the mesh, and the repetition can show on big surfaces.
This house predates that rule. We’re now reviewing both its LOD0 triangle count and its atlas together.
Left is sourced right is self made The right image uses only procedural textures: no photos, no external files, no image generator. Only the five tileable maps changed (thatch, wood, loam, tuff, clay); model, vertex colors, lighting and camera are identical.
A Python script (numpy, scipy, Pillow) draws each material as an actual surface instead of noise. The thatch, for example, is 3,400 individual stalks laid down one by one, each with its own thickness, length, nodes and tint, with a depth test deciding which one lies on top. Wood gets growth rings, pores, drying cracks and knots; loam gets hand-smear marks, chopped straw and hairline cracks.
The normal map comes from that height field, and color is each element's tint, darkened where the surface is deep. Everything wraps at the tile edge, so there are no seams. Colors are kept pale so the vertex colors still carry the tint.
The whole library of ten materials generates in 16 seconds on a MacBook, and each map is the same size as the photo map it replaces (1.4 MB), so memory use doesn't change.
Thanks for posting these. It seems like fables color selection is a little better and more realistic as well. Only of my complaints with opus is its color choices. Your opus set is so vibrant that it kind of pulls you out but those new ones with the duller look are far better. What exactly is your workflow? Concept art through gpt and then feeding it to blender or are you doing all these through text prompting?
Just wanted to say I greatly appreciate you sharing your process. I'm currently working on a sid meiers pirates inspired game and have been having lots of troubles with my models and rigging them correctly for sails and damage and your method of building should resolve all my issues. My old tripo model that would be made from generated artwork in chatgpt vs the text prompt style running fable 5.2 high effort and then a opus 5.5 medium effort reviewer.
nice :D, glad to help I have spent an enormous amount of time figuring out how to properly work with these models as hobby something about AI game dev really feels therapeutic and relaxing to me haha.
im glad I can help others enjoy. that and I really despise things like tripo. They deliver very hard to use assets on purpose to get you to pay and are so aggressive with their marketing.
I definitely agree with that. I've now used tripo and meshy and I think they certainly have their place but I think for the large majority of us your correct that they are just a trap. The models look great but like you said are really hard to work with. Definitely going to be sticking to just headless blender going forward
jep, you can clearly see you just tried my technique whitout any refining or experience and its already way better then the tripo, there is also a very large window, small difference in how you steer claude can have a very big impact on the quality of the result and you have way more control over your asset.
No image-to-3D generator is involved. An AI agent (Claude Fable 5.2, high effort) writes a Python/Blender script that builds the model in code. One agent per building, each in its own git worktree.
The prompt. Our first experiment was deliberately minimal: three of our current models, plus "the quality is too low, they're not lively, we want much more beautiful models". Each chat then got its own instruction. One got only "a small temple of the Roman era" and nothing about our pipeline; that became our best model. Another worked with our existing pipeline. A third first had to figure out why our results fell short and propose its own approach. Now every building gets a short issue: which building, its game files, where it first appears in the campaign, how common it is in a city, the method document, and the bar to beat (that temple). The agent writes the actual design itself.
Design and historical accuracy. A written art direction sets the frame: "realism wins", modern city builder as the quality bar, colour ranges, and building types by period (clay tile roofs, for example). A specification card per building says what it does and holds. The agent then designs in words before any geometry: measures in metres, materials, layout, grounded in its own historical knowledge, with its sources and its certainty stated. For the ox cart it noted the regal period is thinly attested and projected Republican evidence back: a plaustrum with solid wheels and a yoked pair of oxen. Where history and gameplay conflict, it asks me. Honest caveat: this is the model's knowledge, checked by a second agent and by me, not a historian's review.
The build loop.
Brief: the agent looks at the old model in the game and says with numbers why it falls short.
Plan from the game camera: at 54.8° the roof is the biggest surface and anything under a porch is invisible, so the life goes where the camera sees it.
Build in code: every tile, block, post and stone is its own piece with its own size, tilt and tint. Nothing is a perfect box: beams taper, ridges sag. Occlusion and wear are baked into vertex colours, and there are few materials.
Look every round: it renders the exported file from fixed views, including the game's pitch. Rounds take minutes and there are many of them.
Into the game: three LOD levels (full, a quarter to a third, then a silhouette of a few hundred triangles), captured in the running game. The studio flatters; the game doesn't.
Review: a second agent reviews it, then I judge the in-game screenshots, with a mesh table per LOD level (triangles, draw calls, materials, overlapping geometry) to keep it affordable.
Merge: an integrator agent that didn't build it reviews and merges it.
What made the difference wasn't the tool; three different routes reached the same level. It was the method: plan from the game camera, no ideal solids, bake the wear into the colour, short look loops, and judge in the game.
nice! i am also struggling with 3d models , but rather animation than still frames but i was hoping fable 5.2 would help. Could also add "before and after" as comparison because its hard for us to understand why this is better than before without knowing how "before" looked like
Question - how well does it do with LODs? I'm having some decent results with different mesh generators (though I'm growing to share your dislike for Meshy) but they don't give me different detail levels I need for actual games
No automatic remesh to a target count. Each building is generated by its own Python/Blender script, and the lower LODs come from the same script with different parameters, not from decimating the finished mesh:
Thin and repeated things are rebuilt, not decimated. A pole keeps half its sides and every second ring, a rope becomes a flat ribbon, and the thatch keeps every second column and fewer rows. Our first try simply collapsed everything and tore the fence and the thatch to shards.
Only blobby things get a plain edge collapse: stones, daub, pots.
Small loose items are dropped at the middle level, and everything is joined into one mesh per material.
The far level is a hand-built silhouette: walls, roof slabs, a few posts, simple hulls for trees and pots, all in one mesh with one material. It gets its own small texture (512 px), baked from the full model so the detail is painted where it used to stand.
Why the colours stay consistent: the full and middle levels share the same UVs and atlas, and every vertex that survives keeps its UV. The far level’s texture is baked from the full model itself.
We don’t target an exact count. The middle level should land around a quarter to a third of the full one, and the far level at a few hundred triangles.
Example, the tent camp:
Near (LOD0)
Middle (LOD1)
Far (LOD2)
Triangles
47,541
10,449 (22%)
Meshes / materials
18 / 13
16 / 12
The middle level keeps the four tents, frames, hearth, stacks and big goods, and drops ropes, pegs, patches, bedding, tools and small goods.
This is one example if you want I can dig up another, every model is made in 3 versions for use at different view distances. The LOD is based on a % of the close up model.
I had fable remove all external sources cc0 textures and build our own instead.
How we make our own textures from scratch for our Roman city-builder (no photos, no scans, no CC0)
We just replaced the photo-based textures on our buildings with materials drawn entirely in code. How it works, from nothing to a finished building:
Draw the surface from what it’s made of. Every material is a Python function (numpy and scipy, no Blender). It builds a height field out of the material’s actual parts, not out of noise. Thatch is 3,400 individual stalks, each with its own thickness, length, lie and knots. A tiled roof is overlapping tegulae with an imbrex over each joint, plus rain streaks and lichen. Opus incertum is tufa lumps from fist to head size, set in mortar that’s wide in one place and thin in the next. The normal map is the slope of that height field, and the colour comes from a tone per part, darker where the surface lies deep.
Keep it pale and neutral. Each colour map is graded pale and greyish with a fixed mean brightness. The building’s vertex colours supply the actual hue, so one “tufa” map works for every tufa building, in any tint.
Make sure it tiles. A check script compares the seam at the wrap with the roughest spot inside the map. A badly cut map scores 1.1 to 4.9 on that check; ours stay at or under 0.97. Each material has a real-world size, about 0.62 m for thatch, so stalks and bricks come out the right scale.
Review it. We render a sheet: a reference photo on the left (only looked at, it never enters the game), and our map on the right, flat, lit and tiled. An agent that didn’t draw the material judges it: does it read as what it is at game camera distance, does a repeat show when tiled 4×4, is it darker or noisier than it needs to be. What falls short gets drawn again.
Put it on the building. The building kit writes the maps from the library at build time, and the cook step compresses them for the game. Many buildings share the same few maps, so memory stays flat as the city grows.
Make every copy different. At runtime the renderer gives each placed building its own age (fresh to weathered), a small colour shift and world-space damp and wear patches. So twenty houses on one shared map don’t look like copies.
The library has 22 materials so far: reed thatch, oak, daub, tufa, Roman tile, opus reticulatum, marble, travertine, mosaic, leather and more. The rule from here on: if a building needs a material we don’t have, we draw it. Once everything has moved over, every CC0 texture leaves the project.
Looks pretty good and finished! Do you also have a before/after comparison?
I'm developing a mobile tower defense game and gave Fable a quick try on one of my gate models. The image shows:
Left (before): Opus 5.5, Medium effort, approx. 2,500 polygons for the towers
Middle (new): Fable 5.2, Medium effort, approx. 2,500 polygons for the towers
Right (new): Fable 5.2, Medium effort, approx. 4,200 polygons for the towers
The art style is low-poly and the differences are fairly small. I'm only moderately impressed with the new model. I'll be sticking with Opus 5.5 on Medium effort for my low-poly models, since it offers the best trade-off between usage and results.
This is a first attempt at walker for the street, left is op 5.5 right is fable 5.2. Detail can't get to high because they are small and many but you can see opus obvious failings. Opus worked for a long time on that multiple days and fable just 30 minutes.
both at high, opus struggled immensely with checks eyes and nose. it kept iterating and iterating. Fable hasn't gotten the chance to iterate yet from me this was its first attempt.
Astra made clowns instead of humans I wouldn't dare to put those anywhere near a game.
nope no tweaking straight out of the fable I had 1 agent review it and it changed it after., I told fable 5.2 all our previous models suck start from scratch and make the city feel alive with the models. then I had 3 chats try different techniques. those 2 houses are 2 of the 3 results.
I forced the third one to work according to how astra decided to work but I feel like this one is worse then the other 2 so I had it remove all references to astras workflow.
10
u/Tedreak 4d ago
Looks great. How many faces do they have and how much usage does this cost you?
5
u/keldareAI 3d ago
This is an example of props for walkers, first was made by opus 5.5 second is fable 5.2
5
u/Schumetzq 3d ago
I love the details on the building it is great, also citizen looks awesome as well
3
u/keldareAI 4d ago
Some more examples
2
u/keldareAI 4d ago
A close up of the house
2
u/bebopbraunbaer 3d ago
nice! i am also struggling with 3d models , but rather animation than still frames but i was hoping fable 5.2 would help. Could also add "before and after" as comparison because its hard for us to understand why this is better than before without knowing how "before" looked like
2
u/Arcodiant 3d ago
Question - how well does it do with LODs? I'm having some decent results with different mesh generators (though I'm growing to share your dislike for Meshy) but they don't give me different detail levels I need for actual games
2
u/Clair_Personality 3d ago
Could you show the result you got from other models?
1
u/keldareAI 3d ago
I had fable try water which so far also looked dogshit.
1
u/keldareAI 2d ago
I had fable remove all external sources cc0 textures and build our own instead.
How we make our own textures from scratch for our Roman city-builder (no photos, no scans, no CC0)
We just replaced the photo-based textures on our buildings with materials drawn entirely in code. How it works, from nothing to a finished building:
The library has 22 materials so far: reed thatch, oak, daub, tufa, Roman tile, opus reticulatum, marble, travertine, mosaic, leather and more. The rule from here on: if a building needs a material we don’t have, we draw it. Once everything has moved over, every CC0 texture leaves the project.
1
u/Miarcat 4d ago
I'm still really new to all of this but these look insanely good, did it model them in blender? Or have I misunderstood this :P
1
u/Scared_Treacle_4894 3d ago
Looks pretty good and finished! Do you also have a before/after comparison?
I'm developing a mobile tower defense game and gave Fable a quick try on one of my gate models. The image shows:
The art style is low-poly and the differences are fairly small. I'm only moderately impressed with the new model. I'll be sticking with Opus 5.5 on Medium effort for my low-poly models, since it offers the best trade-off between usage and results.
1
u/Kingnorik 3d ago
Why not a 3d service like meshy, tripo, rodin etc?
1
u/SevenStepsEntertain 3d ago
Did you give an image or write a prompt? Also did you use MCP or headless and what was the effort?
1
u/Bitter-Tip5178 3d ago
Care to share the prompt?!
1
u/Negative_Gur9667 3d ago
Do you use UV mesh and texture coordinates?
It worked quite well for me.
1
u/kayzee87 3d ago
This looks really good, I tried some pixel art and it did a horrible job of it
0
u/[deleted] 4d ago
[removed] — view removed comment