Vision: The ML-Agents of the JavaScript creative ecosystem. Train RL agents in the browser, deploy anywhere via ONNX.
Positioning: Outil technique (comme Three.js), pas produit SaaS. Open-source first. Monétisation via services complémentaires plus tard.
- Core: TrainingEnv/InferenceEnv interfaces, auto-config, IgnitionEnv with train/infer/stop/setSpeed
- Algos: DQN, PPO, Q-Table — with greedy mode for inference
- Infrastructure: pnpm monorepo, Zod validation, CI/CD,
ignitionaiumbrella package - ONNX: OnnxAgent, TF.js→ONNX exporter, HF Hub loader
- Storage: HuggingFace Hub provider
- Environments:
@ignitionai/environments— GridWorld, CartPole, MountainCar - Demos 2D: GridWorld, CartPole, MountainCar
- Demos 3D: CartPole 3D, Car Circuit (dense progress reward), Drone Navigation (rigid-body physics hero demo)
- 184+ tests passing
Everything needed to post "Show HN" without getting roasted. All done.
- Single-page site under
packages/web(Next.js 16 + Tailwind 4) - Hero: install command + "Train your first agent" messaging
- 7-line code snippet in Quickstart section
- 6-demo grid (GridWorld, CartPole, MountainCar, CartPole 3D, Car Circuit, Drone Navigation)
- IgnitionAI brand: flame GIF logo, indigo palette, custom SVG feature diagrams
- Real package install command (
@ignitionai/core+@ignitionai/backend-tfjs+@ignitionai/environments) - "Recent updates" section reading CHANGELOG.md at build time
- Deployed on Vercel at
ignitionai.dev
- Docs at
/docsvia Nextra 4, same Next.js deployment (single Vercel build) - Introduction + Quickstart (7-line CartPole, imports from
@ignitionai/environments) - Verbose algorithm pages (DQN, PPO, Q-Table) with source-cited defaults and failure-mode recipes
- "How it works" — one page per backend package with annotated source walkthroughs
- React Three Fiber page: why R3F-first + full training-loop/render-loop split
- 7 tutorials: GridWorld, CartPole observations, MountainCar reward shaping, CartPole 3D, Car Circuit, ONNX → Unity, Drone Navigation (physics + "IgnitionAI philosophy" section)
- Auto-generated sidebar via
_meta.jscontracts, dark-mode matches landing - 26 routes built statically (landing, /changelog, /docs/*, 6 demo SPAs)
- README rewritten for v0.1 with current API + all demos
- npm badges, license badge, test badge
- Flame GIF logo (IgnitionAI brand asset)
- Flame SVG favicon across all pages + demos (
app/icon.svg+public/favicon.svg) - Root metadata: title template "— IgnitionAI", real description
- Social card image for Twitter/OG
- Hero GIF of Car Circuit or Drone demo in README
- All 5 packages published at 0.1.0:
@ignitionai/core,@ignitionai/backend-tfjs,@ignitionai/backend-onnx,@ignitionai/storage,@ignitionai/environments - Docs updated post-publish: callouts removed, Quickstart uses
@ignitionai/environments - Tag
v0.1.0on GitHub
- 6 demos embedded as static routes under
/demos/<slug>/via prebuild pipeline - Each demo has
← IgnitionAIback link - Vite configs accept
DEMO_BASEenv var for per-route asset paths - Next.js rewrites resolve
/demos/:slug/to theirindex.html
-
packages/demo-drone-navigation— quadcopter with hand-rolled rigid-body physics (gravity, drag, asymmetric thrust torque, semi-implicit Euler at 50 Hz) - 8 discrete actions (hover/forward/back/left/right/yaw), DQN-compatible
- 13 normalized observations + dense reward (progress + anti-spin + capture bonus)
- Tuned defaults:
hiddenLayers: [64, 64],minEpsilon: 0.05,epsilonDecay: 0.998 - Chase camera, target sphere, grid ground, HUD
- Drone tutorial in docs with "Honest convergence expectations" section + "IgnitionAI philosophy" manifesto
-
/changelogpage rendered fromCHANGELOG.mdat build time (zero-dep Markdown parser) - Landing "Recent updates" section showing latest release highlights
-
CHANGELOG.mdupdated withv0.2.0-devcovering everything since v0.1.0 - Footer link to /changelog
- Replaced
+1 per on-track stepwith dense progress shaping (progressDelta × 300 + alignment + centerline)
backend-tfjs/src/defaults.ts:3-13disagrees withagents/dqn.ts:43ontargetUpdateFrequency(100 vs 1000). Docs cite the runtime value (1000). Cleanup commit needed.
Get the framework in front of the right people.
- Blog post: "How I built ML-Agents in JavaScript" (dev.to + personal blog)
- Twitter thread: video of Drone Navigation learning to fly + 7-line code + the philosophy quote
- Show HN: "IgnitionAI — Reinforcement Learning framework for JavaScript"
- Reddit r/reinforcementlearning + r/javascript + r/threejs + r/reactjs
- Product Hunt submission
- Discord server: community + support channel
- Social card image for Twitter/OG meta tags
- Hero GIF in README (Drone Navigation or Car Circuit)
- Track metrics: GitHub stars, npm downloads, demo page views
Classic games everyone recognizes. These get shared.
- Flappy Bird — AI masters Flappy in your browser
- Snake — the classic, with growing snake visible
- Dino Chrome — the offline Chrome game
- Each demo: standalone page at
/demos/<slug>/, deployed, shareable URL - Each demo: 60-sec video for Twitter
These are engineered for virality. "AI learns Flappy Bird in JavaScript" is a tweet magnet.
Continuous action spaces for real game AI.
- SAC (Soft Actor-Critic) — continuous actions (steering angle, throttle)
- A2C — lightweight alternative to PPO
- Upgrade Drone Navigation + Car Circuit to continuous steering with SAC — smoother control
- Benchmark: DQN vs PPO vs SAC on the same env
The next level of RL.
- Multi-agent API: multiple agents in the same environment
- Self-play: agent trains against past versions of itself
- Demo: Pong — two agents learning to beat each other
- Demo: Sumo — two agents wrestling in a circle
HuggingFace for RL agents.
- Upload API:
agent.publish('username/model-name') - Download API:
IgnitionEnv.loadAgent('username/model-name') - Gallery page: browse published agents
- Top models: car racing, Snake champion, Flappy master, drone pilot
- Leaderboard per environment
Make it delightful to use.
-
create-ignitionai-app— starter template with env + demo - Web dashboard: live training visualization (start/stop/compare runs)
- Replay viewer: step through past episodes for debugging
- VS Code snippets extension
Meet developers where they are.
- Three.js Journey integration: lesson on RL agents
- Unity Sentis export guide: step-by-step tutorial ✅ (shipped as docs tutorial)
- Unreal NNE export guide
- Godot export (GDExtension via ONNX Runtime)
- React Three Fiber starter kit
- PlayCanvas integration
Only after adoption. Don't put the cart before the horse.
Not before Phase 6 minimum. The framework must be widely used and loved before any commercial offering.
Possible models (ranked by feasibility):
- Enterprise support & consulting — game studios, XR companies, educational institutions
- Cloud training — offload heavy training to GPU cloud (like Replicate/Modal)
- Dashboard SaaS — hosted version of the web dashboard with team features
- Courses — paid tutorials on building game AI with IgnitionAI
- Dual license — MIT for open-source, commercial license for proprietary
Never: close-source the core framework, add paid algos, lock ONNX export behind a paywall.
Build when time allows, for the gallery.
- Drone navigation (target chasing with rigid-body physics)
- Marble on tilting platform
- Rocket landing (SpaceX vibe)
- Robot arm (pick & place)
- Atari Breakout clone
- Bipedal walker
- Framework first, product second — the core library is the hero. Everything else supports it.
- Open-source forever — MIT license, no lock-in, no dark patterns.
- Creative devs first — Three.js / R3F users are the primary audience, not ML researchers.
- Browser-native — if it doesn't work in the browser, it doesn't ship.
- Zero config > full control — defaults must work. Advanced users get escape hatches.
- Ship > polish — iterate in public. Break things, learn fast.
- From brain to software — the friction between "I have an idea" and "I see it running" should be minutes, not weeks.
Built by @salim4n / @IgnitionAI