scientific computing

Software (mostly free software) useful to researchers and teachers in scientific computing
Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 07/10/13
  • Minor correction: 07/10/13
  • Index card author: Luc Hogie (I3S)
  • Theme leader : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))

jaseto : JAva SErialisation TOolkit

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 2013.08.30.14.13.40 - 2013.08.30
  • License(s): LGPL
  • Support: maintained, ongoing development
  • Designer(s): Luc Hogie
  • Contact designer(s): luc.hogie@cnrs.fr
  • Laboratory, service:

 

General software features

Jaseto is a Java library enabling the description of Java objects in XML, and conversely, the creation of Java object from their XML description. This process is commonly referred to as (de)serialization or (un)marshalling. It is usually employed to make the data persistent across executions, by storing the XML text on disk or into XML databases.

Other libraries such as XStream, Castor, and JAXB are other viable solutions. Compared to these, Jaseto offers a cleaner and shorter source code, better performance (its proves 10Ă— faster than Castor and XStream), a solution to some of their limitations: no need to know in advance the type of an object to be deserialized, no need to resort to annotations, no need to follow the JavaBean spec, etc.

Context in which the software is used

Jaseto is used in our lab in order to store and export graph and configuration data.

Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 07/10/13
  • Minor correction: 07/10/13

ImagineMVS : 3D reconstruction in multiple view stereovision

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 20101112 - 12/11/2010
  • License(s): Proprietary licence
  • Status: internal use
  • Support: maintained, no ongoing development
  • Designer(s): Renaud Keriven
  • Contact designer(s): renaud.keriven @ acute3D.com
  • Laboratory, service: Acute3D company

 

General software features

A complete algorithmic pipeline for reconstruction of a 3D model from photographs.

The software takes as input calibrated views (that is, photographs with camera posed and oriented in space and internal parameters known). As output, it yields a textured 3D mesh. The steps are the following:

  • estimation of dense correspondences between images by plane sweeping,
  • triangulation to get a point cloud,
  • tetrahedral meshing of the point cloud and removal of hidden faces to get an initial mesh,
  • mesh optimization by incremental minimization of an energy balancing data fidelity and regularity,
  • creation from view fragments of a texture atlas to apply to the mesh.
Context in which the software is used

Internal use in IMAGINE project (École des Ponts ParisTech/CSTB).

This software is at the core of the start-up Acute3D.

Publications related to the software

Vu Hoang Hiep, Renaud Keriven, Patrick Labatut and Jean-Philippe Pons. Towards high-resolution large-scale multi-view stereo, Proceedings of CVPR 2009, pp. 1430-1437.

Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 07/10/13
  • Minor correction: 07/10/13

OpenMEEG : resolution of forward problems in electroencephalography and magnetoencephalography

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 2.1 - 17/08/2011
  • License(s): CeCILL-B
  • Status: stable release
  • Support: maintained, ongoing development
  • Designer(s): Theodore Papadopoulo
  • Contact designer(s): Theodore.Papadopoulo @ inria.fr
  • Laboratory, service:

 

General software features

OpenMEEG, now developed by the Athena project (INRIA Sophia Antipolis), is dedicated essentially to the resolution of the forward MEG (magneto-encephalography) and EEG (electroencephalography) problems. For this purpose, it uses a finite surface element method (BEM) that involves at the same time surface potentials and normal currents, which yields symmetrical matrices unlike classical approaches. This approach yields more precise results as well.

Though developed essentially for problems related to brain, OpenMEEG can also be used in other contexts such as electrocardiography, nerve simulation or electrical propagation in the cochlea.

OpenMEEG starts from a geometric-physical description of the head as nested surfaces in the form of meshes (interfaces between head tissues) and of conductivities of the surface delimited tissues. Then, with a description of EEG and/or MEG capture devices, it yields a leadfield, i.e., the transfer matrix modelizing the linear relation from sources to capture devices.

OpenMEEG is written entirely in C++, but is usable from Matlab or Python. It is used/integrated in a few software suites for analysis of signals in the brain, such as Brainstorm, Fieldtrip or SPM, ...

Context in which the software is used

Research in medical imagery.

