Elastica is a software to simulate the dynamics of filaments that, at every cross-section, can undergo all six possible modes of deformation, allowing the filament to bend, twist, stretch and shear, while interacting with complex environments via muscular activity, surface contact, friction and hydrodynamics.
Project description
PyElastica is the python implementation of Elastica: an open-source project for simulating assemblies of slender, one-dimensional structures using Cosserat Rod theory.
Visit www.cosseratrods.org for more information and learn about Elastica and Cosserat rod theory.
How to Start
PyElastica is compatible with Python 3.10+.
$ pip install pyelastica
For plotting videos, ffmpeg is typically used.
Documentation of PyElastica is available here.
Related Projects
- C++ elastica for large-simulation: elasticapp
- JAX extension for PyElastica, blocking and GPU computing: PyElastica-Jax
- Cosserat rod with magnetic field: magneto-pyelastica
- Simulate magnetic Cosserat rods interacting with external magnetic environments.
- gymnasium environment for learning and control: gym-softrobot
- BR2 FREE pneumatic actuator simulation: BR2-simulator
- Octopus muscle actuation model: COOMM
- Blender visualization: Blender-Soft-Rod
- Rhino3D plugin for visualizaion: plugin
- Elastica web-interface: PyElastica-Interactive
Citation
We ask that any publications which use Elastica cite as following:
@software{PyElastica,
author = {Arman Tekinalp and
Seung Hyun Kim and
Yashraj Bhosale and
Tejaswin Parthasarathy and
Noel Naughton and
Ali Albazroun and
Rahul Joon and
Songyuan Cui and
Ilia Nasiriziba and
Maximilian Stölzle and
Chia-Hsien (Cathy) Shih and
Mattia Gazzola},
title = {GazzolaLab/PyElastica},
year = 2024,
publisher = {Zenodo},
doi = {10.5281/zenodo.7658871},
url = {https://doi.org/10.5281/zenodo.7658871}
}
References
- Gazzola, Dudte, McCormick, Mahadevan, Forward and inverse problems in the mechanics of soft filaments, Royal Society Open Science, 2018. doi: 10.1098/rsos.171628
- Zhang, Chan, Parthasarathy, Gazzola, Modeling and simulation of complex dynamic musculoskeletal architectures, Nature Communications, 2019. doi: 10.1038/s41467-019-12759-5
List of publications and submissions
- Digital twins for the design, interactive control, and deployment of modular, fiber-reinforced soft continuum arms (UIUC 2026) (Advanced Intelligent Systems)
- Elastica++: A high-performance, multiphysics framework for large interacting assemblies of Cosserat rods (UIUC 2026)
- Soft, slender and active structures in fluids: embedding Cosserat rods in vortex methods (UIUC 2024)
- Neural models and algorithms for sensorimotor control of an octopus arm(UIUC 2024)
- On the mechanical origins of waving, coiling and skewing in Arabidopsis thaliana roots (Tel Aviv University, UIUC 2024) (PNAS)
- Topology, dynamics, and control of an octopus-analog muscular hydrostat (UIUC, 2023)
- Hierarchical control and learning of a foraging CyberOctopus (UIUC, 2023) (Advanced Intelligent Systems)
- Energy-shaping control of a muscular octopus arm moving in three dimensions (UIUC, 2023) (Proceedings of the Royal Society A 2023)
- A sensory feedback control law for octopus arm movements (UIUC, 2022) (IEEE CDC 2022)
- Control-oriented modeling of bend propagation in an octopus arm (UIUC, 2021) (IEEE ACC 2022)
- A physics-informed, vision-based method to reconstruct all deformation modes in slender bodies (UIUC, 2021) (IEEE ICRA 2022) code
- Optimal control of a soft CyberOctopus arm (UIUC, 2021) (IEEE ACC 2021)
- Elastica: A compliant mechanics environment for soft robotic control (UIUC, 2021) (IEEE RA-L 2021)
- Controlling a CyberOctopus soft arm with muscle-like actuation (UIUC, 2020) (IEEE CDC 2021)
- Energy shaping control of a CyberOctopus soft arm (UIUC, 2020) (IEEE CDC 2020)
Contribution
If you would like to participate, please read our contribution guideline. Private development branches are moved to elastica-python repository; access is limited to the core developers, collaborators, and maintainers.
PyElastica is developed by the Gazzola Lab at the University of Illinois Urbana-Champaign.
Senior Developers ✨
Names arranged alphabetically
- Ali Albazroun
- Arman Tekinalp
- Chia-Hsien Shih (Cathy)
- Fan Kiat Chan
- Ilia Nasiriziba
- Noel Naughton
- Seung Hyun Kim
- Songyuan Cui
- Tejaswin Parthasarathy (Teja)
- Xiaotian Zhang
- Yashraj Bhosale
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyelastica-1.0.0.tar.gz.
File metadata
- Download URL: pyelastica-1.0.0.tar.gz
- Upload date:
- Size: 102.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
626ded7d8e47b9c4e6679eac9e2a7598c18b7f70ed6a509ca9d6e209fc43123c
|
|
| MD5 |
4063c1d9e8aee6cd900edfe8885d2bd0
|
|
| BLAKE2b-256 |
9e6bbb5618d488b07b3428b7911c054c7d63dbc5a1ba95135df2774a8de9d8c2
|
File details
Details for the file pyelastica-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pyelastica-1.0.0-py3-none-any.whl
- Upload date:
- Size: 131.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae2277d77ae9f20473c3beb1cbaa883869b826597a074da0b62a4e5fce7cc9f8
|
|
| MD5 |
07cccb271cc1bab18d6230b262780339
|
|
| BLAKE2b-256 |
e9a8e7a4b3818c27d4f95510b49b6b2ad73ff5d843988437ef362feeb1f41204
|