Skip to content

Commit 0268546

Browse files
SimHackerclaude
andcommitted
Paths to moollm and SimObliterator_Suite now under GroundUp/git; family album, tool palette, TODO, predictive cursor and god zone editor design
Includes pending work: family-album-as-storymaker, SOUL-ALBUM, simcity tool palette, sims-io neighborhood test, new predictive-cursor-and-god-zone-editor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 9d5b400 commit 0268546

9 files changed

Lines changed: 328 additions & 31 deletions

File tree

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# SOUL-ALBUM — the universal album schema
22
# Generic cross-game "Soul Album"; per-game bridges map native albums onto it
3-
# (e.g. The Sims Family Album). We uplift, we never co-opt game vocabulary.
3+
# (e.g. The Sims Family Album). Keep each game's existing feature names.
44
#
5-
# Object model and metadata floor live upstream, in moollm skills/soul-city/SOUVENIRS.md:
5+
# Object model and metadata design live upstream, in moollm skills/soul-city/SOUVENIRS.md:
66
# a card is a self-describing OBJECT whose type is an interpretation of its properties, an album
7-
# is a polymorphic ordered array of them, and metadata uses Dublin Core names where they exist
8-
# (`coverage` carrying BOTH geographies, real-world and in-game; `relation` carrying the pointers
9-
# to souls, objects, and places in frame). Unknown types pass through whole — never dropped.
10-
# This file implements that; it does not redefine it.
7+
# is a graph of reusable pages with linear editions, and metadata uses Dublin Core names where they exist
8+
# Game coordinates and depicted entity references use documented extensions.
9+
# Preserve unknown fields; do not execute behavior described by untrusted metadata.
10+
# This file specifies planned behavior; it is not implementation evidence.
1111

1212
meta:
1313
id: soul-album
@@ -16,22 +16,26 @@ meta:
1616

1717
model:
1818
album:
19-
what: "Ordered sequence of story cards; per-game or cross-game; local-first, publishable"
19+
what: "Graph of reusable media pages; per-game, cross-game, or authored without a game"
2020
storage: "Local SQLite + media dir; publish = push to Soul City federation (CARD dirs, git-native)"
21+
route:
22+
selection: "Start page, length with explicit units, branch choices or selection rules, and cycle/dead-end policy"
23+
edition: "Resolved ordered page IDs and revisions, timing and layout; pin for reproducible output"
24+
graph_preservation: "Linear native exports cannot preserve all branches; retain the graph separately"
2125
card:
2226
image: "Still from live frame, DVR scrub timestamp, or imported file"
23-
clip: "Optional — cards can hold video clips; album order = machinima sequence"
27+
clip: "Optional video or audio; a selected route determines playback order"
2428
caption: "Typed, voice-narrated via STT, or assistant-drafted and human-edited (never auto-published)"
2529
audio: "Optional narration track per card — radio channel source"
2630
provenance:
2731
game: "app id / process fingerprint"
2832
save: "save file id + mtime when a bridge is available"
2933
souls: "character ids in frame when the bridge can enumerate them"
3034
dvr_timestamp: "the moment in the ring buffer this card cites"
31-
like_thoughtful_commitment: "Card = commit; DVR = transcript; provenance = trace link"
35+
metadata: "Dublin Core terms plus documented game extensions; capture provenance does not establish publication rights"
3236

3337
editing:
34-
operations: [capture, caption, narrate, reorder, sequence, split_album, merge_albums, import, export]
38+
operations: [capture, author, caption, narrate, link_pages, select_route, pin_edition, reorder, sequence, split_album, merge_albums, import, export]
3539
time_shifted: |
3640
Production happens AFTER play: replay the DVR, narrate calmly, caption with voice, let STT
3741
transcribe, edit text by hand. Live capture is one hotkey; storytelling is post.
@@ -43,33 +47,41 @@ editing:
4347
# ── GAME ALBUM BRIDGING ───────────────────────────────────────────────────────
4448
game_albums:
4549
principle: |
46-
Where a game has its own album/photo feature, the Soul Bridge round-trips it:
47-
import native pages as Soul Album cards, export cards back into the native format.
48-
The game's own name for the feature stays the game's — the bridge translates vocabulary
49-
and format both ways.
50+
For each supported album format, document import and export capabilities separately.
51+
Preserve the graph externally when a native linear format cannot carry it.
52+
Round-trip support requires fixtures and tests, not just a readable directory.
5053
sims1_family_album:
51-
status: first_bridge_showcase
52-
read_write_while_running: |
53-
The Sims stores Family Album pages on disk as paired image + caption files, and rescans
54-
that directory when the album UI opens. So SoulAngel can read AND write the album while
55-
the game runs, pauses, or is stopped — external edits appear on next album open.
56-
No injection, no save surgery. (On-disk behavior, observable in any installed copy.)
57-
exchange: "Exported family files carry album pages; import/export supported (VitaMoo file inventory already detects them)"
54+
status: proposed_showcase
55+
verification_required: |
56+
Establish page/caption formats and reopen behavior with fixtures for supported versions.
57+
Test whether external edits while running are safe before enabling writes.
58+
Album-directory updates, family export, and object/save editing are separate capabilities.
59+
exchange: "Verify preservation through family export/import; file detection alone is not round-trip support"
5860
demo: |
5961
Launch showcase: freeze a DVR frame, narrate it, and the card lands INSIDE the game's own
6062
Family Album. Then export the whole album to Soul City as a magazine story.
61-
no_bridge: "Universal album still works — capture + caption + publish; provenance = game + timestamp only"
62-
photo_mode_games: "Games with photo/replay modes get bridges that round-trip their formats"
63+
no_bridge: "Capture where available and permitted; caption and publish with known provenance and rights checks"
64+
photo_mode_games: "Inspect formats individually; do not assume export or round-trip support"
6365

