An open metaverse for anything you can automate

If you can automate it, give it a twin.

MetaTwinMaker is an open platform for digital twins of physical things, and the metaverse they live in. A robot vacuum, a self-driving car, a chicken coop, a beehive, the sprinklers on your lawn: if sensors can read it and rules can run it, its twin tracks every variable and shows you every decision. Run a season of your rules on the twin, judge them by what they produce (more eggs, more honey, a greener lawn), then trust them with the real thing.

Run a coop What can I twin?

A house of robots, a garden on rules, and their twins Above the horizon, a house where a robot vacuum cleans under the sofa, a helper robot carries a tray and a robot arm stirs a pan, with a self-driving car in the drive and a delivery drone overhead. In the garden, a sprinkler waters the lawn, a hen wanders outside her coop and bees circle a hive. Below the horizon, the same scene mirrored as a glowing wireframe on a grid: their digital twins, moving in step, with the garden's readings and results (soil moisture, eggs laid today, honey so far) written beside them. home.world vacuum helper arm car drone soil: 24% eggs today: 5 honey: 18.2 kg home.world vacuum helper arm car drone soil: 24% eggs today: 5 honey: 18.2 kg Real world Metaverse
Up top, a house of robots and a garden run on rules. Below the line, their twins, moving in step and keeping the numbers.

Twin anything

Things that move, and things that just need looking after.

Any process with something to measure and a decision to make can have a twin: a machine on a line, or a hive in the garden. Some of these you can play with today; the rest are on the drawing board, and we'd love your help building them.

  • Try it below

    Chicken coops

    Outcome More eggs, every hen home

    Daylight, hens on the roost, the temperature outside. The door closes at dusk, but never on a hen that's still out.

  • Try it below

    Beehives

    Outcome More honey, fewer swarms lost

    Weigh the hive, listen to the hum, feel the brood warmth. A sudden drop in weight means a swarm, and the twin tells you before the neighbours do.

  • Try it below

    Lawn sprinklers

    Outcome A greener lawn on less water

    Soil moisture, rain forecast, the sun on each zone. Water only what's thirsty, and see why it skipped Tuesday.

  • Try it below

    Workshops

    Outcome Soles that hold, leather that never runs out

    A shoemaker's bench: the air, the stock, the order book. Glue when it will hold, stitch when it won't, and order hides before the last one is cut.

  • Try it below

    Home robots

    Outcome Clean floors, nobody stuck under the sofa

    The vacuum, the mop, the mower, the window-washer. Their twins learn where the sofa is before the real ones find out the hard way.

  • Drawing board

    Robot fleets

    Outcome Every chore done, no collisions

    A crew of house bots, one job each. Choreograph them in the twin so the mop never chases the vacuum into the same doorway.

  • Drawing board

    Self-driving cars

    Outcome Safe miles

    Drive a thousand laps before breakfast. Throw rain, potholes and a runaway football at the twin, not at the car.

  • Drawing board

    Drones

    Outcome Parcels landed, batteries home

    Plan the route, rehearse the landing in a crosswind, and crash a few times for free.

  • Live now

    Robot arms

    Outcome Every part in the tray

    Six joints and a moving belt. Teach the pick on the twin, then watch every part land in the tray.

  • Live now

    Machines and whole lines

    Outcome More good parts, less downtime

    Servo axes, presses, mills, lathes, cranes and a whole packaging line, running today in the motion lab. Or try a conveyor sorting parts below.

What's in a twin

A twin isn't a picture of the thing. It is the thing, minus the hardware.

  1. Looks like it

    A 3D model of the real thing with every part that matters named: the joints that move, the door that shuts, the valve that opens.

  2. Knows what it knows

    Every sensor is a variable you can see: position, light, weight, moisture, temperature. Nothing is decided on a number you can't look at.

  3. Behaves like it

    Real physics, and the weird stuff too: jams, drift, dead sensors, a hen that won't come in. The twin is only useful if it surprises you the way the real thing does.

Rules you can see

Every variable tracked. Every decision explained.

Automation is only fun when you trust it. In the metaverse, the rules are written down where you can read them, and every decision comes with the rule that made it and the numbers it was made on. Try it on a chicken coop, a beehive, the lawn sprinklers, a shoemaker's workshop, a robot vacuum or a conveyor sorting parts: change the conditions, watch the twin decide, and walk around it in 3D.

Variables

