ISAC-Sim

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 EntryPurposeBrowserNode.jsStability
symbion/coreSpaces, objectives, constraints, runner, logging, reproducibility primitivesStable
symbion/modelsPhysics/model layer: channel/beamforming/PHY + robotics/planning/sensing helpersStable / evolving
symbion/isacISAC coupling layer: metric templates + planners linking comm metrics and mobilityStable
symbion/aiFramework-agnostic AI interface (typed spaces + WebSocket protocol/transport)Stable
symbion/tasksReference research environments (U2U-MCS, ISAC Trajectory) + benchmark scripts❌*Stable (Research)
symbion/extrasExperimental 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 tasks benchmarks, 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)