one taba room of peersthe mesh
Fungal compute swarm

MycoSwarm

One browser tab is a node. Nodes find each other, split work between them and check each other's answers, so a network can grow the way a fungus does: from one sprout, by branching, with nobody planting it.

14 packages · 8 protocol layers · TypeScript · MIT

Mesh · 01

A single node

Anyone with a browser is a node. There is no installer, no account and no daemon: opening a page is joining, and closing it is leaving.

That is why the design looks the way it does. A network whose members arrive and vanish at any moment cannot be built on machines you control, so everything that would normally be infrastructure has to survive being absent — including the machines themselves.

wasm-executor · client · core

Mesh · 02

Nodes finding each other

A node alone computes nothing. A stateless signalling service introduces two peers over a socket, and after that they speak directly over WebRTC data channels.

The shape of the connections changes with the size of the mesh. Everyone connected to everyone is optimal and does not scale; a bounded set of neighbours scales and costs a little latency.

full mesh O(n²) · sparse mesh, 6 neighbours by consistent hashing · hybrid switches at 10 nodes

Mesh · 03

Work splits and spreads

A job is split fractally until the pieces fit the nodes that happen to be awake, and each piece is handed to more than one of them, so a wrong answer or a node that silently disappears cannot pass unnoticed.

Redundancy is a probability rather than a promise. The network sets how many copies a result needs and lets the arithmetic decide, which keeps verification cheaper than recomputation.

task-distribution · redundancy, Poisson guarantees · signal-transduction

Mesh · 04

Routing across the mesh

Every node benchmarks itself and turns that benchmark into a Bio-score, and the network sends work down the connections that have proved themselves while the rest thin out.

Between 15 and 30 per cent of direct connections fail against symmetric NAT, corporate firewalls and carrier-grade NAT. A design that promised no central infrastructure cannot answer that with a central relay, so the strongest nodes carry their neighbours' traffic instead.

resource-scoring · zk-integrity · homomorphic · relays by score, bandwidth and load: 3 concurrent, 5 Mbps

Mesh · 05

How large this could grow

A node is a browser tab, so the ceiling is not a machine you buy. The figures below describe a mesh of 8,412 nodes at roughly 14.7 GFLOPS each — what a mid-range laptop or recent phone yields through WebAssembly — which is where 124 TFLOPS comes from.

TermFigureWhere it comes from
nodes8,412The population the estimate assumes
per node~14.7 GFLOPSA mid-range laptop or recent phone, in a WebAssembly worker
gross~124 TFLOPSThe product of the two above
redundancy÷ kEach task runs on more than one node
verificationthe real limitChecking results and moving bytes binds before multiplication does

a projection, not a measurement · no mesh of this size has been run · fragile terms: churn, and the 15–30% needing a relay

Mesh · 06

What exists now

Eight protocol layers, from the mycelial mesh at the bottom to the application at the top; fourteen packages, one per concern.

  1. Mycelial mesh WebRTC, signalling, NAT traversal
  2. Signal transduction gossip, status events
  3. Resource & discovery Bio-score, capability advertisement
  4. Task distribution fractal split, assignment, redundancy
  5. Integrity & privacy zk-SNARK verification, homomorphic
  6. Incentive & token micropayments, staking, rewards
  7. Consensus priority voting, conflict resolution
  8. Application task submission, result collection

a planned build, not a running network · the numbers on this page are parameters, not telemetry

git clone https://github.com/KELLERBABG/MycoSwarm
cd MycoSwarm
pnpm install && pnpm build
pnpm test          # vitest, across the workspace

and this is the whole point: it should be able to grow this far without anyone planting it.