Repository navigation
Try it in your browser: talus.tersa.tech
Talus-3 is the first public release of Talus, a 23M-parameter diffusion model that generates game terrain heightmaps: 64x64 cells covering 4 x 4 km, heights up to 1,200 m. You choose a terrain type (plains, hills, mountains, ridges, islands, mesas) and any of five properties (mean elevation, relief, slope, water coverage, roughness), and Talus fills in the rest. It runs on an 8 GB GPU at about 6 maps/s, or on a CPU.
Get started
git clone https://github.com/osfv/talus && cd talus
pip install torch --index-url https://download.pytorch.org/whl/cu128 # or the build for your machine
pip install -e .
gh release download v3.0.0 --repo osfv/talus --pattern talus-3.pt --dir checkpoints
nullscape sample --checkpoint talus-3 --archetype islands --prop water_fraction=0.6 --n 16 --formats png16,r16,obj --unity --out exports/islandsExports: 16-bit PNG, Unity RAW (.r16), .npy and OBJ, each with a JSON sidecar giving the physical size. You can also keep parts of an existing map, lay out routes and flat areas, and grow seamless neighbor tiles.
Scores
Held-out TEST split, 1,000 maps per half, 0-100 where 100 means indistinguishable from real procedural terrain:
| Talus-2 | Talus-3 | |
|---|---|---|
| Realism | 56.5 | 66.2 |
| Spectrum | 7.6 | 11.0 |
| Slopes | 56.4 | 60.5 |
| Control | 90.4 | 92.1 |
| Playability | 97.6 | 99.9 |
| Clean detail | 97.7 | 99.4 |
| Average (9 scores) | 77.5 | 80.3 |
How it was trained and chosen: docs/TALUS3.md. Full scorecard: docs/TALUS3_SCORECARD.md.
Files
talus-3.pt(93 MB): EMA weights, model and sampler configs, and the dataset statistics the sampler needs. No optimizer state. It loads withtorch.load(weights_only=True), so opening it cannot run code.talus-3.fp16.onnx,talus-3.json,talus-3.prior.bin: the browser version that runs on talus.tersa.tech. The ONNX file stores weights at half precision and computes in fp32; its samples stay within 6 m of PyTorch's. Made byscripts/export_web.py.SHA256SUMS.txt: checksums for all of the above.
Known limits
- Talus learned from procedural terrain only; it has not seen real elevation data yet.
- Mountains and ridges are the weakest types, and mesas got worse than in Talus-2.
- The power spectrum is still 9x the real-vs-real noise floor, mostly at the finest scales.
Code and weights: Apache-2.0.