dtk is a metaplatform for software development, providing the foundations needed to develop dedicated modular scientific platforms. It aggregates functionalities embedded using low-level and interchangeable software entities - plugins - and orchestrated through high-level software entities - scripts, compositions or user interface elements. It then overcomes recurring aspects of advanced software development cycles to enable research teams to focus on research code.
This platform provides an abstraction for each of three major concepts - data, algorithm and view - all common to any scientific domain. Thus, each specific research team or group of teams can specialize these concepts within their own research area. To this end, dtk implements a mechanism for aggregating these specializations through plugins. Moreover, numerous peripheral development layers are available such as high level wrapping and scripting, visual programming, distributed computing and immersive visualization.
This platform is non-invasive in terms of codes developed by either third party communities or research teams and acts as a link between software components.
In addition, dtk supplies several tools for engineers or researchers to easily prototype experiments: integrated development environment, generators, tutorials, examples and integrated documentation system.
Below is a brief overview of three platforms made using dtk, in various fields of scientific research, namely, medical imaging, computational fluid dynamics and algebraic geometry. Sharing the same foundations, these software platforms not only aggregate code within the same application field, but also allow plugins to be interchangeable, so that bleeding edge experimentations combining habits and algorithms of very distinct scientific communities become possible.
MedInria is medical image processing and visualization software. Through an intuitive user interface, it offers both standard and innovative functionalities for medical images such as 2D/3D/4D image visualization, registration, segmentation or tractography. It mainly uses core concepts of dtk: data, processes and views, as well as helper concepts such as readers, writers, converters, interactors etc.
It is also maintained as an application demonstrating the popularization of immersive visualization and interaction technologies, using the virtual reality layer of dtk: users can visualize medical images in stereo and interact with them manually, in a virtual reality centre.
MedInria comes in two flavors: a free academic platform developed by four Inria teams (Asclepios, Athena, Parietal and Visages) and an industrial platform aiming at transferring research tools to hospital.
Figure 1: Medinria: a medical imaging platform
num3sis is a modular platform devoted to scientific computing and numerical simulation. It is designed to handle complex multidisciplinary simulations involving several fields such as Computational Fluid Dynamics (CFD), Computational Structural Mechanic (CSM) and Computational Electro-Magnetics (CEM). In this context, the platform provides a comprehensive framework for engineers and researchers that speeds up implementation of new models and algorithms.
From a software engineering point of view, num3sis specializes and extends some layers of the meta-platform dtk, especially its core and composition layers. The core layer enables users to define generic concepts for numerical simulation such as mesh or finite-volume schemes which are then implemented through a set of plugins. The composition layer provides a visual programming framework that wraps these concepts inside graphical items - nodes. These nodes can then be connected to each other to define data flows (or compositions) corresponding to the solution of scientific problems.
num3sis provides a highly flexible, re-usable and efficient approach to develop new computational scenarios and takes advantage of existing tools.
Figure 2: Num3sis: a multi disciplinary numerical computing platform
Whilst most Computer Aided Design (CAD) tools or geometric modelers hide internal representations of objects and focus on design, axel places their representation in the heart of the modeling process.
Extending core concepts of dtk, axel provides elementary geometric entities such as curves, surfaces or volumes, and lets advanced users interact with their representations. These representations may vary from discrete to continuous (including parametric and implicit).
As manipulating such fundamental mathematical representations, with cutting edge research tools, requires some connections with a Computer Algebra System (CAS) (in this case, Mathemagix), axel takes advantage of the script layer of dtk to wrap its concepts in various scripting languages.
Figure 3: Axel: an algebraic geometric modeler
Today, dtk has met its primary goal: it acts as a platform enabling researchers and engineers to develop platforms, more easily, quickly and effectively, by focusing only on research code within smaller software entities - plugins -, the cohesion being assured by dtk. Furthermore, the underlying software architecture makes it possible to keep a real case-by-case licensing policy.
dtk, as a software platform, also proposes and maintains a connection with hardware platforms of research centres, such as high performance computing centres or virtual reality centres. Another focus is keeping abreast of technological evolutions. In this context, new platforms such as mobile platforms are investigated.
Finally, such a technical structure for software development results in great human organization, where it is possible to promote new development paradigms, creating connections between developers, not only within a project, but also across all dtk based projects.
David Rey, Julien Wintz, Inria, France,
Olivier Commovick, Inria, France, Visages project-team
Olivier Clatz, Inria, France, Asclepios project-team
Régis Duvigneau, Inria, France, Opale project-team
Stéphane Lanteri, Inria, France, Nachos project-team
Bernard Mourrain, Inria, France, Galaad project-team