Skip to content

Commit c9b7885

Browse files
committed
README update
1 parent f1be4d1 commit c9b7885

1 file changed

Lines changed: 29 additions & 29 deletions

File tree

README.md

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
</p>
66

77
<p align="center">
8-
<strong>FEM · Shells · Rigid Bodies · Frictional Contact · Strongly Coupled</strong><br>
8+
<strong>FEM · Shells · Rigid Bodies · Frictional Contact · Strong Coupling</strong><br>
99
<a href="https://stark.physics-simulation.org/">Docs</a> &nbsp;·&nbsp; <a href="https://animation.rwth-aachen.de/media/papers/88/2024_-_ICRA_-_STARK.pdf">PDF</a> &nbsp;·&nbsp; <a href="https://doi.org/10.1109/icra57147.2024.10610574">IEEE Page</a>
1010
</p>
1111

1212
**STARK** is a C++ and Python simulation platform for **strongly coupled simulation of rigid and deformable bodies with frictional contact**.
13-
It provides a rich set of physics models — volumetric FEM, discrete shells, rods, rigid body joints, and IPC frictional contact — driven by [SymX](https://github.com/InteractiveComputerGraphics/SymX), a symbolic differentiation and JIT compilation engine that eliminates manual derivative computation, evaluation loops, and most performance tuning.
13+
It provides a broad set of physics models, including volumetric FEM, discrete shells, rods, rigid body joints, attachments, and IPC-based frictional contact.
14+
STARK is built on top of [SymX](https://github.com/InteractiveComputerGraphics/SymX), a symbolic differentiation and JIT compilation engine that automates derivative generation, evaluation, and much of the solver plumbing.
1415

1516
STARK is **very easy to use** and it is **great for research**.
1617
It 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/).
@@ -25,7 +26,7 @@ It has been validated through real-world, challenging cases of interactions betw
2526
- **Deformable objects**
2627
- 1D rods and cables — axial strain with optional strain limiting
2728
- 2D cloth and shells — Neo-Hookean membrane strain ([Stable Neo-Hookean](https://dl.acm.org/doi/10.1145/3180491)) + [discrete shell bending](https://dl.acm.org/doi/10.5555/846276.846284), inflation pressure
28-
- 3D soft bodies — linear tetrahedral FEM with Neo-Hookean constitutive model
29+
- 3D soft bodies — linear tetrahedral FEM with a Neo-Hookean constitutive model
2930
- [Strain limiting](https://dl.acm.org/doi/10.1145/3450626.3459767), inertial and material damping, quasistatic mode
3031
- Composite materials: freely mix volume, surface, and rod energies on a single mesh
3132
- **Rigid bodies**
@@ -34,20 +35,20 @@ It has been validated through real-world, challenging cases of interactions betw
3435
- Damped springs and distance limits
3536
- Automatic stiffness hardening to enforce tight tolerances without hand-tuning
3637
- **Frictional contact**
37-
- [IPC](https://dl.acm.org/doi/abs/10.1145/3386569.3392425)-based, guaranteed intersection-free
38+
- [IPC](https://dl.acm.org/doi/abs/10.1145/3386569.3392425)-based, intersection-free contact handling
3839
- All coupling modes: deformable–deformable, rigid–deformable, rigid–rigid
39-
- Per-pair Coulomb friction, per-object contact thickness
40-
- **Attachments** — penalty-based gluing by point list, barycentric coords, or proximity search; deformable–deformable and rigid–deformable
41-
- **Powered by [SymX](https://github.com/InteractiveComputerGraphics/SymX)** — symbolic differentiation, automatic code generation, JIT compilation, OpenMP parallelism, and a robust Newton solver with line search and projection to PD
42-
- **Python API** (`pystark`) — full access to the C++ API from Python with NumPy interop
40+
- Per-pair Coulomb friction and per-object contact thickness
41+
- **Attachments** — penalty-based gluing by point list, barycentric coordinates, or proximity search; deformable–deformable and rigid–deformable
42+
- **Powered by [SymX](https://github.com/InteractiveComputerGraphics/SymX)** — symbolic differentiation, automatic code generation, JIT compilation, OpenMP parallelism, and a robust Newton solver with line search and positive-definite projection
43+
- **Python API** (`pystark`) — access to the C++ API from Python with NumPy interoperability
4344
- **Event-based scripting** — time events, callbacks, and animated boundary conditions
44-
- **Extensible** — add custom SymX energy potentials without modifying STARK internals; the symbolic gradient and Hessian are derived automatically
45+
- **Extensible** — add custom SymX energy potentials without modifying STARK internals; symbolic gradients and Hessians are derived automatically
4546

4647

4748
## Hello World
4849

49-
<p align=center>
50-
<img src="docs/source/_static/spinning_box_cloth.gif">
50+
<p align="center">
51+
<img src="docs/source/_static/spinning_box_cloth.gif" alt="Spinning box cloth example">
5152
</p>
5253

5354
```python
@@ -94,17 +95,16 @@ def script(t):
9495
simulation.run(duration, script)
9596
```
9697

97-
The native C++ scene definition is 1-to-1 the same calls.
98+
The native C++ scene definition follows the same API structure.
9899
Output is written as VTK files; you can open them in [ParaView](https://www.paraview.org/) or in Blender with the [Sequence Loader Addon](https://github.com/InteractiveComputerGraphics/blender-sequence-loader).
99100

100101

101102
## Extending STARK
102103

103104
STARK physics models are SymX symbolic definitions of energy potentials.
104-
You can inject custom physics, without modifying worrying about implementation details or STARK internals.
105+
You can add custom physics without worrying about differentiation or other implementation details.
105106

106-
The following example adds an implicit magnetic attraction to deformable vertices.
107-
What would take some effort, even for such a simple model, it's just a handful of lines:
107+
The following example adds an strongly coupled implicit magnetic attraction to deformable vertices, just with a small symbolic energy definition:
108108

109109
```cpp
110110
stark::core::Stark& stark_core = simulation.get_stark();
@@ -129,12 +129,12 @@ stark_core.global_potential->add_potential("EnergyMagneticAttraction", magnetic_
129129

130130
## Examples
131131

132-
The repository comes with C++ and Python examples to get you started.
132+
The repository includes C++ and Python examples to get you started.
133133

134134
**C++ examples** (`examples/main.cpp`):
135135
- `hanging_net` — a net of rods fixed at its perimeter and hanging under gravity
136136
- `hanging_cloth` — cloth fixed by two corners and hanging under gravity
137-
- `hanging_deformable_box` — a soft body fixed by two corners, baseline for FEM
137+
- `hanging_deformable_box` — a FEM soft body fixed by two corners
138138
- `hanging_box_with_composite_material` — volume + surface + rod on one mesh
139139
- `quasistatic_column_extrusion` — quasistatic Neo-Hookean
140140
- `attachments` — two cloth panels and a rigid body glued by attachments
@@ -156,15 +156,16 @@ The repository comes with C++ and Python examples to get you started.
156156

157157
### C++
158158

159-
STARK requires only CMake 3.18+, a C++20 compiler, and OpenMP.
159+
STARK requires CMake 3.18+, a C++20 compiler, and OpenMP.
160160

161161
```bash
162162
cmake -S . -B build
163163
cmake --build build --parallel
164164

165165
build/examples/examples # run C++ examples
166166
```
167-
See [Setup in Docs](https://stark.physics-simulation.org/setup.html) for the full integration guide.
167+
168+
See the [setup documentation](https://stark.physics-simulation.org/setup.html) for the full integration guide.
168169

169170
### Python (`pystark`)
170171

@@ -179,7 +180,7 @@ cmake --build build --parallel --target pystark
179180
export PYTHONPATH=/path/to/stark/pystark:$PYTHONPATH
180181
```
181182

182-
See [Setup in Docs](https://stark.physics-simulation.org/setup.html) for Conda/virtualenv instructions and Windows notes.
183+
See the [setup documentation](https://stark.physics-simulation.org/setup.html) for Conda/virtualenv instructions and Windows notes.
183184

184185

185186
## Documentation
@@ -200,10 +201,10 @@ Full documentation: <https://stark.physics-simulation.org/>
200201

201202
## Research Using STARK
202203

203-
* [Progressively Projected Newton's Method](https://arxiv.org/abs/2505.21013)
204-
* [Strongly coupled simulation of magnetic rigid bodies](https://doi.org/10.1111/cgf.15185)
205-
* [Micropolar Elasticity in Physically-Based Animation](https://doi.org/10.1145/3606922)
206-
* [Curved ThreeDirector Cosserat Shells with Strong Coupling](https://doi.org/10.1111/cgf.15183)
204+
- [Progressively Projected Newton's Method](https://arxiv.org/abs/2505.21013)
205+
- [Strongly coupled simulation of magnetic rigid bodies](https://doi.org/10.1111/cgf.15185)
206+
- [Micropolar Elasticity in Physically-Based Animation](https://doi.org/10.1145/3606922)
207+
- [Curved Three-Director Cosserat Shells with Strong Coupling](https://doi.org/10.1111/cgf.15183)
207208

208209

209210
## Cite STARK
@@ -221,9 +222,10 @@ If STARK contributes to your research, please cite the paper.
221222
}
222223
```
223224

225+
224226
## Want to Collaborate?
225227

226-
STARK is exactly the kind of project that benefits from real use in real environments.
228+
STARK benefits from real use in demanding simulation environments.
227229

228230
If you are:
229231

@@ -240,7 +242,7 @@ then feel free to reach out!
240242
<table border="0" style="align_center;border-radius: 20px;padding: 20px;margin:auto;border:0px">
241243
<tr>
242244
<td>
243-
<img src="https://raw.githubusercontent.com/boschresearch/bosch-corporate-information/main/static/Bosch_symbol_logo_black_red.svg" width="300">
245+
<img src="https://raw.githubusercontent.com/boschresearch/bosch-corporate-information/main/static/Bosch_symbol_logo_black_red.svg" width="300" alt="Bosch logo">
244246
</td>
245247
<td>
246248
Robert Bosch GmbH is acknowledged for generous financial support of the development of the initial version of STARK from 2019 to 2021.
@@ -249,7 +251,5 @@ then feel free to reach out!
249251
</table>
250252

251253
Contributors to the codebase:
252-
- [José Antonio Fernández-Fernández](https://github.com/JoseAntFer) (Corresponding author)
254+
- [José Antonio Fernández-Fernández](https://github.com/JoseAntFer) (corresponding author)
253255
- [Fabian Löschner](https://github.com/w1th0utnam3)
254-
255-

0 commit comments

Comments
 (0)