Publications related to the software
  • A. Gramfort, T. Papadopoulo, E. Olivi, M. Clerc. OpenMEEG: opensource software for quasistatic bioelectromagnetics, BioMedical Engineering OnLine 45:9, 2010.

  • Kybic J., Clerc M., Abboud T., Faugeras O., Keriven R., Papadopoulo T., A common formalism for the integral formulations of the forward EEG problem. IEEE Transactions on Medical Imaging, 24:12-28, 2005.

  • See also the software documentation: http://www-sop.inria.fr/athena/software/OpenMEEG/i...

Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 22/09/13
  • Minor correction: 22/09/13

OpenMVG : C++ library for multi-view geometry in computer vision

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 0.1 - 08/02/2013
  • License(s): Mozilla Public Licence - V2
  • Status: stable release
  • Support: maintained, ongoing development
  • Designer(s): Pierre Moulon
  • Contact designer(s): pmoulon @ gmail.com
  • Laboratory, service:

 

General software features

The library provides solvers for multi-view geometry, from 2 to n views:

  • homography,
  • fundamental matrix,
  • essential matrix,
  • pose estimation,
  • triangulation.

A generic framework allows using these solvers in robust estimation, as RANSAC and AC-RANSAC.

Moreover, a complete algorithmic pipeline for external calibration is provided, as a modern alternative to Bundler software.

The philosophy of this C++ library is to write clear and maintainable code. All modules have unitary tests. It relies on Eigen for linear algebra, Google's Ceres for Levenberg-Marquardt minimization and Lemon for graph processing.

Context in which the software is used

Internally used for multi-view calibration and 3D reconstruction.

Publications related to the software

Adaptive Structure from Motion with a contrario model estimation. Pierre Moulon, Pascal Monasse and Renaud Marlet. Proceedings of ACCV 2012.

Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 22/09/13
  • Minor correction: 22/09/13

Imagine++ : C++ libraries for teaching, image processing and numerical computation

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 4.0.1 - Septembre 2012
  • License(s): not yet chosen
  • Status: stable release, under development
  • Support: maintained, ongoing development
  • Designer(s): R. Keriven, P. Monasse
  • Contact designer(s): monasse @ imagine.enpc.fr
  • Laboratory, service:

 

General software features

4 libraries are proposed:

  • Common: multi-dimensional arrays with shared memory for fast copy, static size vector and matrices.
  • LinAlg: linear algebra with dynamic size vectors and matrices, solution of linear systems, matrix decompositions (SVD, QR, Cholesky).
  • Graphics: windows with tabs, 2D graphics (elementary shapes, bitmaps) and 3D graphics (elementary volumes, triangulated meshes), animations, mouse and keyboard events.
  • Images: input/output in standard formats, geometric transformations, interpolation, standard filters.
Context in which the software is used

The focus is put on easy usage and efficiency. Display relies on Qt and OpenGL, linear algebra on Eigen.

  • Teaching programming: allows writing easily recreational software, with protection from classical errors that are critical for performance by using shallow copy for images and matrices.
  • Research in image processing and computer vision: additional modules for optimization, multi-view geometry and interest point dectection are used internally.
Publications related to the software
Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 22/09/13
  • Minor correction: 22/09/13

Ibex : C++ numerical library based on interval arithmetic and constraint programming

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 2.0.9 - 28/08/2013
  • License(s): LGPL - v3
  • Status: beta release
  • Support: maintained, ongoing development
  • Designer(s): Ibex team
  • Contact designer(s): gilles.chabert @ mines-nantes.fr
  • Laboratory, service: Universidad TĂ©cnica Federico Santa MarĂ­a (Chile)

 

General software features

This C++ library can be used to solve a variety of problems that can be formulated roughly as:

Find a reliable characterization with boxes (Cartesian product of intervals) of sets implicitely defined by constraints.

Where 'reliable' means that all sources of uncertainty should be taken into account, including:

  • approximation of real numbers by floating-point numbers,
  • round-off errors,
  • truncation linearization,
  • model parameter uncertainty,
  • measurement noise,
  • ...
Context in which the software is used

Tool for research in constraint programming.