Rules

  • Lights outWaiting

    When daylight is under 20 lux and all 6 hens are on the roost, then close the door.

    Now: daylight 120 lux is not under 20.

  • Wait for stragglersWaiting

    When daylight is under 20 lux and a hen is still outside, then keep the door open and send an alert.

    Now: daylight 120 lux is not under 20.

  • Good morningFiring

    When daylight is over 50 lux, then open the door.

    Now: daylight 120 lux is over 50.

  • Warm roostWaiting

    When it is under 2 °C outside (off again over 5 °C), then switch the heat lamp on.

    Now: 8 °C is over 5.

Decision

DoorOpen

Heat lampOff

No alerts.

Record

{
  "schema": "metatwinmaker.coop.decision/1",
  "source": "twin",
  "inputs": {
    "lux": 120,
    "hens": 2,
    "tempC": 8
  },
  "function": "coop.rules@1",
  "output": {
    "door": "open",
    "lamp": false,
    "alerts": []
  },
  "fired": [
    "good-morning"
  ]
}

Log

  1. Nothing has changed yet. Try dusk: drag the daylight down.
Variables

Rules

  • Swarm watchWaiting

    When the hum climbs over 350 Hz, then alert the beekeeper to split the hive.

    Now: the hum is 240 Hz, not over 350.

  • Room to growWaiting

    When the hive weighs over 45 kg, then ask for another honey box.

    Now: the hive weighs 32 kg, not over 45.

  • Feed the colonyWaiting

    When the hive weighs under 20 kg (off again over 24 kg), then open the feeder.

    Now: 32 kg is over 24.

  • Keep the brood coolWaiting

    When it is over 36 °C inside (off again under 34 °C), then open the vent and run the fan.

    Now: 35 °C is between 34 and 36, so the vent stays shut.

Decision

Vent and fanOff

FeederShut

No alerts.

Record

{
  "schema": "metatwinmaker.hive.decision/1",
  "source": "twin",
  "inputs": {
    "humHz": 240,
    "weightKg": 32,
    "insideC": 35
  },
  "function": "hive.rules@1",
  "output": {
    "vent": false,
    "feeder": false,
    "alerts": []
  },
  "fired": []
}

Log

  1. Nothing has changed yet. Try a swarm: drag the hum up.
Variables

Rules

  • Water when dryWaiting

    When the soil is under 25% moisture (until it is over 35%), then run the sprinklers.

    Now: the soil at 30% is between 25 and 35, so the lawn stays watered.

  • Skip for rainWaiting

    When over 5 mm of rain is forecast, then hold the water and let the rain do it.

    Now: 0 mm of rain is forecast, not over 5.

  • Wait for the windWaiting

    When the wind is over 25 km/h, then hold the water so it doesn't blow onto the path.

    Now: the wind is 8 km/h, not over 25.

  • Soggy soilWaiting

    When the soil is over 50% moisture, then alert the gardener to check for a leak.

    Now: the soil at 30% is not over 50.

Decision

SprinklersOff

LawnWatered

No alerts.

Record

{
  "schema": "metatwinmaker.lawn.decision/1",
  "source": "twin",
  "inputs": {
    "soilPct": 30,
    "rainMm": 0,
    "windKmh": 8
  },
  "function": "lawn.rules@1",
  "output": {
    "valve": false,
    "thirsty": false,
    "alerts": []
  },
  "fired": []
}

Log

  1. Nothing has changed yet. Try a dry spell: drag the soil moisture down.
Variables

Rules

  • Dry air for the glueWaiting

    When the workshop is over 65% humidity (off again under 55%), then run the dehumidifier.

    Now: the workshop is at 50%, under 55.

  • Glue only when it will holdWaiting

    When the workshop is over 75% humidity, then stitch uppers instead of gluing soles.

    Now: the workshop is at 50%, not over 75.

  • Reorder leatherWaiting

    When under 3 m² of leather is left (until over 5 m² is in), then order more hides.

    Now: 6 m² is in stock, over 5.

  • Busy weekWaiting

    When more than 12 pairs are waiting, then alert the shoemaker to quote later dates.

    Now: 5 pairs are waiting, not more than 12.

Decision

DehumidifierOff

At the benchGluing soles

Leather orderNone

No alerts.

Record

{
  "schema": "metatwinmaker.shoes.decision/1",
  "source": "twin",
  "inputs": {
    "humidityPct": 50,
    "leatherM2": 6,
    "pairs": 5
  },
  "function": "shoes.rules@1",
  "output": {
    "dehumidifier": false,
    "task": "glue",
    "ordered": false,
    "alerts": []
  },
  "fired": []
}

Log

  1. Nothing has changed yet. Try a damp day: drag the humidity up.
Variables

