# Rados Jovanovic > Portfolio of Rados Jovanovic, a software developer working on graphics, engines, computer vision and games. Projects from 2001 onward. Personal portfolio. One page; every project below is an anchor on https://radosjovanovic.com/. Contact: radosj@gmail.com. Code: https://github.com/bitbloop. ## Projects Grouped by era, newest first. ### 2025– — ai exhilarating Without a care for token price, riding along with the evolution of models. ### 2019– — honing the craft CM Labs, then 3dverse. Rendering systems as a lifestyle. ### 2016–2018 — papers after hours Graphics and voxels by day; graphics, computer vision, machine learning by night. - [Sensor Fusion and State Estimation via a Kalman Filter (2018)](https://radosjovanovic.com/#sensor-fusion-and-state-estimation-via-a-kalman-filter) - A Kalman filter that tracks a moving target from a moving stereo camera, with noisy sensors on both. Excellent for constant acceleration, less so the closer the simulation gets to the real world. - [Anomaly Detection (2018)](https://radosjovanovic.com/#anomaly-detection) - A little Python script for semi-supervised anomaly detection: learn the distribution of a set of n-dimensional points, approximate their density with a Gaussian or a Multivariate Gaussian model, and flag the outliers. - [Kernel Density Estimation and Mean-Shift Clustering (2018)](https://radosjovanovic.com/#kernel-density-estimation-and-mean-shift-clustering) - Mean-Shift clustering in Python: a Kernel Density Estimate over the points, a gradient ascent to its local maxima, and those maxima are the cluster centers. The bandwidth comes from Silverman's rule of thumb, so there is nothing to tune. - [Maximizing Parallelism When Constructing Binary Radix Trees (2018)](https://radosjovanovic.com/#maximizing-parallelism-when-constructing-binary-radix-trees) - A CPU-only C++11 implementation of the NVIDIA paper on building a binary radix tree fully in parallel, one node at a time. On 50k points, creating and destroying threads ate about 55% of the four-thread run time, so the win over serial was modest. - [K-Means Clustering (2018)](https://radosjovanovic.com/#k-means-clustering) - A header-only, generic K-Means clustering algorithm in C++11. Nothing too crazy; most of the labour was putting a renderer in. - [Moving Object Detection (2016)](https://radosjovanovic.com/#moving-object-detection) - An implementation of the paper Detection of Moving Objects with Non-stationary Cameras in 5.8ms, to play with computer vision a little. Pretty cool! - [Voxel Farm (2016)](https://radosjovanovic.com/#voxel-farm) - Voxels at VoxelFarm, plus a physically based deferred renderer for a very volatile world: water, screen space reflections, light, shadows, stars, clouds, and the sun. Also Unity, Unreal, and the web. ### 2013–2015 — thesis and Hela A master's at York, and a game that got away. - [Hela (2015)](https://radosjovanovic.com/#hela) - An educational game about cancer where you play as the cancer, worked on for just shy of three years with two Ph.D. collaborators and never completed. For it I built an engine with soft bodies and exposed all of it, shaders included, to Lua. - [Database Driven Multi-Agent Behaviour Module (2013)](https://radosjovanovic.com/#database-driven-multi-agent-behaviour-module) - My master's thesis: a model for a high-performance agent behaviour library with a database system at its core, implemented in C and SQL on PostgreSQL, attached to a game engine, and proven with a small game prototype. ### 2010–2012 — contracts and Traps! Work shipped for clients, and the most complete game made so far. - [Product Of Italy (2012)](https://radosjovanovic.com/#product-of-italy) - An iPad cooking app cataloguing Italian food from every region of Italy, with cooking episodes by chef Massimo Bruno. Its planner builds a schedule which gets a multi-course dinner done on time, with the least time spent in the kitchen. - [SPLIT BlackJack (2011)](https://radosjovanovic.com/#split-blackjack) - A BlackBerry BlackJack game with a twist: the cards are dealt as halves, and you combine two halves of the same number to make a whole card. Developed for MagiLab with Zhanna Brener. - [We Will Remember Them (2010)](https://radosjovanovic.com/#we-will-remember-them) - An online extension of the CBC documentary We Will Remember Them: relatives, friends, and communities tell the stories of fallen Canadian soldiers, laid out in space and time. Made at Orange Paperclip. - [Traps! Game (2010)](https://radosjovanovic.com/#traps-game) - A fast-paced top-down browser arcade game: defend your treasure from invading monsters with six traps, three abilities, and your wit. Coded in Java, with a C# level editor, together with Zhanna Brener. ### 2007–2009 — classes and contracts York's Intelligent Systems stream, a year in Germany, first paid work. - [Autodesk 3DS Max PhysX Ragdoll Creation Tool (2009)](https://radosjovanovic.com/#autodesk-3ds-max-physx-ragdoll-creation-tool) - A tool for Autodesk 3DS Max which walks a mesh's bone hierarchy and generates a linked, PhysX-compatible ragdoll, ready for fine-tuning and export to a simulation. Made at the Fraunhofer Research Institute in Sankt Augustin. - [The Tudors Season 2 and 3 Data Collector and Webpage for CBC (2008, 2009)](https://radosjovanovic.com/#the-tudors-season-2-and-3-data-collector-and-webpage-for-cbc) - An interactive data visualization for seasons 2 and 3 of The Tudors, made for CBC: a C# server perpetually collects blog posts, news, and photos about the show, and an ActionScript 3 front-end lays it all out. - [Rotating and Translating Objects in CAD Systems with Collision Correction (2008)](https://radosjovanovic.com/#rotating-and-translating-objects-in-cad-systems-with-collision-correction) - A way to translate and rotate objects in 3D with a 2D input device, aimed at CAD: pixel-based collision detection and correction in GLSL, assuming objects rest on each other and do not interpenetrate. Compared against standard widget controls. - [AIEngine (2008)](https://radosjovanovic.com/#aiengine) - A library for reactive and goal-based behaviours of virtual agents, built on first-order predicate calculus: finite-state automata for reactions, a STRIPS-style planner for goals, and special predicates which drop into custom code. A year-long university AI project. - [Procedural Brick Shader (2008)](https://radosjovanovic.com/#procedural-brick-shader) - A procedural brick shader in GLSL with per-pixel lighting, normal mapping, parallax mapping, and texture mapping. A university project. - [Immune System Educational Game (2007)](https://radosjovanovic.com/#immune-system-educational-game) - A real-time action strategy game where you command your immune system: identify the pathogens, control one white blood cell at a time while the AI runs the rest, and fight on several fronts at once. Made for a Game Development class at Hochschule Bonn-Rhein-Sieg. - [Autonomous Discovery and Navigation with a Mobile Robot (2007)](https://radosjovanovic.com/#autonomous-discovering-and-navigation-a-mobile-robot) - A little robot from my Robotics class at Hochschule Bonn-Rhein-Sieg, with two algorithms written for its MIPS microprocessor: explore an area with five distance sensors and map it as a grid, then navigate to any reachable point with a modified A*. ### 2001–2006 — building and classes From 2D sprites to ray tracing, and engines built with confidence. - [Simple Raytracer (2006)](https://radosjovanovic.com/#simple-raytracer) - A ray tracer for a university class, on top of a bare C++ framework: lights, shadows, reflections, refraction, and opaque, transparent, and "imperfect transparent" surfaces. - [Top Down Shooter (2006)](https://radosjovanovic.com/#top-down-shooter) - A top-down shooter with procedurally generated rooms and a hitbox for every limb of every actor, using the ODE physics library. And there is a table. - [Image Processing on GPU: Sobel Filter (2005)](https://radosjovanovic.com/#image-processing-on-gpu-sobel-filter) - One of my first GLSL applications: a GPU-powered Sobel filter. - [VOID Engine (2005)](https://radosjovanovic.com/#void-engine) - My first 3D graphics engine, on OpenGL 1.x: octrees, a material system fed from 3DS Max, three render paths for older video cards, sorted particles, glow, shadow mapping, and Tokamak physics for the falling boxes. - [Domination (2001)](https://radosjovanovic.com/#domination) - A turn-based strategy RPG in a fantasy world for up to 3 players, human or AI, with 4 hero classes, 9 summonable units, and 11 spells. Made in Delphi with Milos Stojanovic for a national high-school showcase; our first complete non-space-invaders game. ### –2000 — first steps When the greatest QBasic games and apps were proudly made. ## Other - [Rabbit](https://radosjovanovic.com/games/) - Phaser 2 - [Cup](https://radosjovanovic.com/games/) - Phaser 2 - [Ecosystem](https://radosjovanovic.com/games/) - Phaser 2 - [TetriSnake](https://radosjovanovic.com/games/) - one page, no dependencies - [NoTax!](https://radosjovanovic.com/games/) - Chart.js - [VtM V5 Combat Simulator](https://radosjovanovic.com/games/) - tabletop - [Vampire Dice Calculator](https://radosjovanovic.com/games/) - tabletop - [Clan Legacy](https://radosjovanovic.com/games/) - tabletop