{"slug": "i-used-jev-to-control-a-swarm-of-15-simulated-drones-in-real-time", "title": "I used Jev to control a swarm of 15 simulated drones in real time", "summary": "TypeSafe released an interactive multi-drone autonomy simulation in which its Jev System 1 reflex layer controls a configurable fleet of one to twenty simulated drones, with an optional System 2 planner powered by OpenRouter's GLM 5.3 model providing one-use strategic guidance when per-drone confidence falls below a set threshold. Jev continues steering while the System 2 planner responds asynchronously, and the simulation requires Node.js 22.13 or newer, starts with development mocks so it runs without provider credentials, and exports full mission telemetry as JSON. The Jev adapter calls POST https://api.typesafe.ai/v1/systemone with the jev-latest model and a typed choice over available flight actions, while the System 2 planner uses OpenRouter's chat completions API with strict structured output and can retry through a configured fallback model on server errors, rate limits, or context-size failures.", "body_md": "An interactive multi-drone autonomy simulation powered by [TypeSafe Jev](https://docs.typesafe.ai/), exploring a simple question: what happens when fast, typed System 1 reflexes can ask a slower System 2 reasoning model for advice without giving up control?\n\nThe fleet size is configurable from one to twenty drones. System 2 can be turned off entirely, making it easy to compare Jev operating independently against Jev augmented with strategic guidance.\n\nEach drone navigates independently with Jev as its System 1 reflex layer. When confidence falls below the configured threshold, an optional System 2 planner provides one-use strategic guidance through [OpenRouter](https://openrouter.ai/). Jev keeps steering while the planner responds.\n\n- A configurable fleet of one to twenty independently controlled drones\n- Moving asteroids, debris, unknown signals, and other drones treated as sensed contacts\n- A System 2 toggle for running Jev alone or enabling strategic advice\n- Per-drone decisions, confidence, latency, strategy revisions, and collision outcomes\n- Seeded scenarios for repeatable obstacle layouts\n- Canvas rendering separated from React telemetry and controls\n- JSON export for inspecting an entire mission after the run\n\nIf one drone collides, only that drone is removed. The remaining fleet continues toward the shared destination. Arrived drones leave the active flight lane.\n\n```\nReact dashboard\n├── experiment controls\n├── per-drone telemetry\n└── decision and latency charts\n\nCanvas simulation loop\n├── movement and collision detection\n├── sensors and action projections\n└── fleet rendering\n\nSystem 1 — TypeSafe Jev\n└── fast typed action decisions for every active drone\n\nSystem 2 — OpenRouter / GLM 5.3\n└── asynchronous one-use strategy advice when confidence is low\n```\n\nSystem 2 is advisory. It does not fly the drone directly, and Jev does not pause while waiting for it. The confidence chart uses purple only for a Jev decision that actually consumed returned System 2 guidance. The System 2 chart marks response arrival as a discrete event; wall-clock duration is shown separately in the latency chart.\n\nRequirements: Node.js 22.13 or newer.\n\n```\nnpm install\nnpm run dev\n```\n\nOpen the printed local URL. The app starts with development mocks, so it works without provider credentials.\n\nUseful checks:\n\n```\nnpx tsc --noEmit\nnpm run lint\nnpm run build\n```\n\nCopy the example configuration and add your own keys:\n\n```\ncp .dev.vars.example .dev.vars\nTYPESAFE_API_KEY=your_key\nOPENROUTER_API_KEY=your_key\nOPENROUTER_MODEL=z-ai/glm-5.3\n```\n\nRestart the development server, refresh provider status in the dashboard, and select TypeSafe Jev and OpenRouter. `.dev.vars` is ignored by Git; never expose these credentials through `NEXT_PUBLIC_` variables.\n\nThe Jev adapter calls `POST https://api.typesafe.ai/v1/systemone` with `jev-latest` and a typed choice over the available flight actions. The System 2 planner uses OpenRouter's chat completions API with strict structured output. Server errors, rate limits, and context-size failures can retry through the configured fallback model.\n\n1. Choose the fleet size and scenario.\n2. Turn System 2 advice on or off.\n3. Select mock or live providers.\n4. Adjust the confidence threshold.\n5. Launch the mission and switch between drones to inspect their decisions.\n6. Export the mission JSON for deeper analysis.\n\nThe scenario seed controls the obstacle layout, but live provider latency can still change a trajectory. A seed is repeatable geometry, not a deterministic asynchronous replay.\n\n- Green confidence: Jev made the decision using its current local context.\n- Purple confidence point: that Jev decision consumed newly returned System 2 guidance.\n- Purple System 2 bar: advisory response arrived at that mission time.\n- Red System 2 bar: advisory request failed.\n- Latency chart: measured wall-clock provider response time.\n\nExported telemetry includes the seed, fleet state, observations, probabilities, executed actions, confidence thresholds, provider timing, planner revisions, failures, and final outcomes.\n\nThis is an experimental autonomy visualization, not a production flight controller. The mock scenario and focused runtime checks cover the core simulation behavior. Live fleet success varies with model decisions, provider latency, seed, threshold, and fleet size.", "url": "https://wpnews.pro/news/i-used-jev-to-control-a-swarm-of-15-simulated-drones-in-real-time", "canonical_source": "https://github.com/khordoo/jev-reflex-autonomy-lab/tree/main", "published_at": "2026-09-18 20:19:34+00:00", "updated_at": "2026-09-18 20:24:54.131872+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "robotics", "ai-products"], "entities": ["TypeSafe", "Jev", "OpenRouter", "GLM 5.3", "Node.js", "React"], "alternates": {"html": "https://wpnews.pro/news/i-used-jev-to-control-a-swarm-of-15-simulated-drones-in-real-time", "markdown": "https://wpnews.pro/news/i-used-jev-to-control-a-swarm-of-15-simulated-drones-in-real-time.md", "text": "https://wpnews.pro/news/i-used-jev-to-control-a-swarm-of-15-simulated-drones-in-real-time.txt", "jsonld": "https://wpnews.pro/news/i-used-jev-to-control-a-swarm-of-15-simulated-drones-in-real-time.jsonld"}}