Rules

  • Clean when dirtyWaiting

    When the floor is over 40% dirty (until it is under 15%), then go out and vacuum.

    Now: the floor is 25% dirty, between 15 and 40, so the robot stays put.

  • Charge when lowWaiting

    When the battery is under 20% (until it is charged over 80%), then go back to the dock and charge.

    Now: the battery is at 90%, over 80.

  • Empty the binWaiting

    When the bin is over 85% full, then stop and ask for it to be emptied.

    Now: the bin is 30% full, not over 85.

  • Deep cleanWaiting

    When the floor is over 70% dirty, then turn the suction up to turbo.

    Now: the floor is 25% dirty, not over 70.

Decision

RobotOn the dock

SuctionOff

No alerts.

Record

{
  "schema": "metatwinmaker.vacuum.decision/1",
  "source": "twin",
  "inputs": {
    "batteryPct": 90,
    "binPct": 30,
    "dirtPct": 25
  },
  "function": "vacuum.rules@1",
  "output": {
    "activity": "docked",
    "turbo": false,
    "alerts": []
  },
  "fired": []
}

Log

  1. Nothing has changed yet. Try a muddy day: drag the dirt up.
Variables

Rules

  • Keep paceWaiting

    When over 40 parts a minute are coming in (until under 25), then run the belt fast.

    Now: 20 parts a minute are coming in, under 25.

  • Sort trueWaiting

    When over 8% of parts are bad, then keep the belt at normal speed, so the pusher hits every bad part.

    Now: 3% of parts are bad, not over 8.

  • Hold a bad batchWaiting

    When over 15% of parts are bad (until under 8%), then stop the line and call quality.

    Now: 3% of parts are bad, under 8.

  • Spare reject binWaiting

    When the reject bin is over 85% full, then send rejects to the spare bin and ask for it to be emptied.

    Now: the reject bin is 30% full, not over 85.

Decision

BeltNormal

Rejects toReject bin

No alerts.

Record

{
  "schema": "metatwinmaker.sorter.decision/1",
  "source": "twin",
  "inputs": {
    "partsPerMin": 20,
    "badPct": 3,
    "rejectBinPct": 30
  },
  "function": "sorter.rules@1",
  "output": {
    "belt": "normal",
    "rejectsTo": "reject",
    "alerts": []
  },
  "fired": []
}

Log

  1. Nothing has changed yet. Try a rush: drag the parts coming in up.

Outcomes

Automation is the means. More eggs, more honey, a greener lawn, shoes on time, a clean floor and good parts out the door are the point.

Closing a door at dusk is an action; a full egg basket and every hen home safe is the outcome. A twin runs a whole season of your rules before you live it, on the same weather as doing it the old way, so you can judge the rules by what they produce.

A timer and a calendar The twin's rules

Season 1

The coop, twelve winter weeks

+48 eggs collected (+21%)

The door waits for stragglers and shuts at dusk, the lamp keeps the roost off the cold, so the hens keep laying and the fox finds nobody outside.

  • Eggs collected

    225 273
  • Hens home at the end

    5 of 6 6 of 6
  • Nights shut outside fewer is better

    10 0
  • Cold nights on the roost fewer is better

    29 0
  • Heat lamp hours the price of the rules

    0 h 924 h

The hive, spring to autumn

+18.3 kg honey harvested (+68%)

The hive's weight and hum flag swarm preparations in time to split it, its weight says when to add the next box, and low stores say when to feed.

  • Honey harvested

    26.8 kg 45.1 kg
  • Swarms lost fewer is better

    2 0
  • Colony strength at the end

    90% 99%

The lawn, sixteen summer weeks

−9,800 L water used (−22%)

The soil probe says when the lawn is thirsty, the forecast says when rain will do it instead, and the wind says when to wait, so it stays green on less water.

  • Water used less is better

    44,800 L 35,000 L
  • Days the lawn was green

    94 of 112 109 of 112
  • Days parched fewer is better

    13 2
  • Days waterlogged fewer is better

    5 1
  • Water blown onto the path less is better

    1,200 L 0 L

The workshop, twelve working weeks

+7 pairs delivered on time (+13%)

Soles are glued only when the air will let them hold, leather is ordered before the last hide is cut, and a full order book quotes honest dates, so pairs go out right and on time.

  • Pairs delivered on time

    52 59
  • Soles that lifted and came back fewer is better

    5 1
  • Pairs delivered late fewer is better

    3 0
  • Days without leather fewer is better

    1 0
  • Dehumidifier hours the price of the rules

    0 h 328 h

The robot vacuum, four weeks

+4 evenings with a clean floor (+27%)

