ion

All web apps in the Catalogue

Dungeon Forge

by majidmanzarpour · io.github.majidmanzarpour.threejs-procedural-dungeon

Not TrustedWeb appUnrated★ 503 stars

Real-time procedural dungeon generator in Three.js - deterministic seeds…

Real-time procedural dungeon generator in Three.js - deterministic seeds, Delaunay/MST graph layouts, room semantics, five themes, and a custom bloom/tilt-shift pipeline.

Screenshots

  • Dungeon Forge — a procedurally generated molten dungeon seen from above
    Dungeon Forge — a procedurally generated molten dungeon seen from above

About

A deterministic procedural dungeon generator you can watch build itself, room by room. Rooms are scattered and shoved apart, triangulated, wired into a corridor graph, carved into a tile grid, and dressed with theme-specific props, liquids, lights, and particles — **every stage seeded from a single number, so any seed rebuilds the exact same dungeon.** Rendered live with Three.js. - One seed, one dungeon. A single mulberry32 stream is threaded through every stage — scatter, separation, triangulation, room roles, carving, decoration. The same seed always yields the same map, down to the last torch. Change one digit and get an entirely new floor. - A real generation pipeline, visualized. Watch it run: **scatter → separate → Delaunay → MST + loops → semantics → carve → rasterize + BFS → decorate.** Each step lights up in the HUD as it happens, and you can scrub the whole build animation or skip it. - Graph-based layouts. Rooms are Delaunay-triangulated, reduced to a minimum spanning tree for guaranteed connectivity, then selectively re-looped so the dungeon has shortcuts and cycles instead of a boring spanning-tree spider. - Room semantics. A BFS from the entrance assigns depth and difficulty, then tags rooms as entrance, combat, elite, treasure, shrine, or boss based on where they sit on the critical path — so the layout reads like a real level, not just connected boxes. - Five hand-tuned themes (plus AUTO, which picks one from the seed): **Ancient, Molten, Frost, Grim, Verdant.** Each swaps the palette, lighting rig, liquids (lava / water / miasma), props, particle system (embers / snow / spores / wisps), and torch color. - Procedural everything. Stone, cracks, runes, portals, and light shafts are all generated to canvas textures at load; geometry is built from primitives; nothing is loaded from disk. - Instanced rendering. Thousands of floor tiles, walls, props, and decorations are drawn with InstancedMesh, so an 80-room dungeon with ~6,000 floor tiles still holds a high frame rate. - Custom post-processing. A hand-written pipeline — bright-pass bloom, separable blur, tilt-shift focus band, cool-shadow / warm-highlight color grade, vignette, and film grain — gives the whole thing its painted-miniature look. Toggle it live for an A/B. - Live readouts. Room count, links · loops, critical-path length, floor-tile count, light count, generation time, draw calls, triangles, and FPS — all updating as you forge. - Overlays. Flip on the graph overlay to see the Delaunay edges, MST, and loops in world space, or the difficulty heatmap to see how the danger ramps from entrance to boss. - Object layers. Toggle whole categories of the scene on and off live — **props, torches, particles, liquids, lights** — without re-forging. Strip it back to bare architecture, or kill the lights and watch it read by torchlight alone. - Responsive & touch-ready. The control panel collapses to a slim bar (on desktop and mobile) so the dungeon has the whole screen, and every target is sized for a fingertip on phones/tablets. The panel (top-left) drives everything: type a seed (or roll the dice), pick a theme, and adjust rooms, loopiness, and decor density. Every change re-forges deterministically. Dungeon Forge is the open-source project majidmanzarpour/threejs-procedural-dungeon (https://github.com/majidmanzarpour/threejs-procedural-dungeon) by majidmanzarpour, released under MIT. Ion packages it unmodified from commit 0a2aa0980028, adding only a manifest, an icon and a storage compatibility script.

Source

Written by majidmanzarpour, published to Oikou by Ben Grande.

  • ★ 503 stars on GitHub
  • Licence: MIT
  • Built from commit 0a2aa0980028

View the repository on GitHub

Age rating

Not rated. Nobody has said who this app is suitable for, so Personal Clouds and the Oikou app treat it as 18+.

What version 0.20260925.0 may do

Internet

It asks to reach nothing on the internet.

Personal Cloud tools

None. It uses nothing from your Personal Cloud beyond its own storage.

Notifications

It does not send push notifications.

Storage

Up to 16 MB on your Personal Cloud.

Add to Personal Cloud

Sign in to add this web app to a Personal Cloud of yours. It runs there, on your own computer, and you open it from there; nothing is installed on your phone.

Sign in to add

Versions

0.20260925.0 Latest Shown above

Published · a ready-built bundle

Imported from majidmanzarpour/threejs-procedural-dungeon at 0a2aa0980028.

Report this app