Projecthackathon

Built at JEVATHON (w/ The AI Collective)

Jevolution

Jevolution - Explore the ecosystems we can’t experiment on Understanding what keeps a species alive requires understanding its interactions: where it finds food, how it avoids predators, and how it responds when its environment changes. For many species, researchers lack enough observations to assess even their extinction risk. A 2022 study predicted that 56% of the 7,699 Data Deficient species it assessed were threatened. https://www.nature.com/articles/s42003-022-03638-9 We can’t freely experiment on endangered ecosystems. Simulations offer a way to explore possible outcomes but their usefulness depends on the assumptions and behaviors they capture. The problem Rules-based simulations are fast and can produce complex emergent patterns, but extending their behavior often requires researchers to design and maintain additional rules. Generative AI offers more flexible decision-making, but calling a language model for every animal’s decisions introduces latency and cost. The 2023 Stanford-led Generative Agents project reported spending thousands of dollars in token credits to simulate 25 characters over two in-game days. Scaling that approach to an ecosystem presents a significant challenge. https://arxiv.org/html/2304.03442v2 What we built Jevolution is an interactive ecosystem simulator exploring a more efficient approach: Jev agents that select structured actions from their local observations. In our predator–prey demo, every rabbit and wolf has its own Jev-powered controller. Rabbits choose how to forage, move, flee, and signal. Wolves choose how to search for and pursue prey. The simulation engine handles movement, energy, reproduction, inheritance, and the consequences of those decisions. This separation lets us explore flexible agent behavior within consistent environmental rules, while measuring the cost and responsiveness of each controller. What the demo reveals Individual decisions accumulate into population-level patterns. Rabbits can warn nearby animals about danger, advertise food, and respond to signals. Our demo shows rabbits gathering around resource patches without a centrally scripted colony formation sequence. Communication actions are available to the agents. The interesting question is when they use them, how others respond, and what collective patterns follow. Offspring also inherit and mutate five predefined traits. As populations change, users can inspect which trait distributions persist alongside changes in food availability, predation, and population size. Built to investigate Jevolution makes these interactions visible and inspectable: - Rewind a run and follow individual animals. - Inspect traits, observations, and recorded model decisions. - Track births, deaths, predation, and population changes. - Compare supported controllers using recorded API latency and estimated cost. - Explore environmental disruption, including drought. The result is a working platform for asking questions about behavior and testing simulation assumptions. Where we’re going Our next step is to ground the simulator in a specific wildlife system: species-specific biology, measured environmental conditions, and validation against field observations. From there, researchers could explore habitat loss, changing resources, and other threats across many scenarios. Jevolution currently produces illustrative simulated trajectories. Establishing their scientific usefulness requires that calibration and validation. Our ambition is to make adaptive ecosystem experiments affordable enough to run repeatedly and transparent enough to understand. Live demo: https://jevolution.world Password for run - bYwMs5Pf6xTf01iyZdwLWM_RE8ndgzR-

View source
// latest_project_recording.mp4
// Project brief

