Guide Overview
An open-source TypeScript library for reproducible Integrated Sensing and Communication (ISAC) research (Node.js + browser)
What Symbion Provides
Symbion is an open-source TypeScript library for reproducible end-to-end ISAC research. It supports a "simulation-as-code" workflow that combines:
- Communication & PHY utilities (channel models, beamforming helpers, modulation/coding building blocks)
- Mobility, planning, and robotics dynamics utilities (trajectory generation, kinematics/dynamics helpers)
- Research infrastructure (typed spaces, objectives/constraints, deterministic RNG, structured logging, experiment runner)
- Framework-agnostic AI agent integration via a stable WebSocket protocol (for connecting external AI backends — Python, RL agents, LLMs, etc.)
- Two reference tasks/benchmarks:
- U2U-MCS: 5G NR sidelink dynamic MCS selection (UAV-to-UAV)
- ISAC Trajectory: UAV trajectory optimization with LoS persistence and URLLC-style constraints
Note: Symbion is designed to complement (not replace) large-scale network/PHY simulators. Its core focus is portability + reproducibility + end-to-end ISAC workflows.
Modules at a Glance
| Package Entry | Purpose | Browser | Node.js | Stability |
|---|---|---|---|---|
symbion/core | Spaces, objectives, constraints, runner, logging, reproducibility primitives | ✅ | ✅ | Stable |
symbion/models | Physics/model layer: channel/beamforming/PHY + robotics/planning/sensing helpers | ✅ | ✅ | Stable / evolving |
symbion/isac | ISAC coupling layer: metric templates + planners linking comm metrics and mobility | ✅ | ✅ | Stable |
symbion/ai | Framework-agnostic AI interface (typed spaces + WebSocket protocol/transport) | ✅ | ✅ | Stable |
symbion/tasks | Reference research environments (U2U-MCS, ISAC Trajectory) + benchmark scripts | ❌* | ✅ | Stable (Research) |
symbion/extras | Experimental networking + advanced coding re-exports + sandbox utilities | ✅ | ✅ | ⚠️ Experimental |
* tasks requires Node.js due to file I/O and CLI/benchmark workflows.
Reproducibility Features
Symbion’s core research infrastructure is designed for traceable experiments:
- Seeded RNG for deterministic stochasticity
- Schema hashing for input/output space compatibility auditing
- Task configuration fingerprints for tracking configuration changes
- Structured logs (JSONL/CSV) for step/episode/report-level analysis
AI Agent Integration
Symbion provides an AI interface module that uses a versioned JSON WebSocket protocol plus multiple transports (browser, Node, in-memory). This keeps the simulator decoupled from any specific AI/ML framework while supporting iterative interaction loops via a standardized step/reset pattern.
Browser vs Node.js Usage
Symbion is designed to run in both modern browsers and Node.js:
- Browser: use Symbion for models/visual demos/interactive education without proprietary toolchains.
- Node.js: use the full stack including
tasksbenchmarks, file-based logging, and CLI workflows.
Modern bundlers (Webpack, Vite, esbuild, etc.) automatically select the correct entry point based on your build target:
// Same import works in both environments:
// - Browser builds → dist/browser.mjs (excludes Node-only 'tasks')
// - Node.js builds → dist/node.mjs (full functionality)
import { channel, planning, isac } from 'symbion';Documentation Navigation
- Installation — Get started with Symbion installation and setup
- Quick Start — Step-by-step introduction to core concepts
- Module Guides — Detailed guides for each module (AI, ISAC, Core, Models, Extras)
- API Reference — Complete API documentation for all modules
- Examples — Interactive experiments demonstrating Symbion capabilities
Version
Symbion Library v1.0.0 (Initial Release)