BikeMi Map

Bike-sharing app for Android

I am a proud user of the Milan bike sharing service BikeMi. It's easy, it's cheap, it's green!

However its official Android app is bugged and lacks some basic functions, such as GPS. So I decided to develop my own app, scraping official data from BikeMi slow servers. The app is now on Google's Play Store: you can download it here. It shows available bikes, electric bikes, racks, your GPS position, traffic and 3d buildings. It has trasparent markers, GPS following, Street View support, automatic data update. There is a simpler web version too: you can check it out here.

Arduino and RaspberryPI

Various projects

In the last few years, I spent some spare time with Arduino and RaspberryPI. Here you can find some videos of my projects, such as a self-balancing robot, a snake-playing AI in an Ikea frame, a self-moving Ikea lamp, a RaspberryPI Ambilight clone, a doorbell playing the Imperial March, a collision avoidance and remote controlled 2 wheels robot, a simple mood lamp in a jar, a customized animation Christmas lights WS2811 strip, a time and temperature controller for homebrewing beer, an event triggerring fix for Pusher lib.

Milestone S.r.l.

R&D programmer

I have been working full-time at Milestone S.r.l. (the biggest Italian videogame software house) since 2007 as an R&D programmer. I worked on the low-level and cross-platform proprietary engine (and editor), and then on the Unreal Engine 4 framework to port existing technologies and games. We published a lot of successful racing videogames, such as MotoGP, SBK, MxGP, WRC and Ride. You can find more details on my resume or on the official software house page here

RC Racing 360

Indie developed videogame on XBox 360

RC Racing 360 is an indie racing videogame that I developed in 6 months with a 3d artist and a game designer in C#, using the XNA 3.1 framework. It is published on the Microsoft Marketplace. The game features 60 fps frenetic racing on remote-controlled mini cars, split-screen gaming up to 4 players, 7 tracks, 6 vehicles, multiple skins, night and day cycle, 3 weather conditions, atmosferic scattering, vehicle ambient occlusions, bloom, motion blur, shadowmapping, 3d rigid physics, dynamic music tracks, multiple AI behavoiurs and XBox Avatars.

Gpu Surgical simulator

Master Thesis project

In my master thesis I wanted to investigate the use of GPUs for general purpose programming. This topic was quite new and complex at that time (no OpenCL or CUDA!): code had to be ported to a pixelshader programming language (such as GLSL or HLSL), executed by rendering a quad and data had to be converted into images. As a practical implementation, I proposed a method to implement a surgical simulator to train surgeons. Organs are modelled with a complex mass-spring system and fully updated on the GPU in less than a millisecond (this was required by haptic-feedback devices).

The thesis (in Italian) is available here. I published an article on the evolution of the proposed methods in Proceedings 3959-3964 of IROS 2008, available here.

GPU Shape Reconstruction

Computer Vision exam

This project was created for the Computer Vision exam during my studies. Its objective was to reconstruct the shape of a moving person inside a room, captured in high definition by 5 cameras at 120 Hz. The process is quite simple: ideally, the silhouette of the moving body is extracted from each photo of each camera (using empty reference images) then a voxelized cube that represents the room is processed slice by slice (first part of the video) to carve/disable voxels that do not project inside the extracted silhouette of at least one camera.