6466
outputs:
6567
- published_album_page # magazine channel
6668
- machinima_video # TV channel — cards sequenced with narration
6769
- stream_vod_chapters # DVR timestamps -> chapter markers
6870
- podcast_episode # radio channel — narration tracks stitched
6971

72+
content_generation:
73+
status: design
74+
inputs: "Pages or resolved routes, target template, build settings, and input revisions"
75+
examples: ["slide projector and slides", "jukebox and recordings", "book and pages"]
76+
identity: "Persist source IDs and allocated object GUIDs; reuse on updates, allocate new IDs for intentional forks"
77+
multi_object_templates: "Retain every allocated GUID and its role within the template"
78+
placement: "User-selected or automated instances in chosen house saves; track save/instance IDs separately"
79+
update: "Definition rebuild and placed-instance migration are separate, validated operations"
80+
safety: "Collision checks, backups, safe retries, explicit partial failures, and rights checks before distribution"
81+
7082
see_also:
7183
- DVR.yml
7284
- SOUL-BRIDGE-SDK.yml
7385
- ARCHITECTURE.yml
74-
- moollm skills/soul-city/SOUVENIRS.md # souvenir object model, album shape, Dublin Core floor
86+
- https://github.com/SimHacker/moollm/blob/main/skills/soul-city/SOUVENIRS.md
7587
- moollm skills/soul-city/SOUL-BRIDGES.md # who may cross, and what the destination owes them

‎documentation/TODO.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ the linked documents.
1212

