Skip to content

Commit aecac20

Browse files
committed
readme update
1 parent 200666f commit aecac20

1 file changed

Lines changed: 27 additions & 32 deletions

File tree

README.md

Lines changed: 27 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,43 @@
1-
**Note:** This repository is a *work in progress*.
2-
More documentation, examples, tutorials, etc. will be coming as the rest of our responsibilities permit.
3-
In any case, Stark itself is fully functional and actively used in our own research.
4-
We appreciate your patience and interest.
5-
6-
# Stark
1+
# STARK
72

83
<p align="center">
94
<img src="docs/images/stark1920.png" alt="SymX Logo" style="width:75%;">
105
</p>
116

12-
Stark is a C++ and Python simulation _platform_ that provides easy access to state-of-the-art methods to robustly solve simulations of rigid and deformable objects in a strongly coupled manner.
7+
STARK is a C++ and Python simulation _platform_ that provides easy access to state-of-the-art methods to robustly solve simulations of rigid and deformable objects in a strongly coupled manner.
138
To the best of our knowledge, no other existing open source simulation environment provides such a rich collection of models, including coupling, with the same level of robustness.
14-
Stark has been validated through real-world, challenging cases of interactions between robots and deformable objects, see the [Stark ICRA'24 paper](https://www.animation.rwth-aachen.de/publication/0588/).
9+
STARK has been validated through real-world, challenging cases of interactions between robots and deformable objects, see the [STARK ICRA'24 paper](https://www.animation.rwth-aachen.de/publication/0588/).
1510

1611
<p align=center>
1712
<img src="docs/images/robotic_hand.png" height="200">
1813
&nbsp;&nbsp;
1914
<img src="docs/images/franka_plastic_cup.jpg" height="200">
2015
</p>
2116

22-
One of the main features of Stark is that it uses a powerful symbolic differentiation and code generation engine that allows for a concise formulation of the global variational form of the non-linear dynamic problem.
23-
Adding new models (e.g. materials, joints, interactions, ...) in Stark is as simple as specifying their energy potential in symbolic form together with the data they depend on.
17+
One of the main features of STARK is that it uses a powerful symbolic differentiation and code generation engine that allows for a concise formulation of the global variational form of the non-linear dynamic problem.
18+
Adding new models (e.g. materials, joints, interactions, ...) in STARK is as simple as specifying their energy potential in symbolic form together with the data they depend on.
2419
This removes the tedium of manually deriving, implementing, testing and optimizing new models and integrating them in existing complex simulation environments.
25-
Stark collects all the potentials and uses Newton's Method to find the solution to the non-linear implicit time-stepping problem.
26-
Presently, even though Stark has a C++ and Python API, models can only be defined in C++.
20+
STARK collects all the potentials and uses Newton's Method to find the solution to the non-linear implicit time-stepping problem.
21+
Presently, even though STARK has a C++ and Python API, models can only be defined in C++.
2722

28-
By default, Stark comes out-of-the-box with important widely used models:
23+
By default, STARK comes out-of-the-box with important widely used models:
2924
- 3D and 2D **FEM** discretizations for deformable non-linear materials
3025
- **Discrete Shells** for cloths and stiff shells
3126
- **Rigid Bodies** with joints and motors
3227
- Frictional Contact with **IPC**
3328

3429
See [Features](#features) section for more details.
3530

36-
There are two use cases for Stark:
31+
There are two use cases for STARK:
3732
- As an external, black-box, powerful simulator that can handle very challenging scenarios.
38-
No knowledge of Stark internals are needed in this case, and users can directly use the high-level C++ or Python APIs.
33+
No knowledge of STARK internals are needed in this case, and users can directly use the high-level C++ or Python APIs.
3934
- As a research and development tool for simulation.
40-
Thanks mainly to the symbolic differentiation and integrated collision detection, Stark can dramatically increase productivity of simulation technology research.
41-
See [here](stark/src/models) how the models contained in Stark are implemented.
35+
Thanks mainly to the symbolic differentiation and integrated collision detection, STARK can dramatically increase productivity of simulation technology research.
36+
See [here](stark/src/models) how the models contained in STARK are implemented.
4237

4338

4439
## Hello World
45-
The following is a script example using Stark's Python API to execute a simulation of a piece of cloth falling on a rigid box with a prescribed spinning motion.
40+
The following is a script example using STARK's Python API to execute a simulation of a piece of cloth falling on a rigid box with a prescribed spinning motion.
4641

4742
<p align=center>
4843
<img src="docs/images/spinning_box_cloth.gif">
@@ -96,7 +91,7 @@ The output is a sequence of VTK files per output group (in this case one sequenc
9691
VTK files can be viewed in Blender with [this](https://github.com/InteractiveComputerGraphics/blender-sequence-loader) add-on or in [Paraview](https://www.paraview.org/).
9792
You can use [meshio](https://github.com/nschloe/meshio) to transform VTK meshes to other formats.
9893

99-
Stark code will always follow the same structure:
94+
STARK code will always follow the same structure:
10095
- Define global settings and parameters.
10196
- Add objects, boundary conditions and define interactions. In this example, `presets` are used but custom objects and composed materials are also possible.
10297
- Optionally, specify time-dependent events (script).
@@ -105,12 +100,12 @@ Stark code will always follow the same structure:
105100
See the folder [`stark/pystark/examples`](pystark/examples) for more scenes using the Python API and [`stark/examples`](examples/) for scenes written in C++.
106101

107102

108-
## Get Stark
109-
Stark's C++ and Python APIs are essentially equivalent.
110-
A user who just wants to _use_ Stark with the models that it comes with, probably will prefer the Python API.
111-
Users looking to work on their own new models to _extend_ Stark with new functionality will have to work directly in the C++ source code.
103+
## Get STARK
104+
STARK's C++ and Python APIs are essentially equivalent.
105+
A user who just wants to _use_ STARK with the models that it comes with, probably will prefer the Python API.
106+
Users looking to work on their own new models to _extend_ STARK with new functionality will have to work directly in the C++ source code.
112107

113-
Every time Stark encounters a new potential energy, it will generate and compile code to compute its derivatives.
108+
Every time STARK encounters a new potential energy, it will generate and compile code to compute its derivatives.
114109
Therefore, a C++17 compiler is required.
115110
You can specify the command to invoke a compatible compiler using `pystark.set_compiler_command(str)` in Python and `stark::set_compiler_command(str)` in C++.
116111
By default, it is `"g++"` in Unix and
@@ -121,18 +116,18 @@ in Windows.
121116
Use `pystark.Settings().debug.symx_suppress_compiler_output = False` to inspect the compiler's output.
122117

123118

124-
If you don't have a C++17 compiler and just want to use the models shipped with Stark by default, you can download the corresponding compiled binaries [here](https://rwth-aachen.sciebo.de/s/5NXgsPtoDyVl8Yo).
125-
Don't forget to point Stark to the folder containing those in `settings.output.codegen_directory`.
119+
If you don't have a C++17 compiler and just want to use the models shipped with STARK by default, you can download the corresponding compiled binaries [here](https://rwth-aachen.sciebo.de/s/5NXgsPtoDyVl8Yo).
120+
Don't forget to point STARK to the folder containing those in `settings.output.codegen_directory`.
126121

127122
### Python API
128-
You can install Stark for Python 3.8+ using
123+
You can install STARK for Python 3.8+ using
129124
```
130125
pip install stark-sim
131126
```
132127

133128
### Build from source
134129
To build from source you will need [CMake](https://cmake.org/) and a C++17 compiler.
135-
All dependencies are bundled with Stark or are downloaded by CMake at build time.
130+
All dependencies are bundled with STARK or are downloaded by CMake at build time.
136131

137132
## Examples with code
138133
<div align="center">
@@ -169,7 +164,7 @@ All dependencies are bundled with Stark or are downloaded by CMake at build time
169164
## Features
170165

171166
### Models
172-
Besides a simulator, Stark is a repository of potential energies commonly used for deformable and rigid objects and frictional contact.
167+
Besides a simulator, STARK is a repository of potential energies commonly used for deformable and rigid objects and frictional contact.
173168
The following models can be found in symbolic form in `stark/stark/src/models/`:
174169

175170
* Deformable objects
@@ -198,12 +193,12 @@ The following models can be found in symbolic form in `stark/stark/src/models/`:
198193
- Optional numerical PSD projection of element Hessians
199194
* Event-based scripts
200195

201-
## Research using Stark
196+
## Research using STARK
202197
* ["Micropolar Elasticity in Physically-Based Animation"](https://www.animation.rwth-aachen.de/publication/0582/) - Löschner et al., 2023
203198
* ["Curved Three-Director Cosserat Shells with Strong Coupling"](https://www.animation.rwth-aachen.de/publication/0589/) - Löschner et al., 2024
204199
* ["Strongly Coupled Simulation of Magnetic Rigid Bodies"](https://www.animation.rwth-aachen.de/publication/0590/) - Westhofen et al., 2024
205200

206-
## Cite Stark
201+
## Cite STARK
207202
```bibtex
208203
@InProceedings{FLL+24,
209204
author={Fernández-Fernández, José Antonio and Lange, Ralph and Laible, Stefan and Arras, Kai O. and Bender, Jan},
@@ -223,7 +218,7 @@ The following models can be found in symbolic form in `stark/stark/src/models/`:
223218
<img src="https://raw.githubusercontent.com/boschresearch/bosch-corporate-information/main/static/Bosch_symbol_logo_black_red.svg" width="300">
224219
</td>
225220
<td>
226-
Robert Bosch GmbH is acknowledged for generous financial support of the development of the initial version of Stark from 2019 to 2021.
221+
Robert Bosch GmbH is acknowledged for generous financial support of the development of the initial version of STARK from 2019 to 2021.
227222
</td>
228223
</tr>
229224
</table>

0 commit comments

Comments
 (0)