Skip to content

1v1 Jev

Browser 1v1 sniper arena where Jev reads match state about 9 times a second and chooses movement, aim, ADS, firing and jumping.

Servicebeta

Overview

1v1 Jev is a server-authoritative browser FPS: one human at a time fights Jev in an industrial yard, first to five kills, while others queue, spectate and chat. It is built with Vite, Three.js and TypeScript on the client and a Node WebSocket server running a 60 Hz simulation.

Jev is the opponent's brain. At each decision tick (about 9 Hz) the server builds structured JSON state and fans out Choice and Noul questions for movement, yaw, pitch, aim-down-sights, fire and jump, using the @typesafe-ai/sdk with jev-latest. The API key stays on the server, calls run only during live play, and if TypeSafe is unreachable a deterministic heuristic uses the same action interface so matches never stall.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich way should the bot move / turn / pitch?—
Yes / noShould the bot aim down sights / fire / jump now?yes · no

How it works

  1. Server builds structured match state each tick (~9 Hz)
  2. Fan out Choice/Noul questions for move, yaw, pitch, ADS, fire, jump
  3. Apply the answers to the bot in the 60 Hz simulation
  4. Fall back to a deterministic heuristic if TypeSafe is unreachable

Strengths

  • Key never reaches the browser
  • Heuristic fallback keeps matches running
  • Calls only while a match is live, limiting spend

Caveats

  • Needs a TypeSafe API key
  • Requires a long-lived Node host; README notes Vercel serverless cannot host it
  • No licence stated

Getting started

npm install, copy .env.example to .env with TYPESAFE_API_KEY, then npm run dev.

At a glance

Type
Service
Status
beta
Language
TypeScript
Runtime
Node server + browser (Three.js)
Has code
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does Jev control?

The opponent's movement, aim, aim-down-sights, firing and jumping, via Choice and Noul questions each tick.

What happens if the API is down?

A deterministic heuristic with the same action interface takes over.

Where can I deploy it?

The README recommends a single Railway service running the Node server and serving the built client.

Related projects

  • Source for browser chess and Chess960 where code computes each legal move's facts and Jev picks one per turn as a typed Choice.

    ProjectproductionTypeScript
  • Instrumented 2048 web lab where every move is a Jev Choice over four directions, with probabilities, latency and cost shown live.

    ProjectbetaTypeScript
  • Fifteen live arcade games where Jev and LLMs play each other, led by WikiRace in which Jev picks only real links.

    ProjectbetaTypeScript
  • Real-time bot battles where you write a fighter's strategy in plain English and a System One model pilots it several times a second.

    ProjectbetaTypeScript
  • Browser extension that lets Jev, local Laya or an OpenAI-compatible model take over a running ra2web (WannaFire) RTS match.

    ProjectbetaTypeScript
  • One-page web app where Jev plays chess against OpenRouter LLMs, Stockfish or you, showing the moves it weighed and their probabilities.

    AppbetaJavaScript