Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time

Emanuele Ruffaldi Code Online

Here the listing of the public repositories, mainly on github. Legend on project size:

  • XL for large project, most of them used regularly
  • M for medium projects, some of them used
  • U for little utilities
  • EX for exercises and examples

Operating System / Low-Level

  • UEFIBoot an example for writing UEFI applications in CMake/C++ - related blog post (2016)
  • PitOS (XL) an exercise of low-level OS writing and integration with Java without OS in the middle (2002)
  • usbbandwidth (U) Estimation of USB device bandwidth usage in Linux, related post
  • tinyptp(EX) Precision Time Protocol (PTP) minimal implementation aimed at embedded cases (2016)

3D, Virtual Reality and Haptics

  • cocomr (XL) Compact Components framework and its Mixed Reality module (2014-,C++, with others)
  • chai3dproxy CHAI3D proxy code as standalone code
  • little3d Little 3D engine used in our robotic application (2015-2016,C++)
  • xvraam Tool for converting meshes in XVR AAM format to AssImp (2015,C++)
  • xvr_water XVR Water effect as developed for the SPRINT Rowing Trainer (2010,XVR)
  • openvr_exercies Cross-platform exercise using OpenVR (2016,C++)

Computer Vision



  • coursevision Practical part of the SSSA vision course 2017 using (Python, Jupyter)
  • livepython Live Python coding for OpenCV in the Browser (Python, OpenCV)
  • cvcamera_info Tool for manipulating the Camera Parameters under camera transformations e.g. crop, mirror, scaling (Python,OpenCV)
  • arucojson, example Aruco program for obtaining JSON version of the visible from videos markers together with some additional details such as marker area (C/C++) - usable - (2015-2016)
  • calibration tool for RGB-D and stereo cameras in Python using OpenCV - active (2015-2016)
  • aruco pattern generator script (Python) - PDF output, multiple pages control, physical size - usable
  • v4lsink device (EX) - create a simple V4L Linux sink as Virtual Camera
  • depthcapture image capture with compression for stereo (Zed) and depth cameras
  • pyoni ONI manipulation tool in Python (registration, fix, cut..) and related post and initial post (2013-2016)
  • gstreamerflow (EX) - gstreamer sink/source in C++
  • qtgst_appsink (EX) - gstreamer sink in Qt without using QtGst
  • mp4 duration (script) - extraction of frame duration from videos

Development Tools

  • CMakego, a simplified way to accessing libraries from C/C++ applications using CMake - active - related blog post (2014-2016)
  • matlabaddons, a custom list of useful Matlab packages with an easy way to configure them - usable
  • roboticvagrant and linuxsetup, Linux setups for Robotics with vagrant and docker respectively - related blog post
  • wine_vcpp (EX) Instructions for using command line Visual Studio inside Wine
  • editheader (U) for editing headers of C/C++ managing license (Python)


This section deals meanly with manipulation of Tensors, Lie Algrebra tools and Multivariate Gaussians as used in my research activity

  • dliemat Lie algebra and Distributions over Lie algrebra SE(3) in Matlab
  • matsemindex Semantic access to tensor indices in Matlab
  • nested tensors manipulation of nested tensors in Python and Matlab
  • multidimcxx C++11 class for statically typed tensors and associated operations. Associated blog post.
  • compare-mvn-tools Understanding Multivariate Normal Gaussian functions with Extended and Unscented filter
  • argmaxnd Argmax for Matlab with AVX2 optimization (on File Exchange)
  • visualautodiff Automatic backward differentiation in Simulink by connecting blocks, and associated blog post


  • pooledchannel multithread channel class in C++ with several policies
  • yreflectcxx is a CLang based C++ reflection for extracting types and OpenMP information, related post
  • cmm a C++ (ehm C--) compiler with code generation for x86 and DEC Alpha (1998)
  • cxxsumtime(EX) Algebreical Type for C++ with related post

Data Tools

  • picopak experimental tool for keeping track of personal data packages using git as backend
  • anycat (U) bash script for generic decompression
  • boost_compress comparison of compression methods using Boost IO Streams and fork of boost_lz4_filter for LZ4 streaming
  • nested_list_product generalization of condition matrix generation for experiments and benchmarking

ROS Tools

  • catkin_sub (U) ROS tool for partial builds of large catkin projects
  • ros_picopro ROS interface for Pico Projectors of libam7xxx family
  • matlab_ros_utils MATLAB ROS utilities to be used with MATALB rosbag my fork
  • ros_alt_realsense alternative ROS interface to Intel Realsense cameras based on Intel librealsense

Matlab/Simulink specific

  • simulink rt time Simulink block for synchronizing simulation time with real-time, cross platform, used in several projects
  • matlab addons Management of matlab toolboxes from Open Source projects with automatic configuration
  • matlab ranges Manipulation of ranges from datasets
  • binary tensor load (U) Loads a tensor from binary file

Web Level

  • jsonbag JSON multipart response for modern browsers. Serverside in C++ Mongoose blog post

Course Material

Research Tools

  • pytexeq command line LaTeX equation generation to images with cache
  • publicationlister (U) personal tool for publication listing based on BibTeX

Other Contributions

  • amfext initial developer of the amfext extension for PHP registered in PECL (2007). Amfext serializes messages in the Flash format.

Coding Fun