Rhino plugin and PyElastica extension for data visualization.
Project description
PyElastica to Rhino
The package is in alpha-phase dev-stage.
PyElastica extension and Rhino plugin for Cosserat Rod (+ Rigid Body) visualization.
Requirements
The Grasshopper plugin does not have any additional requirement, but we recommend using anemone
together. This plugin provide loop function that can be used to generate animated video.
Grasshopper Plugin
- PyElastica exports
npz
file which can directly be imported usingNpzImport
module.- For now,
NpzImport(Legacy)
is used. More generalized version is still under development.
- For now,
- Provides
CosseratRod
andCosseratRodPeriodic
that constructs rods directly.- Shape of position:
(num_rod, timesteps, 3, num_nodes)
- Shape of radius:
(num_rod, timesteps, 3, num_elements)
- If
periodic
is set to true, the trapazoidal averaging step is skipped for the radius.
- Shape of position:
- All modules include
C (switch)
input. The purpose is to serialize the execution. - All modules include
D (debug)
output which returns the debugging text to inform progression or runtime error.
Legacy Import Mode
The grasshopper module import npz
file. In the legacy import module, we expect the npz
file to have the key <group>_position_history
and <group>_radius_history
for each group.
<group>_position_history
should have the shape<number of rod, timesteps, 3 (dimension), number of nodes>
.<group>_radius_history
should have the shape<number of rod, timesteps, number of elements>
.
The
number of nodes
is expected to be one more than thenumber of elements
. If the periodic is set toTrue
, thenumber of nodes
can be equal to thenumber of elements
.
For sphere, the
number of elements
and thenumber of nodes
are both1
. In such case, asphere module
must be used in grasshopper.
PyElastica Extension
We provide a data collector extension to PyElastica to easily collect the batch of data.
pip install elastica-rhino
Example Usage
import elastica
import elastica_rhino as er
... <simulation setup>
data_collector = er.RhinoExportCollector(
save_path="data",
step_skip=int((1/fps)/dt) # Collect data every 'step_skip' iteration
)
for arm in arm_list:
simulation.collect_diagnostics(arm).using(
er.ExportGeometry,
data_collector,
group="arm"
)
for muscle in muscle_list:
simulation.collect_diagnostics(muscle).using(
er.ExportGeometry,
data_collector,
group="muscle"
)
... <simulation setup>
simulation.finalize()
... <simulation run>
data_collector.save()
In Rhino, objects in the same group will be collected by layers. We recommend setting the parameter group
for the same material or color of the rods.
Included Callbacks
- ExportGeometry
- ExportStrain (work in progress)
- ExportInternalStress (work in progress)
- ExportExternalStress (work in progress)
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
File details
Details for the file elastica_rhino-0.1.1.tar.gz
.
File metadata
- Download URL: elastica_rhino-0.1.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c52322286822353dd28d4d593ab35f2832a4353db2e6317709b77479697d166 |
|
MD5 | 89835e291be08f6504a2bfb2a961ed61 |
|
BLAKE2b-256 | a3138ef736fcc216b2dd4e2da5eb4fa7929a412e67a63db0602ac4ca8f769634 |
File details
Details for the file elastica_rhino-0.1.1-py2.py3-none-any.whl
.
File metadata
- Download URL: elastica_rhino-0.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a391f38f82e44ccb27d6166d5d31f5de3fd66cd79798673f0b0542b0c7f27060 |
|
MD5 | e34571692103f3f98f1ea513b6b4ed91 |
|
BLAKE2b-256 | d2eb44ded097c2c1e95f878549a9bc70b5c3eaa174ef8ef5e942e8e4cca9f678 |