A virtual Bluetooth stack, running in this tab
SimBLE is a pure-Rust Bluetooth LE host stack whose devices are short Rhai scripts. These demos run the real stack — HCI, L2CAP, ATT/GATT, SMP — compiled to WebAssembly, right in your browser.
Most pages need no netsim and no install: a built-in in-browser controller
hosts a whole scene of devices in the tab. Switch a page's Controller to netsim
to join a real netsim scene — and the Android emulator — when you want radio-level fidelity.
The demos below are a guided tour; the tabs above jump straight to any of them.
The browser is one of three surfaces. The same stack is a Rust library and the
simble CLI for tests and CI — and a SimBLE MCP server, the agent-first way in,
where an AI agent builds and tests devices as tool calls with no checkout and no build step.
See SimBLE MCP.
Build a device
Playground build
A free-form Rhai editor — the script is the device. Run it, watch the live GATT viewer, generate one with AI, and Share a link that encodes your script.
API Explorer learn
Fill in an android::* method, press Execute, and it emits one line of Rhai against a
live session — learning the API as you build a device click by click.
Scene creator build
Assemble a whole scene on one Link — add scripted servers, scanners, and clients,
then click any device to inspect its GATT, reports, or discovered services.
Testing test
Add assert(...) and the same script is a test. Run it here for a deterministic
pass/fail — the identical script drops into CI via the simble CLI, unchanged.
Watch a device run
Observe & go multi-device
Scanner observe
Live decoded advertisements — names, RSSI, service UUIDs, manufacturer data. Runs in-browser with built-in advertisers, or joins a real netsim scene.
Shared Scene showcase
One Link in a SharedWorker, so every same-origin tab joins the same
radio scene — a scanner in one tab sees an advertiser added in another. No server.
Understand & extend
Controller ladder reference
What sits below the host stack — from the built-in sim::Link to
rootcanal-ws to full netsim — and when to choose each rung.
Android Emulator workflow guide
Develop and test a BLE app with no hardware: your app in the emulator, netsim as the radio, SimBLE as the simulated devices — and the Scene creator as the device manager.
SimBLE MCP agentic
The agent-first surface: simble mcp over stdio, so an AI agent builds, runs and
tests devices as tool calls — example hands it a working script, assert_over
turns "monitor HR < 200 for 5s" into one call.
Crate documentation reference
The full Rust API reference — every module, profile, and packet type, generated by
cargo doc.
New here? Open the Playground and the Scanner in two tabs, edit the device, press Run, and watch the scanner update — all in-browser, no setup. For the radio-level path, see the Emulator workflow. Source: github.com/schilit/simble.