Jevolution - Explore the ecosystems we can’t experiment on Understanding what keeps a species alive requires understanding its interactions: where it finds food, how it avoids predators, and how it responds when its environment changes. For many species, researchers lack enough observations to assess even their extinction risk. A 2022 study predicted that 56% of the 7,699 Data Deficient species it assessed were threatened. https://www.nature.com/articles/s42003-022-03638-9 We can’t freely experiment on endangered ecosystems. Simulations offer a way to explore possible outcomes but their usefulness depends on the assumptions and behaviors they capture. The problem Rules-based simulations are fast and can produce complex emergent patterns, but extending their behavior often requires researchers to design and maintain additional rules. Generative AI offers more flexible decision-making, but calling a language model for every animal’s decisions introduces latency and cost. The 2023 Stanford-led Generative Agents project reported spending thousands of dollars in token credits to simulate 25 characters over two in-game days. Scaling that approach to an ecosystem presents a significant challenge. https://arxiv.org/html/2304.03442v2 What we built Jevolution is an interactive ecosystem simulator exploring a more efficient approach: Jev agents that select structured actions from their local observations. In our predator–prey demo, every rabbit and wolf has its own Jev-powered controller. Rabbits choose how to forage, move, flee, and signal. Wolves choose how to search for and pursue prey. The simulation engine handles movement, energy, reproduction, inheritance, and the consequences of those decisions. This separation lets us explore flexible agent behavior within consistent environmental rules, while measuring the cost and responsiveness of each controller. What the demo reveals Individual decisions accumulate into population-level patterns. Rabbits can warn nearby animals about danger, advertise food, and respond to signals. Our demo shows rabbits gathering around resource patches without a centrally scripted colony formation sequence. Communication actions are available to the agents. The interesting question is when they use them, how others respond, and what collective patterns follow. Offspring also inherit and mutate five predefined traits. As populations change, users can inspect which trait distributions persist alongside changes in food availability, predation, and population size. Built to investigate Jevolution makes these interactions visible and inspectable: - Rewind a run and follow individual animals. - Inspect traits, observations, and recorded model decisions. - Track births, deaths, predation, and population changes. - Compare supported controllers using recorded API latency and estimated cost. - Explore environmental disruption, including drought. The result is a working platform for asking questions about behavior and testing simulation assumptions. Where we’re going Our next step is to ground the simulator in a specific wildlife system: species-specific biology, measured environmental conditions, and validation against field observations. From there, researchers could explore habitat loss, changing resources, and other threats across many scenarios. Jevolution currently produces illustrative simulated trajectories. Establishing their scientific usefulness requires that calibration and validation. Our ambition is to make adaptive ecosystem experiments affordable enough to run repeatedly and transparent enough to understand. Live demo: https://jevolution.world Password for run - bYwMs5Pf6xTf01iyZdwLWM_RE8ndgzR-

// Built with
The AI CollectiveTypeSafe AITypeScript, React, Vite, Node.js, Fastify, Web Workers, Vercel, Anthropic Claude
// Watch & explore
// More from this event

Keep exploring what builders shipped.

All projects →

HackerSquad project

Painting Band

A live band you conduct with paintings: arrange artworks on a musical staff, and every bar an AI conductor (TypeSafe Jev) decides how the band plays while Google's Lyria RealTime generates the music. # Painting Band 🎨🎶 **Arrange paintings on a staff. A playhead sweeps across. Every bar, an AI conductor decides how the band plays, and an AI music model plays it live.** Nothing is pre-recorded. The music is generated live from what's on the canvas. ## How it works 1. **See:** Gemini looks at each painting and writes how it should sound: mood words, sound ideas (e.g. "cascading koto arpeggios"), instruments, and the painting's musical tradition (Japanese, Hindustani, Western…). Upload your own image and it's described in about 2–3 s. 2. **Arrange:** Drag paintings onto the staff. - **Left → right** = when a painting plays - **Height** = register (high or low) - **Size** = how strongly its mood and sounds lead 3. **Conduct:** Every bar (~2.7 s), **TypeSafe Jev** answers up to 12 typed questions in parallel in ~150–300 ms: - how loud each painting should be, and the mood and energy - drums, bass and the lead instrument - two extra sounds and the transition - which culture leads when traditions mix Jev never plays notes; it only decides. 4. **Play:** Jev's choices become weighted text prompts plus density, brightness and mute settings for **Google Lyria RealTime**, which streams AI-generated 48 kHz audio and blends toward each new decision. The music changes when you move, resize, add or remove a painting. ## Architecture ``` Canvas → scene as words → Jev (decides) → translator → Lyria RealTime (plays) ↘ Strudel (backup engine) Images → Gemini vision → mood, sound ideas, instruments, culture ``` - **Deciders never make sound; engines never make decisions.** Code sits in between. - **Deadline-safe:** if Jev is later than 150 ms before the next bar, the band reuses the last bar's choices, so the music never stops. - **Always playing:** if Lyria stalls, the app switches to **Strudel** (a browser-based live-coding music engine) mid-song, and you can switch back with one click. - **Explainable:** the `</>` panel shows each bar's questions and Jev's odds for every option, the exact prompts sent to Lyria, what Gemini saw in each painting, and a live log of every model call. ## Features - Drag, resize and delete paintings; draggable playhead (Home = start) - Silence where there's no painting under the playhead - Upload any image; Gemini describes it (with automatic model fallback when busy) - Cultural awareness: each painting's musical tradition shapes the sound, and Jev picks which tradition leads - Jev vs. Rules toggle (keys J/R) to hear the difference judgement makes - Live stats: Jev latency, missed bars, and cost (~$0.00001 per bar) ## Tech stack - **Vite + React + TypeScript** - **TypeSafe Jev:** per-bar decisions (`/v1/systemone`, typed choice answers with confidence) - **Google Gemini:** image understanding (structured JSON output) - **Google Lyria RealTime:** streaming music generation (`@google/genai`) - **Strudel:** fallback engine (`@strudel/web`, General MIDI soundfonts) - API keys stay server-side behind a Vite proxy (except Lyria, which streams from the browser in this local demo) ## Run it ```bash npm install cp .env.example .env.local # add JEV_KEY, JEV_BASE_URL, VITE_GEMINI_KEY npm run dev ``` Open http://localhost:5173 and drag a painting onto the staff. ## Paintings Seven public-domain works from Wikimedia Commons: Hokusai, Monet, Van Gogh, Bruegel, Seurat, Rembrandt and Raja Ravi Varma.