It goes out when the floor is dirty rather than when the clock says, docks before it runs flat, and asks for its bin to be emptied instead of sweeping with it full.

  • Evenings with a clean floor

    15 of 28 19 of 28
  • Hours with a dirty floor fewer is better

    279 h 70 h
  • Times stranded with a flat battery fewer is better

    5 0
  • Hours swept with a full bin fewer is better

    27 h 0 h
  • Times asked to empty the bin the price of the rules

    0 6

The sorting line, a working week

−88 bad parts shipped (−43%)

The line holds itself the minute the camera sees a bad batch, slows down when bad parts are about so the pusher catches them, and switches bins before a full one jams it.

  • Bad parts shipped fewer is better

    207 119
  • Good parts sorted

    62,246 63,169
  • Bad parts made fewer is better

    4,133 3,210
  • Minutes jammed by a full reject bin fewer is better

    179 min 0 min
  • Minutes held for quality the price of the rules

    0 min 181 min

An illustrative model with plausible numbers, not a measured result: six hens, one hive, a 100 m² (1,100 sq ft) lawn, a one-person workshop, one robot vacuum and one sorting line, the same weather and the same luck for both runs, so the rules are the only difference. A twin's job is to run this on your own numbers.

Same shape, both worlds

Input, function, output. Identical in the metaverse and the real world.

A twin is an emulation: it runs the same function on the same inputs as the real controller, and writes its answer as the same JSON. Lay the two records side by side and the real world can be checked against the twin, field by field.

  1. Emulate

    The twin and the real coop get the same inputs and run the same rules.

  2. Verify

    Their outputs are compared field by field. A mismatch is a finding: a stuck door, a drifting sensor, a rule that changed.

  3. Classify

    Every record has the same shape, so a classifier trained on the twin's records reads the real ones without translation, and quickly puts a probability on each outcome.

Metaverse · source: "twin"
{
  "schema": "metatwinmaker.coop.decision/1",
  "source": "twin",
  "inputs": {
    "lux": 12,
    "hens": 6,
    "tempC": 1
  },
  "function": "coop.rules@1",
  "output": {
    "door": "closed",
    "lamp": true,
    "alerts": []
  },
  "fired": [
    "lights-out",
    "warm-roost"
  ]
}
Real world · source: "coop-01"
{
  "schema": "metatwinmaker.coop.decision/1",
  "source": "coop-01",
  "inputs": {
    "lux": 12,
    "hens": 6,
    "tempC": 1
  },
  "function": "coop.rules@1",
  "output": {
    "door": "open",
    "lamp": true,
    "alerts": []
  },
  "fired": [
    "lights-out",
    "warm-roost"
  ]
}

5 of 6 fields match

  • inputs.lux
  • inputs.hens
  • inputs.tempC
  • function
  • output.doortwin closed, coop open
  • output.lamp

Same inputs, same function, different output: the twin closed the door and the coop's didn't. That is a finding, not a mystery. Check the door motor.

What's the most likely cause?

From the mismatched record, a classifier ranks the causes by probability, so you check the likeliest first. The same goes for outcomes still to come: a swarm this week, a hen that won't come in, a bearing on its way out.

Example output, to show the shape of the answer.

  1. Door motor stalled81%
  2. Door position sensor faulty12%
  3. Something blocking the door5%
  4. Rules on the coop out of date2%

How it works

Build it. Sense it. Rule it. Break it. Reap it.

That's the whole game, and the twin is what makes the risky parts cheap. Nothing catches fire, no hen gets locked out, and the undo button always works.

  1. Build it

    Model the thing and name the parts that move, open, shut or switch.

  2. Sense it

    Give it the variables its real sensors read: light, weight, moisture, position.

  3. Rule it

    Write the rules in plain terms, or program it the way you'd program the real one.

  4. Break it

    A cold snap, a stuck valve, a hen who stays out late. Go on, we'll wait.

  5. Reap it

    Judge the rules by what they produce, and check the real thing against the twin.

An open platform

One metaverse, a lot of ways to play

Twins are useful for far more than one thing. Here's what people can do with them, and what we're building the platform for.

  • Learn

    Labs on machines you could never fit in a classroom, with progress and quizzes.

  • Test

    Try your code on the twin before it ever meets the hardware.

  • Play

    Challenges, races and puzzles where the physics is real and the stakes aren't.

  • Design

    Lay out a robot fleet or a factory floor and watch it run before you buy a thing.

  • Watch over

    Mirror the real coop, hive or line: every reading on its twin, every decision in its log.

  • Fix

    Reproduce a fault on the twin of the thing that has it, then try the fix.

Open by design

Every world publishes what it holds at /twins.json: each twin's 3D model and joints, its camera views, its troubleshooting scenarios and its tags, described by a JSON schema and readable from anywhere.

