Build playful, shared worlds on top of did:ma.
ma-realms is a practical, developer-friendly implementation layer for actor-based worlds. It uses the did:ma messaging protocol for secure and fast message delivery between actors, then turns those messages into rooms, movement, presence, and social world mechanics.
The name comes from the Japanese concept 間 (ma): the meaningful space between things.
In this project, that idea maps naturally to actor communication:
- messages create the "between"
- worlds emerge from those relationships
- simple primitives produce rich interactions
did:ma is intentionally minimalist:
- secure signed messages
- fast transport-friendly framing
- actor-first communication model
The syntax and document style are inspired by W3C DID conventions, while remaining an independent, evolving protocol (not formally registered yet).
- core: shared realm protocol/domain code used by actor and world
- actor: WASM browser client for humans and bots
- world: world runtime/server
To keep scripting predictable across actor/world/core layers, this repo uses:
method: command/action token (for exampleshow,apply,invite)attribute: dotted member on a target (for exampleavatar.name)path: dotted nested selector (for exampledocument.ma.transports)
verb is reserved for natural-language interpretation layers and should not be used as the primary name for scripted dotted command segments.
Prerequisites:
- Rust toolchain
- wasm-pack
- Python 3
- Kubo/IPFS running locally at
http://127.0.0.1:5001
From this directory (ma-realms):
make check
make devmake dev will:
- build core, actor, and world
- generate the current actor web CID
- start world in dev mode with that CID wired in
From the parent repo root, use:
make -C ma-realms devmake help
make core-build
make actor-build
make world-build
make actor-cid
make clean
make distcleanCross-platform release builds for ma-world live in:
Targets include Linux, macOS, and Windows artifacts.
If you enjoy actor systems, decentralized identity, and world-building, this is made for tinkering.
Clone it, run it, fork it, build a strange world with it.