An integrated ecosystem for creating Analysis-Ready Digital Twins from volumetric images (CT-scans). This repository serves as the central hub and orchestrator for a pipeline bridging Computer-Aided Design (CAD), Virtual Image Correlation (VIC), and IsoGeometric Analysis (IGA).
The framework consists of three independent libraries. This repository contains the integration example, but the core libraries must be installed separately:
bsplyne: The geometric core. Handles multivariate tensor-product B-splines and multi-patch topology.
📖 Documentation | 📂 ExamplesIGA_for_bsplyne: The mechanical solver. A high-performance IGA linear elasticity engine.
📖 Documentation | 📂 ExamplesvolVIC: The vision layer. Performs Virtual Image Correlation to fit B-spline surfaces onto 3D image features.
📖 Documentation | 📂 Examples
Note: Both
bsplyneandIGA_for_bsplyneinclude a dedicatedexamples/tutorialfolder containing a pedagogical PDF guide and ordered Python scripts (01_...,02_...) for a smooth onboarding.
We recommend using Conda to manage optional but highly recommended high-performance dependencies (like SuiteSparse).
conda create -n iga_pipeline python=3.9
conda activate iga_pipelineconda install scikit-sparse # Highly recommended for large problems
pip install sparseqr # Recommended for fast C1 constraint impositionTo ensure a consistent environment, it is recommended to install the exact versions from the requirements.txt file:
pip install -r requirements.txtAlternatively, since volVIC depends on both bsplyne and IGA_for_bsplyne, you can install the full stack (potentially with more recent versions) via volVIC:
pip install volVIC- Unified B-spline Representation: Continuous pipeline from image registration to simulation without remeshing.
- High Performance: Critical numerical kernels are either JIT-compiled with
numbaor fully vectorized withnumpyand sparse withscipy.sparse. - Advanced BCs: Complex kinematic constraints handled via a QR-based condensation layer.
This repository provides a complete demonstration of an as-manufactured digital twin reconstruction. The scripts are located in examples/geo_to_twin_one_cell/:
make_geo.py: Generation of the as-designed 48-patch BCC B-spline assembly.fit_tomography.py: Rigid ICP pre-alignment andvolVICnon-rigid surface fitting onto thecropped_CT_scan.tiff.compute_response.py: Linear elastic IGA simulation (compression-torsion) on the deformed geometry.
Authors: D. Bichet, J.C. Passieux, J.N. Périé, R. Bouclier
If you use this framework in your research, please cite:
- The method:
@article{Bichet2025_method,
title={Isogeometric multipatch surface fitting in tomographic images: Application to lattice structures},
author={Bichet, D. and Passieux, J.C. and Périé, J.N. and Bouclier, R.},
journal={Computer Methods in Applied Mechanics and Engineering},
volume={436},
pages={117729},
year={2025},
issn={0045-7825},
doi={10.1016/j.cma.2025.117729},
url={[https://doi.org/10.1016/j.cma.2025.117729](https://doi.org/10.1016/j.cma.2025.117729)}
}- The software:
@article{Bichet2026_software,
title={image2iga: A JIT-Compiled Python Framework for Image-to-Isogeometric Analysis via Spline Template Fitting},
author={Bichet, Dorian and Passieux, J-C. and Périé, J-N. and Bouclier, R.},
year={2026},
journal={Submitted}
}This software is governed by the CeCILL v2.1 license under French law and abiding by the rules of distribution of free software. You can use, modify and/or redistribute the software under the terms of the CeCILL license as circulated by CEA, CNRS and INRIA at the following URL: http://www.cecill.info.