Tags come from a shared vocabulary, so twins from different worlds can be found and grouped together. This page is built from those catalogs, and your app can be too.

GET https://motion.metatwinmaker.com/twins.json

{
  "site": { "name": "MotionMeta", "parent": "https://metatwinmaker.com" },
  "twins": [
    {
      "id": "robot",
      "name": "Robot cell",
      "model": { "url": ".../models/robot.glb", "joints": […] },
      "scenarios": […],
      "classification": { "category": "robotics", … }
    },
    …
  ]
}

Worlds

Every field gets a world of its own

A world is a corner of the metaverse on its own subdomain, with the physics and the twins its field needs. metatwinmaker.com ties them all together. The first one is open.

Live · Motion control

MotionMeta

motion.metatwinmaker.com

Logix integrated motion: servo axes, coordinated motion, camming and gearing, robot and CNC control, taught on machines you can run, break and fix in the browser.

Lab hall. An 18 by 12 m lab hall with every twin at its own station; visitors walk it in first person and step up to a station to use it.

twins
13
motion concepts
27
fault scenarios
64

Walk the lab hallVisit MotionMeta

Your world next?

Home, garden, farm, road, sky…

Robot butlers, a greenhouse, an apiary, a self-driving go-kart, the model railway in the attic. Anything with something to measure and a rule to follow can have a world. Publish a twins.json and its twins show up on this page.

Play now

Twins you can play with today

Straight from the motion lab and running live in your browser. Pick one, drive it, then break it on purpose.

Filter by category

From the catalog at motion.metatwinmaker.com.

  • Motion trainerIntroductory

    Single-axis servo bench

    One servo axis driving a ballscrew carriage: tune it, move it, fault it and reset it.

    Axes: Axis

  • Process machineIntermediate

    Pouring cell

    A tilting ladle pouring copper into two indexing casting wheels, with gearbox faults to find.

    Axes: Ladle tilt, Wheel A, Wheel B · 10 scenarios

  • Motion trainerIntroductory

    Two-axis gantry

    An X–Y gantry running coordinated lines and arcs, with its path plotted as it goes.

    Axes: X, Y

  • Material handlingAdvanced

    Independent cart track

    Eight movers on a loop of linear motor segments, with a switch into a machine lane and an entry merge.

    Axes: Carts (eight), Switch · 7 scenarios

  • RoboticsAdvanced

    Robot cell

    A six-axis arm picking parts off a moving belt into a tray, programmed as Logix coordinated motion.

    Axes: J1–J6, Belt · 6 scenarios

  • IntralogisticsIntermediate

    Mobile robot fleet

    A mobile robot carrying trays across the hall from the robot cell to the cart track, under a fleet manager.

    Axes: Left and right wheels · 5 scenarios

  • IntralogisticsIntermediate

    Warehouse crane

    A miniload crane storing and retrieving totes in a two-rack aisle, with mast sway to settle.

    Axes: Travel, Hoist, Forks · 5 scenarios

  • AssemblyIntermediate

    Servo press station

    An electric press fitting pins into housings on a six-nest index table, judged by its force–depth curve.

    Axes: Press rod, Index table · 5 scenarios

  • Process machineAdvanced

    Filament winder

    A four-axis wet winder laying carbon fibre on a pressure vessel's liner, its axes cammed to the spindle.

    Axes: Spindle, Carriage, Cross-feed, Payout eye, Dancer feed · 5 scenarios

  • Machine toolAdvanced

    CNC mill

    An enclosed three-axis vertical mill running a part program as coordinated motion, cutting a block you can watch.

    Axes: X, Y, Z, Spindle, Carousel · 5 scenarios

  • Machine toolAdvanced

    Lathe

    A two-axis CNC turning centre turning a threaded pin from bar and measuring it against its drawing.

    Axes: Spindle, Z, X, Turret, Tailstock quill · 5 scenarios

  • RoboticsAdvanced

    Delta robot

    A pick-and-place delta robot picking products off a moving belt by camera and packing them into trays.

    Axes: J1–J3, J6, Conveyor · 6 scenarios

  • Production lineIntermediate

    Packaging line

    The lab's machines joined into one autonomous line, from the press that makes each product to the warehouse rack that stores it, in a room of its own.

    Axes: Press, Cart track, Delta robot, Case packer, Mobile robot, Warehouse crane · 5 scenarios · In the packaging line room

Go break something. (In the metaverse.)

The motion lab is open: robot arms, cranes, mills and a whole packaging line, all waiting for someone to push the wrong button.

Walk into the lab Take a lesson