Radium-Engine Platform

Head: Nicolas MELLADO

Radium-Engine is a software platform dedicated to the development of 3D applications. Designed in the form of C++ libraries, this platform provides users and developers with a set of tools for real-time image synthesis, character animation, and 3D geometric data analysis and processing. The topics currently covered are for example:

  • Geometric processing of 3D objects represented as meshes: decimation and simplification for web visualization,
  • Visualization and processing of point clouds (LiDaR acquisition, photogrammetry, depth maps, RGBD cameras): primitive extraction, deep learning,
  • Real-time PBR (Physically-Based Rendering)
  • Deformation for character animation: skinning, rigging.
  • Stylized rendering, simulation of traditional media

The objectives of this platform are multiple:

  1. Facilitate the creation of research prototypes for 3D computer graphics applications.
  2. Promote the dissemination and replicability of research papers by providing an open source software ecosystem that can be used by the research community,
  3. To provide a development base adapted to the training of students in Computer Graphics and 3D.
  4. To simplify the industrialization phases of research prototypes within the framework of maturation and transfer to industry.

The platform is composed of libraries providing data structures and algorithms, on which several applications and plugins are based.

The first users are the members of the STORM team, their collaborators (Innersense company within the framework of the SI3DCO project), other researchers of the computer graphics community in France (Manao/INRIA Bordeaux, X – Institut Polytechnique de Paris), as well as the students of the Master IGAI of the University Paul Sabatier.

There are currently 27 forks and 57 stars on the github repository.

Positioning of the platform in relation to existing platforms (local and national)

Radium-Engine is positioned as an academic software environment, maintained by research teams and integrating state-of-the-art scientific algorithms.

Thematic coverage: The particularity of Radium-Engine is its thematic coverage: while existing solutions focus on a specific topic (see non-exhaustive list below), Radium-Engine allows to combine methods developed in different scientific sub-communities (always in the field of Computer Graphics) within the same environment.

Examples of existing platforms at the national level and their thematic coverage:

  • MEPP (LIRIS): Mesh processing, uses CGAL (see details below)
  • OASIS (LIRIS): Augmented Reality, including character animation and deformation
  • Geogram (LORIA-Inria Nancy): Mesh processing

Examples of existing platforms (internationally) and their thematic coverage:

  • Meshlab, libigl, CGAL, OpenMesh, Polyscope for geometry,
  • Unity for real-time rendering,
  • Mitsuba, Mitsuba 2, PBRT for realistic rendering.

Gateways to existing platforms:

These specialized platforms are generally maintained by research structures with dedicated support (INRIA spin-off to maintain CGAL) and offer a very high level of technical expertise on the subjects concerned. In order to avoid positioning Radium-Engine in competition with these tools, we propose instead to use gateways (wrappers) allowing to combine them with Radium-Engine.

Today, Radium is compatible with OpenMesh to represent topological meshes, which can also be processed via the algorithms implemented in CGAL. A gateway to PBRT is under development to allow realistic off-line lighting simulation calculations, while almost complete support for n3 allows these geometries to be displayed in real time with physically realistic rendering.

Technical and organizational description, utilization rate

The Radium-Engine platform is structured as a c++ library. There are currently four libraries:

  • Core: the basic functionalities and data structures for 3D data representation.
  • Engine: the real-time rendering and animation features.
  • GuiBase: reusable user interface elements for applications
  • IO: input/output management (reading 3D files)

Performance oriented, the platform uses the external libraries Eigen for linear algebra and matrix/vector representation as well as OpenGL for communication with graphics cards and real-time rendering.

The current code base includes more than 40000 lines of c++, as well as 2500 lines of glsl code, programming language for graphics cards.

Historically carried by two PhD students of the VORTEX team, Radium-Engine is now carried by the permanent staff of the STORM team, and widely used and improved by the current PhD students of the team. Until July 2020, an engineer on ANR project was also involved in adding features and maintenance.

The code base is hosted on github, and we have implemented continuous integration processes (Windows, MacOs, Linux), as well as systematic code reviews when adding features. The build chain is based on cmake and includes automatic dependency management and installation procedures on Windows MacOs and Linux.

Radium Engine has been used as the code base for research and output of several of the team’s research papers:

  • Persistence Analysis of Multi-scale Planar Structure Graph in Point Clouds T. Lejemble, C. Mura, L. Barthe, N. Mellado Computer Graphics Forum, 2020
  • Proximity-Aware Multiple Meshes Decimation using Quadric Error Metric A. Ghazanfarpour, N. Mellado, C. Himeur, L. Barthe, J. Jessel Graphical Models, 2020
  • Dynamic implicit muscles for character skinning V. Roussellet, N. Abu Rumman, F.Canezin, N. Mellado, L. Kavan, L. Barthe Computers and Graphics, 2018