Coin3D

Fiche logiciel validé
  • Création ou MAJ importante : 03/12/10
  • Correction mineure : 03/12/10
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : SWIG

Coin3D : gestionnaire de scène 3D, implémentation open source d’OpenInventor

Description
Fonctionnalités générales

Coin3D est un gestionnaire de scène 3D utilisant la technologie OpenGL.
Coin3D est basé sur une logique de "graphe de scène" (scene graph en Anglais).
L'expérience montre que l'utilisation directe d'OpenGL peut s'avérer fastidieuse pour décrire une scène même relativement simple.
Coin3D apporte une surcouche orientée objet (C++) qui permet de faciliter la création et la gestion de scènes.
En particulier, Coin3D fournit une librairie de "nodes" (SoCube, SoCylinder, SoText, SoLineSet, SoFaceSet, SoTransform, etc...) très riche qui permet de démarrer rapidement.
De nombreux mécanismes permettent de faire des animations, d'exporter à divers formats (en particulier VRML) mais aussi d'étendre la librairie pour créer ses propres "SoNodes".

Autres fonctionnalités

Coin3D est diffusé depuis plusieurs années (la version 1.0.0 date du 13/08/2001).
C'est maintenant un produit fiable basé sur une technologie éprouvée.

Interopérabilité

Inventor, VRML

Contexte d'utilisation dans mon laboratoire/service

Coin3D est utilisé au LAL pour fabriquer des "event displays" pour la physique des hautes énergies. On l'utilise pour fabriquer
des scènes pour visualiser les détecteurs, mais aussi les données primaires (coups) et les données reconstruites (traces, amas dans les calorimètres, etc...).
On utilise aussi Coin3D pour faire de la visualisation de données statistiques (histogrammes, fonctions, nuage de points).
Une bonne partie du code utilisant Coin3D est regroupé dans le projet "métier" OpenScientist ( http://openscientist.lal.in2p3.fr ) que l'on utilise et enrichit d'expérience en expérience.
En particulier OpenScientist (et donc Coin3D) est utilisé pour fabriquer le visualiseur d'événement de l'expérience LHCb sur le LHC (projet Panoramix) et aussi pour visualiser des expériences simulée avec Geant4.
Coin3D est aussi utilisé par l'expérience CMS pour son visualiseur d'événement (projet IGUANA).

Limitations, difficultés, fonctionnalités importantes non couvertes

A l'heure de ce commentaire (Novembre 2010) l'équipe de Coin3D ne semble pas intéressé à faire une version "OpenGL-ES" qui permettrait de tourner sur un iPad ou des tablettes sous Android (ou encore, pourquoi pas, sur un iPod/iPhone ou des smarphones sous Android). Comme les tablettes ne nous paraissent pas être quelque chose que l'on doive ignorer, on a commencé à explorer d'autres solutions pour le futur de la manière de faire notre graphique.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Coin3D, avec SoXt, SoWin, SoQt, SoGtk, est distribué au travers d'OpenScientist http://OpenScientist.lal.in2p3.fr.
En particulier les distributions binaires d'OpenScientist (Linux, Mac, Windows) contiennent les binaires faits de manière consistante pour Coin3D, SoXt, SoWin et SoQt.
A noter que dans les distributions OpenScientist ces packages ont été renommés CoinGL, CoinQt,
CoinXt, CoinWin, CoinGtk pour éviter des conflits avec des installations des produits de SIM (System In Motion) déjà existantes.
A noter aussi que la distribution d'OpenScientist contient aussi la librairie HEPVis qui contient des "SoNodes" dédiés à l'activité de visualisation en physique des hautes énergie.

Plates-formes
  • Plateformes : Linux, Mac, Windows.
  • Interface utilisateurs (GUI) supportés : Xt/Motif, WIN32, Qt, gtk. Les bindings pour les différents GUI sont dans des packages annexes (SoXt, SoWin, SoQt, SoGtk) et sont délivrés sur le site de coin3d ( http://www.coin3d.org/lib/ ).
    Le langage principal est C++, mais il existe des bindings pour java et Python (pivy).
Logiciels connexes

Les logiciels qui peuvent être considérés comme connexes sont :

  • les bindings pour les interfaces utilisateur (GUI) : SoXt, SoWin, SoQt, SoGtk et Sc21.
    Sc21 est la librairie permettant l'intégration de coin3d sur Cocoa (NextStep) sur Mac.
  • un binding Python de Coin3D; Pivy ( http://pivy.coin3d.org/ ). A noter que pivy est fabriqué avec SWIG ( http://www.swig.org ).
  • un outil de modélisation CAO; FreeCAD ( http://free-cad.sf.net/ ). L'utilisation du module Pivy est conseillé pour accéder, depuis l'interpréteur intégré, au graphe de scène de FreeCAD géré par Coin3D.
Autres logiciels aux fonctionnalités équivalentes

OpenSceneGraph (OSG), OpenSG. Ces deux projets open sources prétendent être des gestionnaires de scène "plus modernes".
Tout deux sont basés sur OpenGL et écrit en C++.
Il est vrai que l'API d'OpenInventor (et donc Coin3D) est basé sur du C++ des années 1980-1990 et qu'il n'exploite pas par exemple la STL, les templates, les exceptions, threads et donc qu'une écriture d'un gestionnaire de scènes exploitant ces nouveautés (maintenant normalisées) peut être intéressante.

Environnement de développement
Type de structure associée au développement

Coin3D est supporté par la compagnie Norvégienne SIM (pour System In Motion) qui est aussi en contact proche avec TrollTech (en Norvège aussi) qui développe Qt (le support pour Qt au travers de SoQt est très bon).

Références d'utilisateurs institutionnels
  • IN2P3 : Institut National de Physique Nucléaire et de Physique des Particules ( http://www.in2p3.fr/ ).
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

La liste de discussion principale est coin-discuss [at] coin3d [dot] org ( http://www.coin3d.org/support/ ). Elle est active et le support par ce moyen est très bon.

Documentation utilisateur

Voir le site de Coin3D pour les manuels de référence de l'API ( http://www.coin3d.org/support/ ).
Mais pour la programmation débutante ou avancée, rien ne vaut les deux livres qui avaient été écrits par les personnes ayant fait la version source originale d'OpenInventor chez Silicon Graphics, à savoir "The Inventor Mentor" et "The Inventor Toolmaker".
Ces deux grands classiques en matière de logiciel graphique se trouvent maintenant en libre sur le web au format PDF ( www.cs.ualberta.ca/~graphics/books/mentor.pdf et www.cs.ualberta.ca/~graphics/books/toolmaker.pdf ).
Une version HTML est disponible ( http://www-evasion.imag.fr/~Francois.Faure/doc/inv... et http://www-evasion.imag.fr/~Francois.Faure/doc/inv... )

Contributions

On peut contribuer (par exemple en soumettant des patchs ou des nouveaux "nodes") au travers de coin-discuss [at] coin3d [dot] org ( http://www.coin3d.org/doc/patches ).

Commentaires

FreeCAD

Une fiche PLUME sur FreeCAD est en cours de rédaction. Si elle est publiée lors de la prochaine mise à jour, elle devrait être référencée de celle-ci.