Vịnh Hạ Long, Quảng Ninh
Tabletop diorama of Hạ Long Bay: an emerald sea studded with jungle-topped limestone karsts, the Hòn Trống Mái (Fighting Cocks) pair, a traditional junk with battened ochre sails, kayaks and a floating fishing house on a slate-grey plinth.

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
- 180,558
- Vertices
- 205,266
- Meshes · materials
- 43 · 12
- Size (W × H × D)
- 1.3 m × 67 cm × 88 cm
- File
- GLB · 6.3 MB
- Animation
- scene-motion · 12.0s
- Style
- Product
- Collection
- Landmarks
Palette · named materials
- slate plinth#4B5159
- sea water#1F6B52
- sea foam#DDEEE9
- limestone#6B6E6C
- wet limestone#363C3A
- jungle canopy#3E6B33
- teak hull#4A2E1C
- deck wood#8C6236
- sail canvas#B57F36
- bamboo rig#7C5A2E
- rusty roof#8F4E30
- painted red#A83A2C
Use it
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
const gltf = await new GLTFLoader().loadAsync(
"https://assets.stoicsoft.com/1designtool/3d/models/vinh-ha-long/e0adbe85f6/model.glb"
);
scene.add(gltf.scene); // metres, +Y up, front faces +Z
const mixer = new THREE.AnimationMixer(gltf.scene);
gltf.animations.forEach((clip) => mixer.clipAction(clip).play());
// in your loop: mixer.update(delta)How it was made
The brief given to 1DesignTool's “3D object” template:
Hạ Long Bay (UNESCO) as a diorama. An emerald-green sea studded with tall limestone karst islets — steep grey cliffs with jungle-green tops and a notched erosion line at the waterline — including Hòn Trống Mái (the Fighting Cocks: two rocks facing each other), a traditional wooden junk with ribbed, batten-reinforced ochre-brown sails, a few kayaks and a small floating fishing house on pontoons. Loop (12 s): the junk sails slowly across and the water ripples. Make it a polished, elegant model in the stylised-PBR direction: clean proportions, smooth curvature, soft bevels on every edge, crisp silhouettes and a restrained palette of named materials (name each material for what it is, e.g. "limestone", "red lacquer", "glazed roof tile", "sea water"); every material in the exported GLB must carry that name — set `material.name` on each one, because an unnamed material fails review. It must be recognisable at a glance as the real place. No text, lettering, logos or signage anywhere. Reference photos of the real place are in `reference/` (ref1.jpg, ref2.jpg): open and study them before planning if you can view images, and compare your hero capture with them before delivering. Natural sites and large complexes are presented as a tabletop diorama on a clean rounded plinth with slate-grey sides; state the real-world scale and the diorama scale in meta.notes. Hard requirement: the exported GLB must contain AT LEAST 100,000 triangles (target 120,000–200,000) — measure it before delivering. Spend the budget on real modelled detail (roof tiles, carvings, railings, mouldings, rock strata, foliage clusters, water surface, boats), never on invisible subdivision. Keep the GLB under 20 MB: index all geometry, instance repeated parts, no image textures.
- Agent: Claude Code · Claude Sonnet 5.5 in 1DesignTool
- Generation: 0.83M tokens (90% cached) · ≈ $0.56 at API prices · 5-hour plan +1%, weekly plan +0%
- Direction: Product · family scenes
- three-check PASS · glb-lint PASS
Named parts · 21
- Hạ Long Bay diorama
- Slate plinth
- Sea surface
- Limestone karst islets
- Hòn Trống Mái — Fighting Cocks
- Waterline erosion bands
- Jungle canopy
- Sailing junk
- Junk sails
- Masthead pennant
- Floating fishing house
- Kayaks
- Kayak 1
- Kayak 2
- Kayak 3
- Ripple rings
- Ripple ring 1
- Ripple ring 2
- Ripple ring 3
- Ripple ring 4
- Ripple ring 5
Note: 117,894 triangles, 5.1 MB, indexed geometry, no textures, 57/57 nodes named, all 12 materials named, 1 baked 12 s AnimationClip (junk circuit, bobbing, ripple rings). Real-world scale: the modelled bay footprint represents roughly a 1.2 km × 0.9 km stretch of Hạ Long Bay; the diorama itself is a 1.24 m × 0.88 m × 0.40 m tabletop piece (≈1:1000 miniature). glb-lint warns on material count (12 > direction default 8), triangle budget (>80k) and height (>0.15 m) — all three are deliberate plan overrides for this showpiece asset; the 'detached parts' warnings are boats/karsts that correctly float on or rise from the water. Karst count and layout are seeded by karstSeed; canopyDensity scales foliage clumps; seaSwell displaces the water surface; pathRadius moves the junk's sailing circuit. Review fix: wake ripple rings no longer export oversized; bounding box is the diorama itself (1.24 x 0.67 x 0.88 m). 180,126 triangles, 6.6 MB. Real-world scale: roughly 1 km across the scene; diorama scale about 1:1000 horizontally with vertically exaggerated karsts.
More like this
All of Landmarks →
Thác Bản Giốc, Cao Bằng
Landmarks195.5k tris

Cột cờ Lũng Cú, Hà Giang
Landmarks200.1k tris

Thủy điện Hòa Bình & Hồ Hòa Bình
Landmarks129.5k tris

Sông Nhật Lệ, Quảng Bình
Landmarks134.8k tris

Chợ nổi Cái Răng, Cần Thơ
Landmarks186.3k tris

Đảo ngọc Phú Quốc, Kiên Giang
Landmarks198.6k tris

Cánh đồng điện gió Bạc Liêu
Landmarks185.8k tris

Giàn khoan Bạch Hổ, Bà Rịa – Vũng Tàu
Landmarks197.9k tris
Free under the 1DesignTool 3D library license. Model #8 of 218.