Publications related to the software
Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 22/09/13
  • Minor correction: 22/09/13

Norm_Est : fast and robust normal estimation for point clouds with sharp features

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 20130813 - 13/08/2013
  • License(s): GPL - v3
  • Status: stable release
  • Support: maintained, no ongoing development
  • Designer(s): Alexandre Boulc'h
  • Contact designer(s): boulc-ha @ imagine.enpc.fr
  • Laboratory, service:

 

General software features

This software computes the normal to the underlying surface at every point of a given point cloud. The algorithm does not smooth sharp angles while being as fast as the state of the art.

Context in which the software is used

Software used to obtain the results of publication [1], see also the slides of the presentation (on the web site).

Publications related to the software

[1] Alexandre Boulc'h and Renaud Marlet, Fast and Robust Normal Estimation for Point Clouds with Sharp Features,
Symposium of Geometry Processing 2012, Tallin, Estonia.

Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 19/09/13
  • Minor correction: 19/09/13
  • Index card author: Eric Hivon (IAP)
  • Theme leader : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))

HEALPix : data analysis, simulation and visualisation on the sphere

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 3.11 - April 2013
  • License(s): GPL - GPLv2
  • Status: stable release
  • Support: maintained, ongoing development
  • Designer(s): Eric Hivon; Martin Reinecke; Krzysztof M. Gorski; Anthony J. Banday; Benjamin D. Wandelt; Emmanuel Joliet; William O'Mullane; Cyrille Rosset; Andrea Zonca
  • Contact designer(s): hivon at iap.fr
  • Laboratory, service: MPA (Garching, Allemagne), Caltech (Pasadena, CA,Etats-Unis), TAC (Copenhague, Danemark), ESAC (Madrid, Espagne), JPL (Pasadena, CA, Etats-Unis), ESO (Garching, Allemagne)

 

General software features

The HEALPix software implements the HEALPix (Hierarchical Equal Area iso-Latitude Pixelation) pixelation of the sphere. Initially developed for the simulation and analysis of ESA Planck satellite observations (dedicated to the study of the Cosmic Microwave Background (CMB) anisotropies, whose first results were delivered in March 2013), this software and its pixelation algorithm have become standard tools in the simulation and analysis of data on the sphere, including the NASA WMAP satellite, also dedicated to CMB observation, and the Pierre Auger ground based observatory for high energy cosmic rays, and are used for other astrophysical and geological studies.

Main features of the pixelation

At a given resolution, all HEALPix pixels have the same surface area, even if their shape varies slightly. Thanks to the hierarchical feature of the pixelation, upgrading its resolution to the next level simply amounts to divide each pixel into four sub-pixel of the same area. This allows quick and efficient upgrading and downgrading operations of existing maps.

Since the pixels are regularly spaced on iso-latitude rings, Spherical Harmonics can be computed very efficiently. The synthesis or analysis up to multipole Lmax  of a spherical data set containing Npix pixels is reduced from    Npix Lmax2   to   Npix½ Lmax2  compared to non iso-latitude pixelation.

Features of the software package

The represents data on the sphere, and enables analysis or simulation of these maps in (scalar or spin-weighted) Spherical Harmonics, as well as various kinds of statistical analyses and processing. Portable FITS files are used for input and output. The list of available functions includes:

  • generation of random maps (gaussian or not) from an arbitrary angular power spectrum,
  • computation of the angular power spectrum (or angular correlation function) of a map,
  • convolution of a spherical map with an arbitrary circular window,
  • tessellation of the sphere and pixel processing supported down to a pixel size of 0.4 milliarcseconds (equivalent to 3.5 1018 pixels on the sphere),
  • median filtering of a map,
  • search of local extrema in a map,
  • query of pixels located in user defined disks, triangles, polygons, ...
  • processing of binary masks to identify 'holes' in order to fill them, or to apodize masks,
  • visualization of HEALPix sky maps either on the whole sky (using Mollweide or orthographic projections) or on a patch (gnomic or cartesian projections),
  • output in Google Map/Google Sky and DomeMaster format.

The most expensive operations, such a Spherical Harmonics Transform have been carefully optimised and benefit from a shared memory parallelisation based on OpenMP.

