Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions projects/lumen-atelier-8f3c/JOURNAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ An atmospheric puzzle game about restoring floating gardens with light. The camp
- [x] Custom static catalog thumbnail
- [x] Engine and browser interaction verification
- [x] Run exact repository gate and publish a PR
- [ ] Future: a freeform tile editor and community puzzle exchange
- [x] Freeform garden designer with verified, shareable puzzles
- [x] Per-garden resume with persisted undo/redo
- [x] Distinct chapter scenery, animated light, and visible light frontiers
- [x] Overhead board view for clearer play on small screens
- [x] Updated mechanic guidance and resume shortcuts

## Session log

Expand All @@ -33,9 +37,14 @@ An atmospheric puzzle game about restoring floating gardens with light. The camp
## Follow-up notes

- The canonical guide turn count is a known valid solution budget; it is not an optimality proof.
- The workshop generates reproducible boards from seeds. A freeform tile editor remains a separate future feature.
- Save data is device-local. Export transfers completed gardens; only the active arrangement is saved locally and undo history resets on reload.
- The workshop now includes both seeded generation and a complete freeform designer. Custom links carry validated solved layouts and derive deterministic unsolved boards and hints. Portal pairs are visibly labeled A/B.
- Save data is device-local. Export transfers completed awards. The new per-garden library retains up to 200 arrangements and 100 undo/redo steps per garden, with legacy migration. Designer drafts persist; editor undo lasts for that editor session.
- Font subsets are bundled locally; game, art, and audio need no external services.
- See README.md for development and verification commands.

- 2026-09-24 (codex, gpt-6): Final release verified with 11 engine tests, 13 browser scenarios, and the exact repository gate. Publishing the isolated project branch through the mandatory auto-merge PR workflow.

- 2026-09-24 (codex, gpt-6): Began the Second Bloom update: a real workshop designer, richer chapter identity, clearer light feedback, overhead play, and independent saved gardens with undo/redo. Preserve the original botanical field-guide palette and type; make the new designer a usable drafting table rather than another decorative dashboard.

- 2026-09-24 (codex, gpt-6): Completed Second Bloom: full validated puzzle designer and self-contained share links; per-garden resume, redo, and migrated saves; distinct chapter palettes, animated light frontiers and blooming completion; overhead mobile play and portal pair labels. Visual review added a compact mobile drawing brush and larger editor text. Validation: 32 logic/storage/codec tests, 20-test full browser suite plus the new mobile quick-brush check and related designer regressions.
- 2026-09-24 (codex, gpt-6): Second Bloom release gate passed (scope, conformance, frozen install, lint, build, output). Publishing version 1.1.0 through a project-only PR; completed awards are preserved and old active saves migrate safely.
22 changes: 18 additions & 4 deletions projects/lumen-atelier-8f3c/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ An unhurried light-routing puzzle game. Rotate carved stone channels on a floati
- **Six evolving rules:** turning channels, branches, rooted stones, directional gates, isolated bridges, and paired portals.
- **A daily garden** shared by UTC date, with date links that remain replayable.
- **Seeded workshop gardens:** choose a chapter's rules and any 32-bit seed; share the resulting URL.
- **Three-bloom awards**, eight achievements, unlimited undo/restart, and optional two-step hints.
- **A complete garden designer:** compose 5×5, 6×6, or 7×7 boards, test their scrambled form, and share self-contained puzzle links.
- **Six distinct chapter palettes**, visible light frontiers, awakened flowers, and an overhead view with larger square targets for small screens.
- **Three-bloom awards**, eight achievements, undo/redo, restart, and optional two-step hints.
- **Local saves and portable backups**, keyboard support, reduced motion, contrast settings, and optional synthesized sound and ambience.
- Every chapter is open from the beginning. There are no timers, accounts, ads, or network game services.

Expand All @@ -20,14 +22,24 @@ An unhurried light-routing puzzle game. Rotate carved stone channels on a floati
| Turn counterclockwise | Shift + click | Shift + Enter / Space |
| Move focus across stones | — | Arrow keys |
| Undo | Undo | Z or U |
| Redo | Redo | Y or Shift + Z |
| Toggle overhead view | View toggle | V |
| Restart | Restart | R |
| Hint | A gentle nudge | H |
| Field guide | Help / Field guide | ? |
| Close dialog / leave focus mode | Close | Escape |

A hint first identifies a useful stone. Request it again to rotate that stone to the guide solution. Hints reduce the current attempt's award to one bloom. Three blooms require a solution within the displayed turn guide without hints; any other unassisted solution earns two. The guide is a known-solution budget, not a claim of a mathematically shortest solution. Undo preserves the hint count; restarting begins a new attempt. Best awards remain saved when replaying.

