jev-goal-reflex
Three.js box steered by plain-language instructions: an LLM plans steps, Jev decides move, turn and jump in real time.
Overview
jev-goal-reflex steers a box around a 3D world from plain-language instructions such as 'go to the top right' or 'jump and do a 180 in the air'. A slow goal layer (OpenAI gpt-5.4-mini) turns each instruction into a plan of steps once, and a fast reflex layer (Jev) makes every movement decision in real time. TypeScript control code measures progress, caps speed and turn rate, and applies physics. Jev decides direction; code decides how much.
Per the list summary, each decision asks Jev two Score questions (move and turn) and one Noul (jump); code acts on a score only beyond a 0.33 dead zone, jumps above 0.45, holds any axis the current step does not use, and sends no Jev request while no step is active. Side panels show the plan, the exact state and questions sent, and Jev's answers. It needs Node 20+, pnpm, and OpenAI and TypeSafe keys.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Score | Which way and how much should the box move? | — |
| Score | Which way should it turn? | — |
| Yes / no | Should it jump now? | — |
How it works
- LLM converts an instruction into steps of simultaneous actions
- During each active step, ask Jev move, turn and jump
- Code applies dead zones and thresholds and caps speed
- Physics updates the box; no calls when idle
Strengths
- Separates slow planning from fast reflexes
- Transparent panels showing state and answers
- No calls when nothing is happening
Caveats
- Needs two API keys
- Toy 3D environment
Getting started
`pnpm install`, add OPENAI_API_KEY and TYPESAFE_API_KEY to .env, `pnpm backend` then `pnpm start`, and open http://localhost:5173.At a glance
- Type
- Project
- Status
- prototype
- Language
- TypeScript
- Runtime
- Three.js viewer with Node backend
- Has code
- yes
Use cases and integrations
How curated lists describe it
Simulation: a Three.js box steered by plain-language instructions, where an LLM turns each instruction into steps of simultaneous actions and every decision asks Jev two `Score` questions (move, turn) and one `Noul` (jump), with code acting on a score only past a 0.33 dead zone, jumping above 0.45, holding still any axis the current step does not use, and sending no Jev request while no step is active.
yibie/awesome-jev
Frequently asked questions
What does Jev decide?
Move and turn direction as scores, and whether to jump, on every decision tick.
What does the LLM do?
Turns each instruction into a plan once.
How are noisy scores handled?
Code ignores scores within a 0.33 dead zone and jumps only above 0.45.
Related projects
Three.js driving simulator with a fast reflex layer, a TTC safety brake and an optional Jev API strategy layer.
ProjectprototypeJavaScriptThree.js driving simulator where Jev picks among locally sampled steering-and-speed paths while code handles geometry and safety.
ProjectprototypeTypeScriptTraffic signal controller where Jev picks each intersection's next phase from a SUMO snapshot, with local fallbacks.
ProjectresearchPythonFixed-wing landing simulator and benchmark where Jev maps four Choice decisions to aircraft controls against humans, baselines and LLMs.
DemoprototypePythonSimulation where Jev picks which of two conflicting signal phases gets green at a real Hong Kong junction from live open sensor data.
ServiceprototypePythonSimulated Franka arm that follows plain-English goals by having Jev chain about 30 hardcoded motion primitives, one per step.
Agent skillprototypePython