Contents of the software package

The software is available in C, C++, Fortran90, IDL/GDL, Java and python. The following modules are provided in each of these languages:

  • a library of tools (subroutines, functions, procedures, modules, classes, ...depending on languages) covering most of the functionnalities described above, as well as supporting ancillary tools (eg, parameter file parsing),
  • a set of stand-alone facilities based on the library above and each implementing one of HEALPix major features (map generation or analysis, filtering, resolution udgrade or downgrade, visualization). These applications are generally run via an interactive dialog or an ASCII parameter file. Their source code can be used as a starting point for user specific developments,
  • an extensive PDF and/or HTML documentation describing in details the API, inner working and limitations of each tool and application.

Finally, some tools (interactive script and Makefile) are provided to manage and facilitate the compilation and installation of one or several of the libraries and facilities, for most combinations of hardwares, operating systems, compilers, ...

Third Party Developements

One can distinguish two kinds of third party developements (defined as not (yet) being part of the official HEALPix package described above):

  • new functionalities, for instance many tools based on Minkowski functionals, wavelets (iSAP, MRS, S2LET, SphereLab), or structure identification (DisPerSE) developed by various research teams can be applied to data stored in HEALPix format,
  • translations, re-implementations or wrapping of (some of) existing functionalities, for instance in Matlab/Octave (Mealpix) and Yorick (YHeal) are available. (See (almost) exhaustive list.)

Context in which the software is used

Software used for the analysis of Planck satellite data.
Data format supported by Aladin visualisation software to represent diffuse astronomical data on the sky.

Publications related to the software

Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 08/09/13
  • Minor correction: 08/09/13

IntegerVectorsModPermutationGroup : enumeration up to the action of a permutation group

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • License(s): GPL
  • Status: stable release
  • Support: maintained, ongoing development
  • Designer(s): Nicolas Borie
  • Contact designer(s): nicolas.borie@univ-mlv.fr
  • Laboratory, service:

 

General software features

IntegerVectorsModPermutationGroup is an enumeration engine of integer vectors up to the action of a permutation group.

Let n a positif integer and G a permutation group, subgroup of the symmetric group of order n. This Sage module IntegerVectorsModPermutationGroup allows to enumerate tuples of length n modulo the action by position of G. This problem generalizes the enumeration of unlabelled graphs up to an isomorphism. One can also add some constraints like the sum of the entries or their maximum size.

This module is completly integrated in Sage since the version 4.7.

Exemple

Exemple for the cyclic group over 4 elements:

sage: G = PermutationGroup([[(1,2,3,4)]]); G
Permutation Group with generators [(1,2,3,4)]
sage: G.cardinality()
4
sage: S = IntegerVectorsModPermutationGroup(G); S
Integer vectors of length 4 enumerated up to the action of Permutation Group with generators [(1,2,3,4)]
sage: S.cardinality()
+Infinity
sage: it = iter(S)
sage: for i in range(25): v = it.next(); print v, " : ", S.orbit(v)
....:
[0, 0, 0, 0]  :  set([[0, 0, 0, 0]])
[1, 0, 0, 0]  :  set([[1, 0, 0, 0], [0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, 1]])
[2, 0, 0, 0]  :  set([[2, 0, 0, 0], [0, 0, 2, 0], [0, 0, 0, 2], [0, 2, 0, 0]])
[1, 1, 0, 0]  :  set([[1, 0, 0, 1], [0, 0, 1, 1], [1, 1, 0, 0], [0, 1, 1, 0]])
[1, 0, 1, 0]  :  set([[0, 1, 0, 1], [1, 0, 1, 0]])
[3, 0, 0, 0]  :  set([[0, 0, 3, 0], [0, 3, 0, 0], [3, 0, 0, 0], [0, 0, 0, 3]])
[2, 1, 0, 0]  :  set([[0, 2, 1, 0], [0, 0, 2, 1], [1, 0, 0, 2], [2, 1, 0, 0]])
[2, 0, 1, 0]  :  set([[0, 1, 0, 2], [0, 2, 0, 1], [1, 0, 2, 0], [2, 0, 1, 0]])
[2, 0, 0, 1]  :  set([[2, 0, 0, 1], [0, 1, 2, 0], [1, 2, 0, 0], [0, 0, 1, 2]])
[1, 1, 1, 0]  :  set([[1, 1, 1, 0], [1, 1, 0, 1], [1, 0, 1, 1], [0, 1, 1, 1]])
[4, 0, 0, 0]  :  set([[4, 0, 0, 0], [0, 4, 0, 0], [0, 0, 4, 0], [0, 0, 0, 4]])
[3, 1, 0, 0]  :  set([[0, 0, 3, 1], [1, 0, 0, 3], [0, 3, 1, 0], [3, 1, 0, 0]])
[3, 0, 1, 0]  :  set([[0, 3, 0, 1], [0, 1, 0, 3], [3, 0, 1, 0], [1, 0, 3, 0]])
[3, 0, 0, 1]  :  set([[0, 0, 1, 3], [3, 0, 0, 1], [0, 1, 3, 0], [1, 3, 0, 0]])
[2, 2, 0, 0]  :  set([[0, 2, 2, 0], [2, 2, 0, 0], [2, 0, 0, 2], [0, 0, 2, 2]])
[2, 1, 1, 0]  :  set([[2, 1, 1, 0], [1, 0, 2, 1], [1, 1, 0, 2], [0, 2, 1, 1]])
[2, 1, 0, 1]  :  set([[0, 1, 2, 1], [1, 0, 1, 2], [2, 1, 0, 1], [1, 2, 1, 0]])
[2, 0, 2, 0]  :  set([[2, 0, 2, 0], [0, 2, 0, 2]])
[2, 0, 1, 1]  :  set([[1, 2, 0, 1], [2, 0, 1, 1], [0, 1, 1, 2], [1, 1, 2, 0]])
[1, 1, 1, 1]  :  set([[1, 1, 1, 1]])
[5, 0, 0, 0]  :  set([[0, 0, 0, 5], [5, 0, 0, 0], [0, 5, 0, 0], [0, 0, 5, 0]])
[4, 1, 0, 0]  :  set([[0, 0, 4, 1], [1, 0, 0, 4], [0, 4, 1, 0], [4, 1, 0, 0]])
[4, 0, 1, 0]  :  set([[0, 4, 0, 1], [1, 0, 4, 0], [0, 1, 0, 4], [4, 0, 1, 0]])
[4, 0, 0, 1]  :  set([[4, 0, 0, 1], [1, 4, 0, 0], [0, 0, 1, 4], [0, 1, 4, 0]])
[3, 2, 0, 0]  :  set([[3, 2, 0, 0], [0, 0, 3, 2], [2, 0, 0, 3], [0, 3, 2, 0]])

Context in which the software is used

The development of a such engine was necessary for the thesis work of the author. The thesis is about effective invariant theory. This module is also usefull in the following fields:

  • Effective invariant theory,
  • Effective Galois theory,
  • Structure Species theory.
Publications related to the software
Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 24/04/13
  • Minor correction: 24/04/13

X!TandemPipeline : edit, filter, merge and group your peptide/protein identifications from MS/MS mass spectra

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 3.3.0 - 7 juillet 2012
  • License(s): GPL - v3
  • Status: stable release
  • Support: maintained, ongoing development
  • Designer(s): Benoit Valot, Olivier Langella
  • Contact designer(s): olivier.langella@moulon.inra.fr
  • Laboratory, service:

 

General software features

X!TandemPipeline is a free software (GPL v3) that helps you to filter and group your peptide/protein identifications from MS/MS mass spectra.

Main features :

Context in which the software is used

X!TandemPipeline is designed for a day use by biologists. It performs MS identifications, filters and groups huge data very quickly.

Publications related to the software

Ludovic Bonhomme, Benoit Valot, Francois Tardieu, Michel Zivy. “Phosphoproteome Dynamics Upon Changes in Plant Water Status Reveal Early Events Associated with Rapid Growth Adjustment in Maize Leaves.” Molecular & Cellular Proteomics: MCP (July 10, 2012). http://www.ncbi.nlm.nih.gov/pubmed/22787273.

Syndicate content