Synaplan
기업을 위한 오픈소스 AI 플랫폼
소규모 행사의 실시간 운영 시뮬레이터, 계획에 퍼지는 혼란을 NVIDIA Nemotron과 Nebius 제약 해결기로 복구
A live operations simulator for small events: watch a disruption ripple through the plan, then rescue it with NVIDIA Nemotron on Nebius and a constraint solver that checks every fix.
비즈니스Python · TypeScriptGitHub @martiaaguilera온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기See the chain reaction. Fix the day. A live-event disruption simulator: NVIDIA Nemotron on Nebius Token Factory proposes fixes, a CP-SAT verifier proves them.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗See the chain reaction. Fix the day. Built at the Nebius × NVIDIA Global AI Hackathon 2026, track Best Apps and Agents.
When one thing goes wrong at a live event, Ripple Room shows everything it affects and helps you find a recovery plan you can trust. NVIDIA Nemotron on Nebius Token Factory proposes, an OR-Tools CP-SAT verifier checks, and a human approves.
| Who | Does | Cannot |
|---|---|---|
| NVIDIA Nemotron 3 Super on Nebius Token Factory | reads the situation through tools, proposes typed fixes, revises after a rejection | change the plan, or call a fix "verified" |
| OR-Tools CP-SAT + an independent validator | decides whether a fix holds, and explains why not | be overruled: a timeout is "unknown", never green |
| You | set priorities, compare verified options, approve one or none | nothing changes until you approve |
Event coordinators run a day on one fixed opening time and many jobs that depend on each other. When a truck is late or a technician is out, they must work out quickly what else slips and what to change, usually from a spreadsheet that does not show the knock-on effects. Ripple Room shows the chain reaction, suggests fixes, and only offers a fix after a solver has checked that it really works. The coordinator stays in charge: nothing changes until they approve, and they get a list of who to tell.
Browser ──▶ FastAPI (stateless; client holds content-hashed revisions)
├─ impact: do-nothing propagation, causal waves, slack, driving path
├─ interpret: free text → typed incidents + priorities (Nemotron, one forced tool call) → human confirms
├─ recover (SSE): bounded agent loop ───▶ Nebius Token Factory ─▶ nvidia/nemotron-3-super-120b-a12b
│ tools: get_situation · inspect_task · list_interventions · evaluate_patch · submit_options
│ every proposal ─▶ verifier: patch checks → CP-SAT → independent validator → explanation
├─ playbook search (deterministic, labelled "no AI") and verified alternatives in the same pool
└─ apply: re-verifies from scratch; stale revision → 409; change notice
Claude Code was the development tool. At runtime the only AI is NVIDIA Nemotron served by Nebius Token Factory.
| Agent v2 | Agent v4 | Playbook search | Greedy | |
|---|---|---|---|---|
| Verified recovery found when one exists | 16/17 | 16/17 | 15/17 | 15/17 |
| Honest "none" when none exists | 3/3 | 3/3 | 3/3 | 3/3 |
| Options failing independent re-validation | 0 | 0 | 0 | 0 |
| Best option equals the exhaustive oracle's | 9/17 | 7/17 | 8/17 | 6/17 |
| Median latency | 19.5 s | 18.4 s | 0.08 s | 0.11 s |
| Cost of the 20 runs (list price) | $0.24 | $0.22 | 0 | 0 |
What this does and does not show:
docs/evaluation/CASES-c19-c09.md.docs/evaluation/. The current agent (hybrid, prompt v7) has not yet been measured live.An axe gate (WCAG 2.0/2.1/2.2 A and AA) runs on five journey states on desktop and mobile. Every control must be keyboard-reachable and named, and a keyboard-only journey test applies and undoes a recovery. Status is always written in words, not colour alone. Animations follow the system's reduced-motion setting, and the "Play animations" button under the venue scene opts back in.
Prerequisites: Python 3.13 with uv, Node 24.
cd services/api && uv sync && uv run uvicorn app.main:app --port 8000 # mock agent by default
cd apps/web && npm ci && NEXT_PUBLIC_API_BASE=http://localhost:8000 npm run dev # http://localhost:3000
Mock mode is labelled "simulated" in the UI. Live mode: copy .env.example to services/api/.env, set
AI_MODE=live and NEBIUS_API_KEY, then uv run python ../../scripts/smoke_nebius.py --probe. Spend
controls and the kill switch are in docs/operations.md.
cd services/api && uv run pytest -q && uv run ruff check . && uv run mypy app
cd apps/web && npm run typecheck && npm run lint && npm test && npm run build && npm run e2e # desktop, mobile, Firefox
uv run python scripts/check_judge_demo.py https://ripple-room-five.vercel.app # production judge path (makes live calls)
services/api/app/domain scheduling domain · app/solver CP-SAT, verifier, playbook search, greedy ·
app/agent tools, prompts, loop, interpretation · app/providers Nebius adapter + labelled mock ·
app/evaluation 20-case harness · apps/web Next.js app · docs/ architecture, decisions,
evaluation, operations, journal, feedback.
MIT. See LICENSE.