Underground lake
A low-poly 4 × 4 m Cave System ground tile: a still underground lake sunk in a faceted stone cave floor, pale cyan at the shallows and dark in the deep. A rock islet crowned with glowing crystals stands in the water, with a crystal cluster on the shore, stalagmites on the far bank and a torch-lit timber landing. Every edge is flat, so it tiles with copies of itself in any direction.

Left rail: colours and the 4 knobs the agent wrote into this model — they rebuild the geometry and go into your download. Right rail: looks for the viewer. Drag to orbit, scroll to zoom.
- Triangles
- 5,776
- Vertices
- 17,328
- Meshes · materials
- 24 · 24
- Size (W × H × D)
- 4.0 m × 1.9 m × 4.0 m
- File
- GLB · 430 KB
- Animation
- Static
- Style
- Low-poly
- Collection
- Cave System
Palette · named materials
- stone grey — cave floor, cut-face top band, islet rock, stalagmites (base)#757e8a
- mid grey — floor mottle and rubble (earth)#7d828c
- stone grey light — sunlit rock crests and stalagmite tips (trim)#a3a5a8
- stone grey dark — wet shore, tile cut faces, stalagmite feet (base)#525860
- soot black — tile underside, jetty stringers, torch head (trim)#1b1b22
- moss — damp patches on the shore (foliage)#55743e
- crystal cyan dark — deep water and dark crystals (water)#168a9c
- crystal cyan — mid-depth water and crystals (accent)#20c6df
- crystal cyan light — shallows and crystal tips (accent)#67d4e4
- dark wood — landing planks and posts (trim)#3d2a1c
- torch amber — torch flame (accent)#ec9c13
- warm white — flame core (accent)#f2ede2
Use it
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
const gltf = await new GLTFLoader().loadAsync(
"https://assets.stoicsoft.com/1designtool/3d/models/cave-system-underground-lake/4cc6c911db/model.glb"
);
scene.add(gltf.scene); // metres, +Y up, front faces +ZHow it was made
The brief given to 1DesignTool's “3D object” template:
Underground lake for the Cave System kit. Design it as one clear asset at believable real-world scale for that setting (state the size in metres in meta.notes), with its main parts modelled and named, readable at thumbnail size and from every orbit angle. Make it a ground piece on an exact 4 × 4 m footprint with flat edges at y = 0 that tile seamlessly with its neighbours in every direction; origin at the tile centre. This is one part of the Cave System kit (Low-poly style, flat-lowpoly direction): Tunnels, crystals and underground water. Use ONLY the kit palette, by name: stone grey #757e8a, crystal cyan #20c6df, moss #55743e, torch amber #ec9c13, stone grey dark #525860, crystal cyan dark #168a9c, stone grey light #a3a5a8, crystal cyan light #67d4e4, soot black #1b1b22, warm white #f2ede2, mid grey #7d828c, dark wood #3d2a1c. Every material's `name` must be exactly the palette colour it uses — the GLB carries these names so the kit recolours as one; an unnamed material fails delivery. Kit knob: expose a param `crystalColour` (0–1, default 0.5) for the kit's "Crystal colour" setting wherever it makes sense on this part, and keep that id.
- Agent: Claude Code · Claude Opus 5.5 in 1DesignTool
- Direction: Low-poly · family scenes
- three-check PASS · glb-lint PASS
Named parts · 10
- Underground lake tile
- Cave floor
- Wet shore and moss
- Lake water
- Crystal clusters
- Crystal islet
- Stalagmites
- Timber landing
- Torch
- Rubble
Note: Size: exactly 4.00 × 4.00 m and 1.94 m tall at the defaults (the tallest crystal; the big stalagmite reaches about 1.6 m). The bottom rests on y = 0, the origin is at the tile centre and the front faces +Z. The cave floor is 0.40 m thick at every border. The lake is about 2.4 × 2.0 m and about 0.26 m deep at the centre (water level 0.30 m over a 0.04 m bed). How it tiles: the floor settles to exactly 0.40 m within 0.3 m of every edge, so all four edges are flat at one height and meet copies of this tile flush in any rotation. Other Cave System floor tiles must share that 0.40 m border height. crystalColour (the kit's 'Crystal colour') slides each crystal along the crystal cyan dark → crystal cyan → crystal cyan light ramp, with tips one step lighter. It only swaps between palette colours and does not recolour the water. lakeSize scales the basin. waterLevel raises or lowers the water between 0.22 and 0.36 m, always below the 0.40 m floor and the 0.50 m rim. stalagmites sets how many stand on the back-left ledge (0–5). Shore crystal clusters are clamped inside the edge band, so nothing overhangs a neighbour at any value. Params are baked into the GLB at their defaults and only change the geometry when the scene is rebuilt in the viewer. Only the defaults were rendered and checked. The GLB has 5,776 triangles in 24 meshes (merged per part and colour), flat normals (non-indexed) and no animation clip. Every material is named exactly after its kit palette colour, and all 12 kit colours are used. The exporter writes one material per mesh, so some names repeat: recolour by name. crystal cyan dark, crystal cyan and crystal cyan light are shared by the crystals and the water, so recolouring them shifts both. Crystals, flame and flame core carry a mild emissive. Viewer-only staging: exposure is 0.48, and the pale ground disc is not in the GLB. glb-lint: 0 errors and 5 heuristic warnings, all expected. Material count and duplicate materials come from the per-mesh export, and unindexed geometry is deliberate for hard facets. Sibling overlap comes from the floor tone zones of one heightfield. The detached-parts warning names the water sheets, which sit in the basin with their rim buried 15 mm in the shore. The verdict reads UNVERIFIED only because no requirements contract was supplied. plan-check rejects only the hyphenated library part ids, because its regex allows no hyphen; the same plan with the slug de-hyphenated passes. three-check and the GLB reload keep all 10 ids. Fix rounds: (1) lower exposure, because the stone read as white; (2) took the glow off the deep water and widened the depth bands, so the lake reads pale-to-dark instead of one flat cyan; (3) seated the torch flame into its head (it floated 1 cm) and clamped the shore crystals inside the tile.
About the Underground lake 3D model
Underground lake is a free low-poly 3D model from the Cave System set. It measures 4.0 m × 1.9 m × 4.0 m (W × H × D) at real-world scale and is built from 5,776 triangles across 24 meshes, with 10 named parts. Download the 430 KB GLB and drop it into three.js, React Three Fiber, Godot or Blender — free for commercial use, no attribution required.
- Is the Underground lake 3D model free for commercial use?
- Yes. It is free under the 1DesignTool 3D library license: use it in personal and commercial work — games, apps, websites, renders, ads and client projects — and modify it as you like, with no credit required. What you can't do is re-sell or re-distribute the file on its own or inside a model pack.
- What file format is it, and how big is it?
- A single binary glTF 2.0 file (.glb), 430 KB: 5,776 triangles, 17,328 vertices and 24 materials, modelled in metres at 4.0 m × 1.9 m × 4.0 m.
- Can I animate Underground lake?
- It ships as a static mesh. Its 10 named parts are separate nodes, so you can move or animate each one in your engine.
- Which engines and tools can open it?
- Anything that reads glTF 2.0. three.js, React Three Fiber, Babylon.js, Godot 4 and Blender import the GLB directly; Unity and Unreal Engine load it through their glTF importers. The snippets above show the exact code for three.js, React Three Fiber, Godot and Blender.
- How was the Underground lake 3D model made?
- Claude Code (Claude Opus 5.5) generated it inside 1DesignTool's 3D template from a written brief, then the design kit's checks verified the geometry and the GLB before it was published. You can make your own the same way with 1DesignTool.
More like this
All of Cave System →
Rope lift
Cave System2,232 tris

Falling stalactite
Cave System1,204 tris

Raft
Cave System2,310 tris

Dripping water
Cave System1,599 tris

Old mining gear
Cave System1,590 tris

Cave paintings
Cave System2,496 tris

Bones
Cave System4,262 tris

Ropes
Cave System1,532 tris
Free under the 1DesignTool 3D library license. Model #50 of 1125.