---
title: "Projects - Roee Sivan"
description: "all 6 projects with case studies"
canonical: "https://roeesivan.com/projects"
last-updated: "2026-08-27"
---

# Projects

6 shipped projects, each with a case study, a live build or source, and the stack it was built on.

## The Block

URL: https://roeesivan.com/projects/the-block
Year: 2026

A small but genuinely playable 3D open world with a four-mission campaign. You can walk it, swim it, drive it, ride it and fly it. The project first shipped as a browser game on Three.js and Rapier, then I pivoted mid-project and rebuilt the entire game in Unity 6 rather than shipping a slice of it. Both builds exist; the Unity rebuild is the one whose source is public.

Highlights:

- Two complete implementations of the same game: 175 TypeScript modules on the web, 219 C# scripts in Unity
- Four-mission campaign that runs through to a win screen
- Five traversal modes: on foot, swimming, car, motorcycle, jet ski
- Physics via Rapier in the web build, Unity's built-in physics after the pivot

Technologies: Unity 6, C#, Three.js, TypeScript, Rapier physics, Vite, Supabase, Blender, Vercel

Links:

- Playable Unity build (zip) (download): https://drive.google.com/drive/folders/186tblV6VY5XPdYJDbw1Z-ARdQ-WxO-Du
- Unity source (source): https://github.com/RoeeSivan/theblock-unity

Video: The Block - Unity 6 trailer - https://youtu.be/57tQ9NJhcGE

Gameplay from the Unity 6 build: the city, the four-mission campaign, and all five ways of getting around it.

## Uni-Rate

URL: https://roeesivan.com/projects/uni-rate
Year: 2026

Students at my university had no shared record of which courses were worth taking, so I built one. Uni-Rate hosts course ratings, written reviews, AI-generated course summaries, prerequisite graphs and a schedule planner, in English and Hebrew with full RTL support. It runs in production on Vercel with real users and real data.

Highlights:

- 166 registered users at Reichman University
- Full EN/HE bilingual UI with right-to-left layout support
- Custom email-verification auth plus optional LinkedIn OAuth for verified reviews
- AI course summaries generated from aggregated review text via Gemini
- Scores 99/100 on is-agentic.com for AI-agent readability

Technologies: Next.js 16, React 19, TypeScript, Prisma, PostgreSQL, SCSS Modules, Gemini API, Resend, JWT / jose, Vercel

Links:

- Live site (live): https://www.uni-rate.com/

## Neon Highway

URL: https://roeesivan.com/projects/neon-highway
Year: 2026

An arcade endless runner rendered in WebGL: you weave a car down an infinite neon highway, dodging traffic and collecting pickups, with particle effects and a synced soundtrack. Six level themes swap the skybox and hazards as the speed climbs, all of it built on a modular vanilla-JS scene graph with no framework underneath.

Highlights:

- Custom Three.js scene: procedural road, GLB vehicle models, particle system
- Modular vanilla-JS architecture, no framework, 14 ES modules
- Six level themes with swapping city skyboxes, drones and laser hazards

Technologies: Three.js, JavaScript, WebGL, glTF / GLB, Web Audio API, Vercel

Links:

- Play it (live): https://neonhighway.vercel.app/
- Source (source): https://github.com/RoeeSivan/Neon-highway

Video: Neon Highway - gameplay trailer - https://youtu.be/b7dciOfVsEw

A run through all six level themes: the neon road and its pickups, the drones and lasers that shoot across the lanes, and the city skyboxes that swap out as the speed climbs.

## Hasidic Tower

URL: https://roeesivan.com/projects/hasidic-tower
Year: 2026

A vertical-scrolling platformer written in vanilla canvas 2D with selectable characters, enemies, collectibles and a leaderboard. The interesting part is the input layer: alongside keyboard and touch, it supports optional webcam hand tracking through MediaPipe Tasks Vision, so you steer the character by moving your hand in front of the camera.

Highlights:

