# GlimmerTown — Li Jiabao

> One original isometric pixel-art city: a single HTML file, no dependencies, works offline. Three lines of development, one city.

URL: https://lijiabao.dev/en/glimmertown/ · lang: en · Numbers as of 2026-09-30.
Other language: https://lijiabao.dev/glimmertown/index.md

Work · Game

## GlimmerTown

微光小鎮 · Glimmerville

One city, three times.

GlimmerTown is one original isometric city. The owner sets the direction and makes the final call; models from different vendors build under one written rulebook. Acceptance criteria come before the work, merges happen only when the guards are green, and what failed is recorded as it happened.

- One HTML file
- No dependencies
- No external assets
- Works offline (PWA)
- Plays on a phone

### 12,513 PASS

The main line's Node test suite, `test_fixde.js`, reports PASS=12,513. Each lit cell is one passing check.

(Data: Real records from the 2026-09-30 snapshot. One point per record.)

1 ◆ = 1 PASS

GlimmerTown main line (snapshot 2026-09-30)

|  |  |
| --- | --- |
| Version | v11.210 (T601) |
| Code | 50,578 lines, about 4.4 MB, one index.html |
| Tests | PASS=12,513 |
| Task cards | 453 |
| Changelog | 637 dated lines, one per card |
| Commits | 1,392 (2026-07-12 → 2026-09-30) |

### One city, three lines

#### Main line

1. The strict 2D production build.
   - 1,392 commits
   - v11.210
   - PASS=12,513
   - no public demo (Pages returns 404)
   [GlimmerTown](https://github.com/lijiabao1998/GlimmerTown)

#### Art lab

2. The art-first 2D branch: forked at T420, evolving on its own since T531 v12.87.
   - 292 commits
   - T532–T701
   - v14.05
   - 94 pixel guards
   - 6 PRs
   > "On the lab line, art comes first; everything else matters once the art is there."
   > Source: [GlimmerTown-lab](https://github.com/lijiabao1998/GlimmerTown-lab/blob/main/README.md)
   [GlimmerTown-lab](https://github.com/lijiabao1998/GlimmerTown-lab)

#### 3D line

3. Build, a lifetime, archaeology. Only build is active now.
   - 141 commits
   - D000–D030
   - opens on a phone
   [GlimmerTown3D-lab](https://github.com/lijiabao1998/GlimmerTown3D-lab)

(Schematic: A diagram, not data.)

The two 2D lines number their cards independently and never merge back. The lab repo's first commit (2026-09-13) predates the repo; it is imported local history.

1. 2026-07-12 main line's first commit: "v1.0 baseline (rebuilt restoration)"
2. 2026-08-08 T420 · v11.46 · 4,307 assertions passing · split into desktop and mobile lines
3. 2026-09-13 T531 v12.87 · the lab line's own starting point
4. 2026-09-24 D000 · the 3D line opens
5. 2026-09-30 main T601 v11.210 · lab T701 v14.05 · 3D D030

### The life of one card

1. Measure —
2. Card — what changes, acceptance criteria, how to roll back
3. Build — each in its own git worktree "bay"
4. Guard — write guards, run assertions
5. Green — smoke tests green before commit
6. Merge — only on the owner's nod
7. Record — one changelog line per card, rejected options and reasons included

Changes that affect the whole frame come as 2–3 comparison options for the owner to pick. Every new effect has an escape hatch back to the old look.

> "3D is not the selling point; what the player does is."

> Source: [`docs/D000-vision.md`](https://github.com/lijiabao1998/GlimmerTown3D-lab/blob/main/docs/D000-vision.md)

Owner's decision, 2026-09-25: all effort on build; lifetime and archaeology are paused; world history is still recorded.

### One city, three times

#### Build

- Active
   you build a city with your own hands.

#### A lifetime

- Paused
   one citizen lives a whole life here while the city grows around them.

#### Archaeology

- Paused
   centuries later the city lies abandoned; you walk its ruins and read its history.

(Schematic: A diagram, not data.)

Exact cross-checks against the 2D code: D011, 256 maps and 9,659 operations all equal; D024, 1,400 maps and 155 counts equal; deliberately broken mutants all turn red.

Incremental rebuilds: GPU upload per rebuild cut from about 2.3 MB to about 190 KB.

2.3 MB

190 KB · Source: GlimmerTown3D-lab `docs/D015-incremental-rebuild.md` As of 2026-09-30

### Self-assessed scorecard

17 · As of 2026-09-30

`docs/SURPASS.md` (against TheoTown): 17 criteria, all marked done by self-assessment.

> Originality red line: "Don't use its assets, don't read its code, don't copy its names."

[GlimmerTown · `docs/SURPASS.md`](https://github.com/lijiabao1998/GlimmerTown/blob/main/docs/SURPASS.md)

### What you can open

- [GlimmerTown 3D playable, works on phones 1.06 MB](https://lijiabao1998.github.io/GlimmerTown3D-lab/)
- [Lab shots 8 day, dusk and night screenshots](https://lijiabao1998.github.io/GlimmerTown-lab/shots/)
- [Lab game a single 8.70 MB file, slow to load; a full download can time out](https://lijiabao1998.github.io/GlimmerTown-lab/)
- [The main line has no public demo; its README explains how to host it yourself.](https://github.com/lijiabao1998/GlimmerTown/blob/main/README.md)
- Repos [GlimmerTown](https://github.com/lijiabao1998/GlimmerTown) [GlimmerTown-lab](https://github.com/lijiabao1998/GlimmerTown-lab) [GlimmerTown3D-lab](https://github.com/lijiabao1998/GlimmerTown3D-lab)

### What didn't get done

1. The main line has no public demo yet (Pages returns 404).
2. Lifetime and archaeology are paused (decided 2026-09-25).
3. The lab game is a single 8.70 MB file; a full download can time out.
4. Three "citizen lifetime" prototypes are built and waiting for the owner's pick.
5. `ARCH.md` and `LINEAGE.md` keep the correction of a counting-method error.

[Next Frontier Lab](https://lijiabao.dev/en/frontier/)