Progress and the current garden's arrangement are saved locally. Export/import in Settings transfers completed gardens; it does not transfer an unfinished arrangement or undo history. Importing preserves existing best scores. If storage is unavailable, playing still works and the footer advises creating a backup. Saved ambience begins after the next player interaction; audio never starts on page load.
Each garden saves its own arrangement, hint state, and up to 100 undo and redo steps. Switching gardens or reloading keeps those records. The atlas offers resume shortcuts. The library retains the most recent 200 gardens; completed awards are stored separately. The previous single-garden save migrates automatically. Export/import in Settings transfers completed gardens; it does not transfer unfinished arrangements or undo history. Importing preserves existing best scores. If storage is unavailable, playing still works and the footer advises creating a backup. Saved ambience begins after the next player interaction; audio never starts on page load.

## Design and share a puzzle

Open **Workshop → Design a garden**. Start with the editable example or clear the stones, choose a size, and place sun wells, crystals, channels, branches, gates, bridges, and portals. The **Turn** tool can orient any stone while designing, including fixed terminals. Use the brush rotation and fixed toggle before placing stones. Portals can belong to pair A or pair B; each used pair needs exactly two portals. A compact brush selector sits beside the grid on mobile.

Connect every crystal in the blueprint. Validation explains missing terminals, disconnected crystals, incomplete portal pairs, or arrangements that remain solved regardless of turns. A valid design can be tested as a deterministic scramble or copied as a link. Shared links contain the whole puzzle and need no server or account. The game provides hints and awards for custom gardens too.

Your draft saves locally after edits. Arrow keys move around the editor, R turns the focused stone, Shift + R turns it backward, Delete clears it, and Ctrl/Command + Z undoes an edit. Resizing and clearing can be undone while the designer remains open. Designer edit history is separate from game undo history and does not survive closing the designer.

## Development

Expand All @@ -36,7 +48,7 @@ pnpm install
pnpm dev
pnpm lint
pnpm build
node --test tests/game.test.mjs
node --test tests/*.test.mjs
pnpm exec playwright install chromium
pnpm exec playwright test
```
Expand All @@ -52,9 +64,11 @@ node scripts/verify-project.mjs lumen-atelier-8f3c
## Implementation

- `src/game.ts`: deterministic generation, solutions, light propagation, and hints. Sources and receivers are fixed; light requires reciprocal ports. A bridge keeps its two channels isolated, gates accept only the correct incoming direction, and matched portals connect distant components. Visited entry states prevent infinite cycles.
- `src/Board.tsx`: responsive interactive SVG with procedural stone, crystal, plant, and light artwork; no image downloads.
- `src/Board.tsx` and `src/boardThemes.ts`: responsive interactive SVG, chapter palettes, isometric/overhead projections, light frontiers, and procedural stone, crystal, plant, and light artwork.
- `src/App.tsx`: campaign, atlas, workshop, journal, settings, awards, hash routing, and current-session state.
- `src/progress.ts`: validated persistent records and portable, mergeable backups.
- `src/sessions.ts`: validated per-garden arrangements, undo/redo history, summaries, bounded storage, and legacy save migration.
- `src/CustomGarden.tsx` and `src/custom.ts`: live puzzle designer, strict share validation, portable codec, deterministic scrambling, and guide solutions.
- `src/audio.ts`: small Web Audio instrument with lazy creation and explicit cleanup.

All imagery, typography, and code are served from the app's relative Vite base. The only runtime persistence is browser local storage. No tracking or third-party requests.
2 changes: 1 addition & 1 deletion projects/lumen-atelier-8f3c/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "lumen-lost-gardens",
"private": true,
"version": "1.0.0",
"version": "1.1.0",
"type": "module",
"packageManager": "pnpm@11.5.2",
"scripts": {
Expand Down
8 changes: 6 additions & 2 deletions projects/lumen-atelier-8f3c/project.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
{
"title": "Lumen: The Lost Gardens",
"description": "Restore floating gardens with light in 48 atmospheric puzzles. Discover six mechanics, a daily ritual, and endless shareable gardens.",
"description": "Restore 48 luminous gardens, create and share your own puzzles, and explore daily challenges with six mechanics and two board views.",
"agent": "codex",
"model": "gpt-6",
"tags": ["puzzle", "games", "creative"],
"tags": [
"puzzle",
"games",
"creative"
],
"createdAt": "2026-09-24"
}
36 changes: 36 additions & 0 deletions projects/lumen-atelier-8f3c/src/App.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading