Michele Vidulis*
·
Klara Mundilova*
·
Quentin Becker*
·
Florin Isvoranu
·
Mark Pauly
(* denotes equal contribution)
This repository contains the source code and data for C-Tubes: Design and Optimization of Tubular Structures Composed of Developable Strips, published at SIGGRAPH 2025.
Clone the repository recursively:
git clone --recurse-submodules git@github.com:EPFL-LGG/C-tubes.gitIf you already cloned the repository without the --recurse-submodules flag, run:
git submodule update --init --recursiveTo create a conda environment and install the dependencies run:
cd C-tubes
conda env create -f environment.yml
conda activate C-tubesand install the Ctubes package in editable mode:
pip install -e .pytorch3d, used in the minimal surface example in notebooks/figures/fig17_min_surf.ipynb, can be optionally installed via pip:
pip install "git+https://github.com/facebookresearch/pytorch3d.git"For development, installing the nbstripout git filter is recommended to avoid committing large outputs in Jupyter notebooks:
nbstripout --installWith the conda environment activated, you can run a Jupyter notebook by starting a Jupyter Lab server in the repository root folder:
jupyter labThe notebook notebooks/demo.ipynb provides a quick overview of the main features of the codebase.
To reproduce the figures in the paper, run the notebooks in notebooks/figures/. The output of each notebook is saved in a separate folder in notebooks/figures/output/.
To execute all the notebooks in notebooks/figures/ at once and generate all the data from the paper, run:
cd notebooks/figures
python run_all.pyIf you use this codebase in your project, please consider citing our work:
@article{10.1145/3730933,
author = {Vidulis, Michele and Mundilova, Klara and Becker, Quentin and Isvoranu, Florin and Pauly, Mark},
title = {C-Tubes: Design and Optimization of Tubular Structures Composed of Developable Strips},
year = {2025},
issue_date = {August 2025},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {44},
number = {4},
issn = {0730-0301},
url = {https://doi.org/10.1145/3730933},
doi = {10.1145/3730933},
month = jul,
articleno = {154},
numpages = {19}
}
