A browser-only simulation of a Meccanoid G15-style two-wheeled robot. Everything on this Space runs in your browser: a three.js arena, a simulated chest camera and microphone, and a set of experimental controllers you can switch between and compare.
Simulation only. No physical robot, camera, microphone, Bluetooth link or motor is connected. The body is a kinematic model with nominal dimensions, not a measured digital twin.
results/benchmark.json).results/ state
what each one does and does not show.server.cjs) that ran on the
original host. It is disabled and labelled "only on the self-hosted deployment".
Replay chat test still works, because it plays recorded simulator states.human-connectome/server.py in
the source repository). It is disabled here.Licensing. This Space is MIT except where noted (LICENSE). The Human Cortex component is
GPL-3.0-or-later, and the full GPL text sits next to it: human-cortex/LICENSE and
js/human-controller.LICENSE.txt for js/human-controller.js. Third-party code, models and data
keep their own licences; see THIRD_PARTY_NOTICES.md:
Live site: https://codex.opentransformers.online/meshdirect/releases/meccanoid-20260921/
An actual browser-rendered, simulation-only Meccanoid G15 experiment. It has a full FlyBrain spiking-network condition, explicit ablation controls, a deliberately simple reactive baseline, manual wheel control, and a shared room controlled through private SG MCP tools. The website provides a rendered chest-camera view, an arena overview, a close-up, telemetry, event logs and labelled replay.
No physical camera, Bluetooth connection, microphone or motor is opened by the robot simulation. No AGILLM training process was changed and no paid compute was provisioned.
From the root of the source repository (GitHub release), run:
python3 -m http.server 8000 --bind 127.0.0.1 --directory site
Open http://127.0.0.1:8000/ in a WebGL2/Web Worker capable browser. Do not open index.html as a file URL. This runs local simulation without an API key. The live chat tab needs the deployed shared service; it is not a promise that the remote chat connection works offline. The included recorded replay works locally.
With Node.js:
node --expose-gc tests/benchmark.cjs
This runs the same full LIF worker as the browser, not a smaller substitute circuit. The report contains 20 passing assertions and 18 trials: six conditions, three deterministic starting positions, 800 neural/body ticks each. A connected run was repeated and produced the identical state/output trace. Timings were measured on the GETH CPU, not on a phone or the physical robot.
Measured results are in results/benchmark.json and per-tick samples in results/neural-traces.json.
The connected gain-50 condition moved 1.57, 2.78 and 2.75 nominal metres but reached the target in 0/3 starts. Original gain 1, disconnected recurrent edges, silenced descending neurons and disconnected inputs each produced zero movement in the tested regime. The naive reactive baseline also failed to reach the target in these three starts; it is a weak comparator, not a validated navigation stack.
Upstream source: https://github.com/snedea/flybrain
Pinned upstream commit: 9191824d17871b7851645782d53d23f213ddb938.
The graph contains 139,255 simplified LIF neurons and 2,698,236 signed weighted edges. Exact anatomical descending pools contain 647 left, 650 right and 8 centre neurons. The worker and mapping were reused from the previous 14 September FlyBrain experiment. MIT attribution is retained in UPSTREAM-LICENSE.md.
Synthetic left/right beacon signals, contact and tonic inputs drive coarse annotated sensory pools. These pools are disjoint from the descending readout pools. The controller does not receive raw rendered RGB camera pixels. The camera view is a separate observation channel available to the assistant and user.
The decoder reads only descending-neuron firing. It does not read target coordinates or obstacle positions. It filters left/right activity and converts it to a forward velocity and differential wheel velocity. The moving condition uses recurrent gain 50. That gain and the sensory/body mappings are engineering choices, not biological calibration. Original gain 1 remains selectable.
One neural tick is mapped to 0.05 nominal simulator seconds. This is an arbitrary engineering time mapping, not a measured physiological timestep. Distances and velocities are nominal scene units labelled in metres; no physical motor speed was calibrated.
This is a planar differential-drive kinematic model with circle-to-box collision checks. It is not a complete measured digital twin, rigid-body dynamics model, balance controller or grasping simulator. Wheel radius, track width, collision radius, joint axes and camera placement are illustrative. There is no slip, torque, battery or floor-friction model. Collision prevents translation; it does not magically reflect the heading or steer to the goal. The robot rolls rather than lifting its feet.
The parametric 3D model is intended to make the robot, four arm joints and camera intelligible. The chest-camera and arena screenshots are rendered with Three.js from the same immutable recorded pose and tick. They are not image-generated demonstrations or pre-scripted trajectories.
Backend name on SG1 and SG2: meccanoid-sim.
Core tools:
meccanoid_status: pose, current motor state, collision data and events.meccanoid_observe: fresh observation ID plus telemetry; optionally actual camera/arena screenshots. A camera image is returned as MCP image content, not just a URL.meccanoid_act: bounded drive, arm pose or stop. Drive commands last at most 2 seconds and speeds cannot exceed 0.35 nominal metres/second.meccanoid_reset: reset only this simulated room.meccanoid_export: save explicitly labelled recorded replay evidence.The observer's ID is valid for at most 180 seconds and only while the room revision remains unchanged. A stale observation is rejected. Each mutation has an idempotent request ID. A completed request must not repeat the motion when retried. Invalid parameters fail rather than being translated to arbitrary hardware commands. Stop does not require an observation. Motion expiry zeros wheel commands even if the next chat message never arrives. Service restart starts stopped and never resumes a pending movement.
Commands use the existing private SG connection. The public spectator is read-only. The service has no physical actuation or arbitrary shell execution tool. The private mesh service is distinct from the public static release path.
The successful independently verified chat-navigation replay travelled 3.81 nominal metres, reached within 0.2581 m of the target, and recorded zero collisions. It used rendered observations and simulator telemetry. This is not a camera-only general-navigation benchmark. Its motion time was 14.95 nominal seconds; actual chat/tool/observation wall time was much longer. One successful route is not evidence of reliable navigation in arbitrary rooms.
A separate lead-assistant visual test inspected real rendered frames, turned and drove 1.295 m through a gap without collisions. That route was interrupted by a service update and is not counted as a second successful navigation run. The saved successful independent replay remains available separately.
An independently contributed tiny transformer and local audio tools may be included in the source tree. Their own reports and interface labels state their status. The tiny controller is map-informed demonstration imitation, not a general language model or camera-only policy. The robot simulation never starts microphone capture automatically. Generated speech or synthetic audio-loop tests must not be described as hearing a real person or playing a physical robot speaker.
The published report links neural trials, browser checks and recorded chat evidence. The browser tests use Playwright Chromium because a direct Browser/IAB tool is not exposed in the builder session. They exercise desktop/mobile views, actual neural movement and interventions, pause/reset/manual timeout, backend-to-frontend pose agreement and replay labels. Saved screenshots are actual browser captures.
The isolated service runs as an unprivileged meccanoid-sim user with bounded CPU/RAM and read-only code. Only simulation state, observations and results are writable. Existing training, laptop controls, nginx authentication and firewall configuration were not modified.