Built with 💻 by Team DOMinators
EmION is an authentic, research-grade Delay-Tolerant Networking (DTN) simulation framework. Unlike other simulators, EmION uses the real NASA-JPL ION-DTN C-engine and Contact Graph Routing (CGR) for 100% protocol authenticity — with a state-of-the-art visual dashboard and per-node ML module attachment.
| Feature | Description |
|---|---|
| Real ION-DTN | Uses the actual NASA-JPL ION C-engine — not a simulator |
| BPv7 + CGR | Full Bundle Protocol v7 with Contact Graph Routing |
| WLAN Mobility | Spatial distance-based wireless link management |
| XML Scenario Import | Load CORE GUI .xml scenarios directly |
| Scenario Briefing | Plain-English mission summary from any loaded scenario |
| Per-Node ML Modules | Attach anomaly detectors, BPSec signers to specific nodes |
| Auto-Feed Pipeline | Nodes automatically stream telemetry to attached modules |
| Visual Dashboard | Real-time canvas with node LEDs, bundle animation, HUD overlays |
| CFDP Support | Authentic file delivery over DTN |
| Platform | Support | Notes |
|---|---|---|
| Linux (Ubuntu/Debian) | ✅ Native | Recommended. Use install.sh |
| Windows (WSL2) | ✅ Supported | Ubuntu 22.04 on WSL2 |
| Docker | ✅ Containerized | Zero local setup |
| Windows (Native) | ❌ | Use WSL2 or Docker |
pip install "emion[dashboard]"git clone https://github.com/info-gallary/emion.git
cd emion
pip install -e ".[dashboard]"chmod +x install.sh && ./install.shemion dashboardOpen http://localhost:8420 in your browser.
emion info # ION system status
emion dashboard # Start the visual dashboardUpload any CORE .xml scenario directly in the dashboard:
- Open Scenario Engine in the sidebar
- Drag-and-drop your
.xmlfile (or click Browse Files) - A Scenario Briefing appears in the telemetry panel with a plain-English summary
- Click ▶ Start to begin the simulation
See examples/ion_mars/ for a sample scenario.
Attach ML inference modules (anomaly detectors, security analyzers) to specific nodes. The node automatically feeds all telemetry and bundle data to the attached module.
- Start your module (a FastAPI server with
/healthand/analyzeendpoints) - In the dashboard sidebar → ML MODULES
- Select a node → pick module type → enter the API URL → Attach
- Watch the canvas LED indicators (🟢/🟡/🔴) change in real-time
Your module must expose:
GET /health→{"status": "ok"}POST /analyze→ receives{"payload": ..., "metadata": {...}}, returns{"is_anomaly": bool, "score": float}
See examples/anomaly_detector/ for a reference implementation.
docker build -t emion .
docker run -p 8420:8420 emionemion/
├── emion/ # Core Python package (BPv7, CGR, Dashboard)
│ ├── core/ # ION engine, scenarios, WLAN mobility
│ ├── dashboard/ # FastAPI server + static UI
│ ├── plugins/ # Module base classes (APIPlugin)
│ └── pyion/ # C-extension bindings for ION
├── examples/ # User-facing research examples
│ ├── ion_mars/ # CORE XML scenario (5 WLAN nodes)
│ ├── anomaly_detector/ # Sample ML inference module
│ └── core_services/ # CORE integration scripts
├── scripts/ # Maintenance & developer utilities
├── docs/ # Coding guide & usage notebook
├── tests/ # Test suite
├── Dockerfile # Self-contained build
├── pyproject.toml # Package config (v0.4)
├── LICENSE # MIT
└── CONTRIBUTING.md # How to contribute
See CONTRIBUTING.md for guidelines.
MIT License — see LICENSE.
Authentic. Professional. Space-Ready. ⚛️
Built by Team DOMinators using the real NASA-JPL ION-DTN engine.