1313
| Area | Next concrete action | Priority |
1414
|------|----------------------|----------|
15+
| Album content authoring (design only) | [Page graphs → editions → game objects](designs/family-album-as-storymaker.md#pages-routes-and-generated-objects): specify route manifests, stable GUID mappings, and separate save-instance updates | Future |
16+
| Editing tools (design only) | [Predictive cursor + God zone editor](designs/predictive-cursor-and-god-zone-editor.md): audit snapshot determinism, zone states/footprints, and population units before implementation | Future |
1517
| [Playable Micropolis game](#playable-micropolis-game) | Phase A: auto-start sim + HUD bound to `micropolisReactive` | **High** |
1618
| [Playable Micropolis game](#playable-micropolis-game) | Phase B: `ToolState` + click-to-build + minimal `Toolbar` | **High** |
1719
| [Playable Micropolis game](#playable-micropolis-game) | Phase B: `CursorLayer` DOM/SVG tool cursor (same clip math as future WebGPU) | **High** |

‎documentation/designs/README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ Read these alongside:
3939

4040
### Platform and integration
4141

42+
- [Predictive cursor and God zone editor](predictive-cursor-and-god-zone-editor.md) — paired edited/unedited futures; query-derived footprints; population/value configuration pies; shared housing-injection operations (design only).
4243
- `platform-lineage-index.md` — Platform eras (NeWS, X11, OLPC, OpenLaszlo, Wasm) and where each layer’s docs live; maps **`documentation/`** (reference + archive) to **`documentation/designs/`** (forward-looking specs).
4344
- `collaborative-microworld-lineage.md` — Engelbart, Kay, Papert, Piaget, SimCityNet, and constructionist multiplayer.
4445
- `multiplayer-browser-lessons.md` — Lessons from Sail/Muddy and the Hacker News discussion for Soul City.

‎documentation/designs/family-album-as-storymaker.md‎

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99

1010
> **Trademark notice.** *Micropolis* is used under license from Micropolis GmbH. *SimCity*, *The Sims*, and *Maxis* are EA Inc. trademarks; references are nominative use only. No affiliation with or endorsement by any listed studio is implied.
1111
12-
> **Scope.** A companion-side extension of the user-authored Sims Family Album. The Sims engine remains the runtime; album pages compile back to documented `.iff` book/album objects. See [soul-city.md → Scope and intent](soul-city.md#scope-and-intent).
12+
> **Scope.** A proposed companion-side extension of the user-authored Sims Family Album.
13+
> Native album export and generated `.iff` book/album objects are separate targets;
14+
> each needs a documented, tested adapter. The Sims engine remains the game runtime.
15+
> See [soul-city.md → Scope and intent](soul-city.md#scope-and-intent).
1316
1417
> **Lineage.** This design draws on a thread of prior work (HyperLook SimCity, SimCityNet, DreamScape, MediaGraph, iLoci, Bar Karma's StoryMaker, Urban Safari) that is documented elsewhere in the design suite — see the *Lineage* section in [designing-inward-miyamoto-principles.md](designing-inward-miyamoto-principles.md), [maxis-ea-shutdown-hn-2015.md](maxis-ea-shutdown-hn-2015.md) (SFC / Bar Karma / HiveMind), [storymaker/architectural-overview.md](storymaker/architectural-overview.md) (SFC slides + diagram), and the SimCity-to-Bar-Karma chronology referenced from [characters-as-hydrogen.md](characters-as-hydrogen.md). This doc focuses on the design itself; the lineage is not re-litigated here.
1518
@@ -26,7 +29,49 @@ The natural next shape is a **branching, merging, geo-tagged graph of scenes**,
2629
- Storylines are author-curated paths through the shared scene pool.
2730
- Characters and lots travel inside scenes as content snippets; when reused, the [Bifrost protocol](moollm-microworld-os.md#the-bifrost-the-bridge-as-a-structured-ontological-transition) handles identity sync and provenance.
2831

29-
The graph lives in git, federates by `git remote`, and round-trips through the [Adventure Compiler](moollm-microworld-os.md#the-adventure-compiler-is-a-coherence-engine-partner-not-a-one-shot-compiler) to a pageable Family Album book IFF object that the EA-published Sims 1 displays normally.
32+
The proposed graph can be versioned in git. Storage and export adapters must
33+
preserve node identity and disclose information lost in a linear target.
34+
The compiler and game-object output described here remain design work,
35+
not evidence of a working native round trip.
36+
37+
## Pages, routes, and generated objects
38+
39+
A page may contain images, captions, audio, or other media. It may be imported
40+
from any supported game's album, captured with little game metadata, or
41+
authored entirely by the user. Use
42+
[Dublin Core terms](https://www.dublincore.org/specifications/dublin-core/dcmi-terms/)
43+
for common metadata and documented extensions for game/build information.
44+
45+
A linear family album, slideshow, playlist, or coffee-table book is a trip
46+
through the graph from a chosen start for a chosen length. Specify whether
47+
length counts pages or duration, how branches are chosen, and how cycles
48+
and dead ends terminate. Publish a resolved list of page IDs and revisions
49+
so the edition remains reproducible when the graph changes.
50+
51+
Content tools can take that edition as input to a template: slides for a
52+
projector, recordings for a jukebox, or pages for a book. Store source IDs,
53+
route and recipe revisions, target format, and allocated game object GUIDs.
54+
Adding slides or recordings should rebuild the same object using its existing
55+
GUIDs. A fork is an explicit new identity, not an accidental consequence of
56+
every build. Multi-object templates retain their complete GUID mapping.
57+
58+
Users can place one or several instances in chosen house saves, manually or
59+
through an automated placement plan. Definition updates and updates to
60+
saved instance state are separate operations. Preview affected saves, check
61+
compatibility, back them up, and report partial failures; do not assume an
62+
installed asset update migrates every saved copy.
63+
64+
Detailed shared model:
65+
[media pages and object generation](https://github.com/SimHacker/moollm/blob/main/skills/soul-city/SOUVENIRS.md).
66+
Related plans: [GUID registry](https://github.com/SimHacker/WillWrightShowForFood/blob/main/catalogs/soul-city/guid-registry.md)
67+
and [object shops](https://github.com/SimHacker/WillWrightShowForFood/blob/main/catalogs/soul-city/object-shops.md).
68+
For the earlier scene-graph work, see
69+
[StoryMaker's architectural overview](storymaker/architectural-overview.md).
70+
71+
Acceptance checks: reproduce a pinned route after shared-page edits; preserve
72+
unknown metadata; disclose branch loss in linear exports; retain object GUIDs
73+
on rebuild; distinguish forks; account for every placed instance; validate
74+
rights before publication. These are requirements, not completed tests.
3075

3176
---
3277

0 commit comments

Comments
 (0)