TypeSafe AIGMI

HackerSquad project

Reinforcement Learning for Enemy ai

a 2D platformer where every decision and every physics tick goes through jev, a physics/AI backend (currently a local mock, swappable for the real service). You have 30 seconds to reach the flag as many times as possible. Deaths respawn you — the clock doesn't stop. High score persists across sessions. Everything runs through jev: - step — all physics: player, bullets, monsters (gravity, velocity, AABB collision) - aim — two turrets that study your recent movement history and adapt after misses (leading runners, ambushing campers, shooting landing spots of jumpers) - decide — two flying monsters that dash every second in 2D, intercepting where your velocity says you'll be - reset — wipes all learned state on a new game (N); respawns keep the memory — the enemies keep learning mid-run Controls: ←→/A/D move · Space jump · R respawn · N new game How the game talks to jev The context stream — history Every frame, game.js appends one sample: ```js { t: 12.483, x: 340.2, y: 464, vx: 320, vy: 0 } ``` It's a rolling 12-second ring buffer (HISTORY_SECS), ~720 samples of your position and velocity — the raw material for every enemy decision. Nothing else about you goes over the wire; habits are computed from this stream, on jev's side. The three decision channels (all async, all JSON request/response): ``` game.js jev ───────────────────────────────────────────────────────── step({ body, solids, dt }) → { x, y, vx, vy, onGround, touchingWall, stats } aim({ id, muzzle, history, now, { fire, dir, target, mode } report }) decide({ id, offset, pos, → { action:'dash'|'idle', history, now }) dir:{x,y}, vx, vy } reset({}) → {} ``` step — physics. The game never moves anything itself. Player, both monsters, and every bullet are each submitted as {x, y, w, h, vx, vy, noGravity?} plus the level's solid rects and dt. jev returns resolved positions and contact flags; the game applies them verbatim. noGravity: true on a body = flight (monsters, bullets share the same solver, gravity skipped). aim — the shooters. Per frame, per turret: the request carries the turret's id and muzzle, the full history buffer, now, and report — the outcome of its last shot ({hit: true|false}). That's the feedback loop: jev answers fire: false while its 2 s cooldown runs, or {fire: true, dir, target, mode} where mode names the tactic it picked (lead runner-prediction, zone bombardment of your favorite territory, anti-jump at your landing spot). Each turret has an independent cooldown by id, but hit/miss learning is shared — what one learns, both use. decide — the dashers. Per frame, per monster: id + offset give each its own 1-second cadence, phase-staggered (m1 is offset 0.5 s so they don't dash in lockstep). The request has the monster's pos and the same history. jev reads the last ~1 s of samples, averages your vx/vy, and returns a normalized 2D dir plus the impulse — it intercepts where you're heading, including vertically (swoops up at jumpers, dives at fallers). idle between pulses; the game dampens velocity 0.94×/frame. The loop in one breath: the game is a sensor array and a renderer — it records what you do, asks jev what everything should do next, and draws the verdict. The mock computes the brains locally; set endpoint in jev.config.js and the identical JSON POSTs to {endpoint}/step|aim|decide|reset. The tactic word in the HUD — zone, lead, or anti-jump changes based on what you just did (standing still → zone, running → lead, jumping → anti-jump) - Shots get more accurate over a run — every miss feeds back to jev, which adjusts where the next bullet aims; the target coordinates in the HUD shift after each miss - N resets it — new game wipes the memory and the enemies go back to firing dumb straight shots That's the whole story: the turret's aim line in the HUD is literally jev telling you what it learned.

The AI Collective

HackerSquad project

Sreak

Real-time persuasion training game — talk your way past an AI guard, investor, or friend, and every sentence is instantly scored and reacted to.

TypeSafe AI