- Webcam hand-tracking input via MediaPipe Tasks Vision, running fully client-side in WASM
- Three input modes sharing one controller abstraction: keyboard, touch, hand tracking
- 18 ES modules with a clean loop / state / renderer split
- Selectable characters, enemies, collectibles and a persistent leaderboard

Technologies: JavaScript, Canvas 2D, MediaPipe, WebAssembly, Web Audio API, Vercel

Links:

- Play it (live): https://hasidictower.vercel.app/
- Source (source): https://github.com/RoeeSivan/hasidic-tower

Video: Hasidic Tower - gameplay trailer - https://youtu.be/hy3mpfcq3m0

Climbing the tower: character select, the platforms and collectibles, the enemies that get in the way, and the webcam hand tracking steering it all.

## Table Tennis Analyzer

URL: https://roeesivan.com/projects/table-tennis-analyzer
Year: 2026

Feed it a match video and it returns an annotated render plus analytics. It tracks both players with YOLOv8 pose estimation, detects and speed-measures the ball through a hosted detection model, and reads the scoreboard with OCR behind a monotonic-score validator that rejects impossible readings. Outputs include player heatmaps, a score progression chart, a shot-placement map and a fastest-shot highlight clip.

Highlights:

- YOLOv8n-pose player tracking with close-up, crowd and referee frames filtered out
- Ball detection and per-frame speed in km/h via a Roboflow-hosted model
- EasyOCR scoreboard reading gated by a monotonic-score validator
- Generates heatmaps, score chart, shot-placement map and an auto-cut highlight clip

Technologies: Python, YOLOv8, Ultralytics, OpenCV, EasyOCR, Roboflow, Matplotlib

Links:

- Source (source): https://github.com/RoeeSivan/Table-Tennis-Analyzer

Video: Table Tennis Analyzer, pipeline walkthrough - https://youtu.be/HT1j_05tPi4

A pass through the whole pipeline: pose tracking, the geometry gate that throws out close-ups and replays, the rally supercut, scoreboard OCR behind its validator, and the analytics. For this reel the ball was re-detected on every frame rather than every tenth, and the scale was measured off the table, which is what makes the speed figure worth reading.

## Teaching a Robot to Walk

URL: https://roeesivan.com/projects/teaching-a-robot-to-walk
Year: 2026

Reinforcement learning on a twelve-joint Unitree Go2 in MuJoCo, trained twice on purpose. A genetic algorithm written from scratch in NumPy ran 1,186 generations and moved the robot 0.74 m; PPO on Stable-Baselines3 reached a stable gait over 20 million timesteps, and the genetic version stayed in the repository as the comparison baseline rather than being deleted. A third layer sits on top of the finished walker: a high-level policy running at 10 Hz that steers the frozen gait by velocity command and learned to push a ball into a goal, without the walking policy ever being retrained.

Highlights:

- PPO across 20M timesteps on eight parallel MuJoCo environments - 48-dimensional observation, twelve torque-controlled joints at 50 Hz
- An eleven-term locomotion reward logged per component, under friction, mass and random-push domain randomization
- A pure-NumPy genetic algorithm kept as the baseline: 1,186 generations, behaviour-cloned warm start, anti-gaming curriculum gates
- Hierarchical RL for soccer: a frozen walker driven by a 10 Hz policy, scoring on 95% of its last hundred episodes

Technologies: Python, MuJoCo, Stable-Baselines3, PyTorch, Gymnasium, NumPy, Matplotlib

Links:

- Source (source): https://github.com/RoeeSivan/Teaching-a-robot-to-walk

Video: Teaching a robot to walk, and then to score - https://youtu.be/9CfPllFlreU

The soccer policy first, milestone by milestone from its earliest flailing to a 95% goal rate, then the two walkers side by side on the same robot and the same physics: the genetic algorithm's champion at generation 1,186 against the PPO champion at step 18,000,000. Both panels carry live telemetry, so the distance and fitness figures are the run's own numbers rather than captions added afterwards.

Each project is also a document of its own: https://roeesivan.com/projects/the-block.md and so on.
