@m0saic/community-m
v0.2.0
Published
The Community M — one tile per contributor. Authoring home + bundled seed of the public community-m repository.
Readme
Community M
The m0saic brand mark is 33 tiles. Each one belongs to a person who helped build the m0saic ecosystem: your first accepted community template earns you a tile, forever.
This repository is the Community M. Every tile is a folder, every claim is a pull request, and the m0saic app reads this repo directly, so a merged PR shows up in Mosaic Desktop and inside other people's renders without waiting for an app release.
index.json ← generated manifest (the app reads this)
geometry/m-33.m0c ← the M itself, in m0saic's own format (immutable)
ms/001/ ← Community M #001 — the Genesis M
m.json ← title, curator, accent, opened/completed
community-m-001.m0p ← generated pack: one variant per tile, open it in Mosaic Desktop
root/ ← the ROOT award (M #001: the founder) — see below
slots/NN/ ← contributor claim #NN (dealt by the scatter)
slot.json ← who, when, which contribution
slot.m0c ← the M with *your* tile labelled — open it in Layout
tile.png ← your square identity mark
piece.mosaic ← your short piece (plays after the zoom-in)
assets/ ← media your piece references
ms/002/ ← locked until #001 fills
tools/ ← zero-dependency node scripts (validate, assemble, new-slot)How tiles are assigned
Tiles are not chosen; they are dealt. The next claim always lands on the open
tile farthest from every claimed tile (farthest-first scatter), so the M
looks alive at every fill level instead of filling one region first. Claim
order is precomputed into index.json and verified by CI.
- The scatter runs over the 32 contributor tiles, anchored on the root: claim #1 lands in a top corner, #2 in the opposite corner, and so on inward. The order is the same for every M.
- The root (the V-tip) is never dealt — see "The root tile" below.
One person, one tile. Later templates earn attribution and Pro credit, not another tile. An M is complete when its 32 contributor tiles are claimed; completed Ms are frozen.
The root tile
The tile at the bottom of the M — the V-tip, where the eye settles — is the root. It is never dealt. Every M's 32 other tiles record participation ("I contributed something accepted"); the root records distinction: it is awarded to a contribution the community recognizes as unusually important — a template that becomes a de facto standard, that materially expands what people can do with m0saic, or that the community elevates. It is the only way to a second tile, and there is no limit to how many roots one person can earn — but only by award, never by claim or by timing. An M may complete with its root still reserved; the award can come later and finish the mark.
Root tiles across Ms form a canon: check the root of each M and you find the
work the community chose to stand where the founder stood. M #001's root is
the founder — m0saic itself is the first contribution. The award's criteria
and process are deliberately unpublished; they will be decided with the
community as it forms (maintainer selection, nomination, voting, usage
signal…). Contributors cannot claim a root; awards land as ms/<id>/root/.
Each M records when it opened and when it completed (m.json):
M #001 opened on the genesis epoch, 2026-04-15; every later M opens the
moment the previous one completes. completedAt is stamped from the 33rd
claim and never moves afterwards, even if tiles are edited later — so the
manifest keeps an honest record of how quickly each M filled.
Provenance
Tile art and pieces are referenced by path, never embedded: the PNG on
disk is the artifact (viewable, diffable, hashable), and slot.json pins its
SHA-256 so the claim record points at exact bytes. A later edit is an explicit
re-pin in the record, not silent drift. When an M completes it is frozen;
a one-time archival pack with the images embedded can then be minted as a
self-contained monument file.
Claim a tile
See CONTRIBUTING.md. Short version: get a community
template accepted, then open a PR here that adds one folder under
ms/<current>/slots/.
Where it shows up
- Mosaic Desktop → Community — the current M, the contributor list (oldest first), and every completed M.
- Render Hero — while a render runs, the M fills in; sometimes it is a Community M, with your tile and your GitHub link.
@m0saic/brand/community-m/v1— a core template that renders your provenance video: the M, a zoom into your tile, then your piece.
Tools
node tools/validate.mjs # every rule CI enforces
node tools/assemble.mjs # regenerate index.json + the .m0p packs
node tools/assemble.mjs --check # CI mode: fail if generated files are stale
node tools/new-slot.mjs --m 001 --handle octocat --name "Mona" --url https://github.com/octocat
node tools/claim-order.mjs 001 # print the claim order for an M