warp-lang 1.5.0__py3-none-manylinux2014_aarch64.whl → 1.6.0__py3-none-manylinux2014_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of warp-lang might be problematic. Click here for more details.
- warp/__init__.py +5 -0
- warp/autograd.py +414 -191
- warp/bin/warp-clang.so +0 -0
- warp/bin/warp.so +0 -0
- warp/build.py +40 -12
- warp/build_dll.py +13 -6
- warp/builtins.py +1124 -497
- warp/codegen.py +261 -136
- warp/config.py +1 -1
- warp/context.py +357 -119
- warp/examples/assets/square_cloth.usd +0 -0
- warp/examples/benchmarks/benchmark_gemm.py +27 -18
- warp/examples/benchmarks/benchmark_interop_paddle.py +3 -3
- warp/examples/benchmarks/benchmark_interop_torch.py +3 -3
- warp/examples/core/example_torch.py +18 -34
- warp/examples/fem/example_apic_fluid.py +1 -0
- warp/examples/fem/example_mixed_elasticity.py +1 -1
- warp/examples/optim/example_bounce.py +1 -1
- warp/examples/optim/example_cloth_throw.py +1 -1
- warp/examples/optim/example_diffray.py +4 -15
- warp/examples/optim/example_drone.py +1 -1
- warp/examples/optim/example_softbody_properties.py +392 -0
- warp/examples/optim/example_trajectory.py +1 -3
- warp/examples/optim/example_walker.py +5 -0
- warp/examples/sim/example_cartpole.py +0 -2
- warp/examples/sim/example_cloth.py +3 -1
- warp/examples/sim/example_cloth_self_contact.py +260 -0
- warp/examples/sim/example_granular_collision_sdf.py +4 -5
- warp/examples/sim/example_jacobian_ik.py +0 -2
- warp/examples/sim/example_quadruped.py +5 -2
- warp/examples/tile/example_tile_cholesky.py +79 -0
- warp/examples/tile/example_tile_convolution.py +2 -2
- warp/examples/tile/example_tile_fft.py +2 -2
- warp/examples/tile/example_tile_filtering.py +3 -3
- warp/examples/tile/example_tile_matmul.py +4 -4
- warp/examples/tile/example_tile_mlp.py +12 -12
- warp/examples/tile/example_tile_nbody.py +180 -0
- warp/examples/tile/example_tile_walker.py +319 -0
- warp/fem/geometry/geometry.py +0 -2
- warp/math.py +147 -0
- warp/native/array.h +12 -0
- warp/native/builtin.h +0 -1
- warp/native/bvh.cpp +149 -70
- warp/native/bvh.cu +287 -68
- warp/native/bvh.h +195 -85
- warp/native/clang/clang.cpp +5 -1
- warp/native/coloring.cpp +5 -1
- warp/native/cuda_util.cpp +91 -53
- warp/native/cuda_util.h +5 -0
- warp/native/exports.h +40 -40
- warp/native/intersect.h +17 -0
- warp/native/mat.h +41 -0
- warp/native/mathdx.cpp +19 -0
- warp/native/mesh.cpp +25 -8
- warp/native/mesh.cu +153 -101
- warp/native/mesh.h +482 -403
- warp/native/quat.h +40 -0
- warp/native/solid_angle.h +7 -0
- warp/native/sort.cpp +85 -0
- warp/native/sort.cu +34 -0
- warp/native/sort.h +3 -1
- warp/native/spatial.h +11 -0
- warp/native/tile.h +1187 -669
- warp/native/tile_reduce.h +8 -6
- warp/native/vec.h +41 -0
- warp/native/warp.cpp +8 -1
- warp/native/warp.cu +263 -40
- warp/native/warp.h +19 -5
- warp/optim/linear.py +22 -4
- warp/render/render_opengl.py +130 -64
- warp/sim/__init__.py +6 -1
- warp/sim/collide.py +270 -26
- warp/sim/import_urdf.py +8 -8
- warp/sim/integrator_euler.py +25 -7
- warp/sim/integrator_featherstone.py +154 -35
- warp/sim/integrator_vbd.py +842 -40
- warp/sim/model.py +134 -72
- warp/sparse.py +1 -1
- warp/stubs.py +265 -132
- warp/tape.py +28 -30
- warp/tests/aux_test_module_unload.py +15 -0
- warp/tests/{test_sim_grad.py → flaky_test_sim_grad.py} +104 -63
- warp/tests/test_array.py +74 -0
- warp/tests/test_assert.py +242 -0
- warp/tests/test_codegen.py +14 -61
- warp/tests/test_collision.py +2 -2
- warp/tests/test_coloring.py +12 -2
- warp/tests/test_examples.py +12 -1
- warp/tests/test_func.py +21 -4
- warp/tests/test_grad_debug.py +87 -2
- warp/tests/test_hash_grid.py +1 -1
- warp/tests/test_ipc.py +116 -0
- warp/tests/test_lerp.py +13 -87
- warp/tests/test_mat.py +138 -167
- warp/tests/test_math.py +47 -1
- warp/tests/test_matmul.py +17 -16
- warp/tests/test_matmul_lite.py +10 -15
- warp/tests/test_mesh.py +84 -60
- warp/tests/test_mesh_query_aabb.py +165 -0
- warp/tests/test_mesh_query_point.py +328 -286
- warp/tests/test_mesh_query_ray.py +134 -121
- warp/tests/test_mlp.py +2 -2
- warp/tests/test_operators.py +43 -0
- warp/tests/test_overwrite.py +47 -2
- warp/tests/test_quat.py +77 -0
- warp/tests/test_reload.py +29 -0
- warp/tests/test_sim_grad_bounce_linear.py +204 -0
- warp/tests/test_smoothstep.py +17 -83
- warp/tests/test_static.py +19 -3
- warp/tests/test_tape.py +25 -0
- warp/tests/test_tile.py +178 -191
- warp/tests/test_tile_load.py +356 -0
- warp/tests/test_tile_mathdx.py +61 -8
- warp/tests/test_tile_mlp.py +17 -17
- warp/tests/test_tile_reduce.py +24 -18
- warp/tests/test_tile_shared_memory.py +66 -17
- warp/tests/test_tile_view.py +165 -0
- warp/tests/test_torch.py +35 -0
- warp/tests/test_utils.py +36 -24
- warp/tests/test_vec.py +110 -0
- warp/tests/unittest_suites.py +29 -4
- warp/tests/unittest_utils.py +30 -13
- warp/thirdparty/unittest_parallel.py +2 -2
- warp/types.py +411 -101
- warp/utils.py +10 -7
- {warp_lang-1.5.0.dist-info → warp_lang-1.6.0.dist-info}/METADATA +92 -69
- {warp_lang-1.5.0.dist-info → warp_lang-1.6.0.dist-info}/RECORD +130 -119
- {warp_lang-1.5.0.dist-info → warp_lang-1.6.0.dist-info}/WHEEL +1 -1
- warp/examples/benchmarks/benchmark_tile.py +0 -179
- warp/native/tile_gemm.h +0 -341
- {warp_lang-1.5.0.dist-info → warp_lang-1.6.0.dist-info}/LICENSE.md +0 -0
- {warp_lang-1.5.0.dist-info → warp_lang-1.6.0.dist-info}/top_level.txt +0 -0
warp/utils.py
CHANGED
|
@@ -39,8 +39,7 @@ def warp_showwarning(message, category, filename, lineno, file=None, line=None):
|
|
|
39
39
|
# and the import machinery don't work anymore
|
|
40
40
|
line = None
|
|
41
41
|
linecache = None
|
|
42
|
-
|
|
43
|
-
line = line
|
|
42
|
+
|
|
44
43
|
if line:
|
|
45
44
|
line = line.strip()
|
|
46
45
|
s += " %s\n" % line
|
|
@@ -132,11 +131,15 @@ def radix_sort_pairs(keys, values, count: int):
|
|
|
132
131
|
if keys.device.is_cpu:
|
|
133
132
|
if keys.dtype == wp.int32 and values.dtype == wp.int32:
|
|
134
133
|
runtime.core.radix_sort_pairs_int_host(keys.ptr, values.ptr, count)
|
|
134
|
+
elif keys.dtype == wp.float32 and values.dtype == wp.int32:
|
|
135
|
+
runtime.core.radix_sort_pairs_float_host(keys.ptr, values.ptr, count)
|
|
135
136
|
else:
|
|
136
137
|
raise RuntimeError("Unsupported data type")
|
|
137
138
|
elif keys.device.is_cuda:
|
|
138
139
|
if keys.dtype == wp.int32 and values.dtype == wp.int32:
|
|
139
140
|
runtime.core.radix_sort_pairs_int_device(keys.ptr, values.ptr, count)
|
|
141
|
+
elif keys.dtype == wp.float32 and values.dtype == wp.int32:
|
|
142
|
+
runtime.core.radix_sort_pairs_float_device(keys.ptr, values.ptr, count)
|
|
140
143
|
else:
|
|
141
144
|
raise RuntimeError("Unsupported data type")
|
|
142
145
|
|
|
@@ -779,9 +782,9 @@ class ScopedTimer:
|
|
|
779
782
|
print()
|
|
780
783
|
|
|
781
784
|
if self.extra_msg:
|
|
782
|
-
print(f"{indent}{self.name} took {self.elapsed
|
|
785
|
+
print(f"{indent}{self.name} took {self.elapsed:.2f} ms {self.extra_msg}")
|
|
783
786
|
else:
|
|
784
|
-
print(f"{indent}{self.name} took {self.elapsed
|
|
787
|
+
print(f"{indent}{self.name} took {self.elapsed:.2f} ms")
|
|
785
788
|
|
|
786
789
|
ScopedTimer.indent -= 1
|
|
787
790
|
|
|
@@ -1042,7 +1045,7 @@ def timing_print(results, indent=""):
|
|
|
1042
1045
|
activity_agg.count += 1
|
|
1043
1046
|
activity_agg.elapsed += r.elapsed
|
|
1044
1047
|
|
|
1045
|
-
print(f"{indent}{r.elapsed
|
|
1048
|
+
print(f"{indent}{r.elapsed:12.6f} ms | {r.device.alias:7s} | {r.name}")
|
|
1046
1049
|
|
|
1047
1050
|
print()
|
|
1048
1051
|
print(f"{indent}CUDA activity summary:")
|
|
@@ -1050,7 +1053,7 @@ def timing_print(results, indent=""):
|
|
|
1050
1053
|
print(f"{indent}Total time | Count | Activity")
|
|
1051
1054
|
print(f"{indent}----------------+---------+{activity_dashes}")
|
|
1052
1055
|
for name, agg in activity_totals.items():
|
|
1053
|
-
print(f"{indent}{agg.elapsed
|
|
1056
|
+
print(f"{indent}{agg.elapsed:12.6f} ms | {agg.count:7d} | {name}")
|
|
1054
1057
|
|
|
1055
1058
|
print()
|
|
1056
1059
|
print(f"{indent}CUDA device summary:")
|
|
@@ -1058,4 +1061,4 @@ def timing_print(results, indent=""):
|
|
|
1058
1061
|
print(f"{indent}Total time | Count | Device")
|
|
1059
1062
|
print(f"{indent}----------------+---------+{activity_dashes}")
|
|
1060
1063
|
for device, agg in device_totals.items():
|
|
1061
|
-
print(f"{indent}{agg.elapsed
|
|
1064
|
+
print(f"{indent}{agg.elapsed:12.6f} ms | {agg.count:7d} | {device}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: warp-lang
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6.0
|
|
4
4
|
Summary: A Python framework for high-performance simulation and graphics programming
|
|
5
5
|
Author-email: NVIDIA Corporation <mmacklin@nvidia.com>
|
|
6
6
|
License: NVIDIA Software License
|
|
@@ -78,9 +78,9 @@ the `pip install` command, e.g.
|
|
|
78
78
|
|
|
79
79
|
| Platform | Install Command |
|
|
80
80
|
| --------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
81
|
-
| Linux aarch64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.
|
|
82
|
-
| Linux x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.
|
|
83
|
-
| Windows x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.
|
|
81
|
+
| Linux aarch64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.6.0/warp_lang-1.6.0+cu11-py3-none-manylinux2014_aarch64.whl` |
|
|
82
|
+
| Linux x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.6.0/warp_lang-1.6.0+cu11-py3-none-manylinux2014_x86_64.whl` |
|
|
83
|
+
| Windows x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.6.0/warp_lang-1.6.0+cu11-py3-none-win_amd64.whl` |
|
|
84
84
|
|
|
85
85
|
The `--force-reinstall` option may need to be used to overwrite a previous installation.
|
|
86
86
|
|
|
@@ -143,6 +143,30 @@ wp.launch(kernel=length,
|
|
|
143
143
|
print(lengths)
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
+
## Running Notebooks
|
|
147
|
+
|
|
148
|
+
A few notebooks are available in the [notebooks](./notebooks/) directory to provide an overview over the key features available in Warp.
|
|
149
|
+
|
|
150
|
+
To run these notebooks, ``jupyterlab`` is required to be installed using:
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
pip install jupyterlab
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
From there, opening the notebooks can be done with the following command:
|
|
157
|
+
|
|
158
|
+
```text
|
|
159
|
+
jupyter lab ./notebooks
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
* [Warp Core Tutorial: Basics](./notebooks/core_01_basics.ipynb) [](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_01_basics.ipynb)
|
|
163
|
+
* [Warp Core Tutorial: Generics](./notebooks/core_02_generics.ipynb) [](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_02_generics.ipynb)
|
|
164
|
+
* [Warp Core Tutorial: Points](./notebooks/core_03_points.ipynb) [](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_03_points.ipynb)
|
|
165
|
+
* [Warp Core Tutorial: Meshes](./notebooks/core_04_meshes.ipynb) [](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_04_meshes.ipynb)
|
|
166
|
+
* [Warp Core Tutorial: Volumes](./notebooks/core_05_volumes.ipynb) [](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_05_volumes.ipynb)
|
|
167
|
+
* [Warp PyTorch Tutorial: Basics](./notebooks/pytorch_01_basics.ipynb) [](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/pytorch_01_basics.ipynb)
|
|
168
|
+
* [Warp PyTorch Tutorial: Custom Operators](./notebooks/pytorch_02_custom_operators.ipynb) [](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/pytorch_02_custom_operators.ipynb)
|
|
169
|
+
|
|
146
170
|
## Running Examples
|
|
147
171
|
|
|
148
172
|
The [warp/examples](./warp/examples/) directory contains a number of scripts categorized under subdirectories
|
|
@@ -187,10 +211,10 @@ python -m warp.tests
|
|
|
187
211
|
<table>
|
|
188
212
|
<tbody>
|
|
189
213
|
<tr>
|
|
190
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_dem.py"><img src="https://
|
|
191
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_fluid.py"><img src="https://
|
|
192
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_graph_capture.py"><img src="https://
|
|
193
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_marching_cubes.py"><img src="https://
|
|
214
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_dem.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_dem.png"></a></td>
|
|
215
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_fluid.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_fluid.png"></a></td>
|
|
216
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_graph_capture.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_graph_capture.png"></a></td>
|
|
217
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_marching_cubes.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_marching_cubes.png"></a></td>
|
|
194
218
|
</tr>
|
|
195
219
|
<tr>
|
|
196
220
|
<td align="center">dem</td>
|
|
@@ -199,10 +223,10 @@ python -m warp.tests
|
|
|
199
223
|
<td align="center">marching cubes</td>
|
|
200
224
|
</tr>
|
|
201
225
|
<tr>
|
|
202
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_mesh.py"><img src="https://
|
|
203
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_nvdb.py"><img src="https://
|
|
204
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_raycast.py"><img src="https://
|
|
205
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_raymarch.py"><img src="https://
|
|
226
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_mesh.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_mesh.png"></a></td>
|
|
227
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_nvdb.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_nvdb.png"></a></td>
|
|
228
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_raycast.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_raycast.png"></a></td>
|
|
229
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_raymarch.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_raymarch.png"></a></td>
|
|
206
230
|
</tr>
|
|
207
231
|
<tr>
|
|
208
232
|
<td align="center">mesh</td>
|
|
@@ -211,9 +235,9 @@ python -m warp.tests
|
|
|
211
235
|
<td align="center">raymarch</td>
|
|
212
236
|
</tr>
|
|
213
237
|
<tr>
|
|
214
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_sph.py"><img src="https://
|
|
215
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_torch.py"><img src="https://
|
|
216
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_wave.py"><img src="https://
|
|
238
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_sph.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_sph.png"></a></td>
|
|
239
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_torch.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_torch.png"></a></td>
|
|
240
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/core/example_wave.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/core_wave.png"></a></td>
|
|
217
241
|
<td></td>
|
|
218
242
|
</tr>
|
|
219
243
|
<tr>
|
|
@@ -230,10 +254,10 @@ python -m warp.tests
|
|
|
230
254
|
<table>
|
|
231
255
|
<tbody>
|
|
232
256
|
<tr>
|
|
233
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_diffusion_3d.py"><img src="https://
|
|
234
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_mixed_elasticity.py"><img src="https://
|
|
235
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_apic_fluid.py"><img src="https://
|
|
236
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_streamlines.py"><img src="https://
|
|
257
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_diffusion_3d.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/fem_diffusion_3d.png"></a></td>
|
|
258
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_mixed_elasticity.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/fem_mixed_elasticity.png"></a></td>
|
|
259
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_apic_fluid.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/fem_apic_fluid.png"></a></td>
|
|
260
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_streamlines.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/fem_streamlines.png"></a></td>
|
|
237
261
|
</tr>
|
|
238
262
|
<tr>
|
|
239
263
|
<td align="center">diffusion 3d</td>
|
|
@@ -242,10 +266,10 @@ python -m warp.tests
|
|
|
242
266
|
<td align="center">streamlines</td>
|
|
243
267
|
</tr>
|
|
244
268
|
<tr>
|
|
245
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_convection_diffusion.py"><img src="https://
|
|
246
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_navier_stokes.py"><img src="https://
|
|
247
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_burgers.py"><img src="https://
|
|
248
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_magnetostatics.py"><img src="https://
|
|
269
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_convection_diffusion.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/fem_convection_diffusion.png"></a></td>
|
|
270
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_navier_stokes.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/fem_navier_stokes.png"></a></td>
|
|
271
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_burgers.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/fem_burgers.png"></a></td>
|
|
272
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/fem/example_magnetostatics.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/fem_magnetostatics.png"></a></td>
|
|
249
273
|
</tr>
|
|
250
274
|
<tr>
|
|
251
275
|
<td align="center">convection diffusion</td>
|
|
@@ -261,10 +285,10 @@ python -m warp.tests
|
|
|
261
285
|
<table>
|
|
262
286
|
<tbody>
|
|
263
287
|
<tr>
|
|
264
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_bounce.py"><img src="https://
|
|
265
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_cloth_throw.py"><img src="https://
|
|
266
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_diffray.py"><img src="https://
|
|
267
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_drone.py"><img src="https://
|
|
288
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_bounce.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/optim_bounce.png"></a></td>
|
|
289
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_cloth_throw.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/optim_cloth_throw.png"></a></td>
|
|
290
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_diffray.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/optim_diffray.png"></a></td>
|
|
291
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_drone.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/optim_drone.png"></a></td>
|
|
268
292
|
</tr>
|
|
269
293
|
<tr>
|
|
270
294
|
<td align="center">bounce</td>
|
|
@@ -273,10 +297,10 @@ python -m warp.tests
|
|
|
273
297
|
<td align="center">drone</td>
|
|
274
298
|
</tr>
|
|
275
299
|
<tr>
|
|
276
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_inverse_kinematics.py"><img src="https://
|
|
277
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_spring_cage.py"><img src="https://
|
|
278
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_trajectory.py"><img src="https://
|
|
279
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_walker.py"><img src="https://
|
|
300
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_inverse_kinematics.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/optim_inverse_kinematics.png"></a></td>
|
|
301
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_spring_cage.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/optim_spring_cage.png"></a></td>
|
|
302
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_trajectory.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/optim_trajectory.png"></a></td>
|
|
303
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_walker.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/optim_walker.png"></a></td>
|
|
280
304
|
</tr>
|
|
281
305
|
<tr>
|
|
282
306
|
<td align="center">inverse kinematics</td>
|
|
@@ -284,6 +308,18 @@ python -m warp.tests
|
|
|
284
308
|
<td align="center">trajectory</td>
|
|
285
309
|
<td align="center">walker</td>
|
|
286
310
|
</tr>
|
|
311
|
+
<tr>
|
|
312
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/optim/example_softbody_properties.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/optim_softbody_properties.png"></a></td>
|
|
313
|
+
<td></td>
|
|
314
|
+
<td></td>
|
|
315
|
+
<td></td>
|
|
316
|
+
</tr>
|
|
317
|
+
<tr>
|
|
318
|
+
<td align="center">soft body properties</td>
|
|
319
|
+
<td align="center"></td>
|
|
320
|
+
<td align="center"></td>
|
|
321
|
+
<td align="center"></td>
|
|
322
|
+
</tr>
|
|
287
323
|
</tbody>
|
|
288
324
|
</table>
|
|
289
325
|
|
|
@@ -292,10 +328,10 @@ python -m warp.tests
|
|
|
292
328
|
<table>
|
|
293
329
|
<tbody>
|
|
294
330
|
<tr>
|
|
295
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_cartpole.py"><img src="https://
|
|
296
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_cloth.py"><img src="https://
|
|
297
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_granular.py"><img src="https://
|
|
298
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_granular_collision_sdf.py"><img src="https://
|
|
331
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_cartpole.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_cartpole.png"></a></td>
|
|
332
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_cloth.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_cloth.png"></a></td>
|
|
333
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_granular.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_granular.png"></a></td>
|
|
334
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_granular_collision_sdf.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_granular_collision_sdf.png"></a></td>
|
|
299
335
|
</tr>
|
|
300
336
|
<tr>
|
|
301
337
|
<td align="center">cartpole</td>
|
|
@@ -304,10 +340,10 @@ python -m warp.tests
|
|
|
304
340
|
<td align="center">granular collision sdf</td>
|
|
305
341
|
</tr>
|
|
306
342
|
<tr>
|
|
307
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_jacobian_ik.py"><img src="https://
|
|
308
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_quadruped.py"><img src="https://
|
|
309
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_chain.py"><img src="https://
|
|
310
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_contact.py"><img src="https://
|
|
343
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_jacobian_ik.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_jacobian_ik.png"></a></td>
|
|
344
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_quadruped.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_quadruped.png"></a></td>
|
|
345
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_chain.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_rigid_chain.png"></a></td>
|
|
346
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_contact.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_rigid_contact.png"></a></td>
|
|
311
347
|
</tr>
|
|
312
348
|
<tr>
|
|
313
349
|
<td align="center">jacobian ik</td>
|
|
@@ -316,10 +352,10 @@ python -m warp.tests
|
|
|
316
352
|
<td align="center">rigid contact</td>
|
|
317
353
|
</tr>
|
|
318
354
|
<tr>
|
|
319
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_force.py"><img src="https://
|
|
320
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_gyroscopic.py"><img src="https://
|
|
321
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_soft_contact.py"><img src="https://
|
|
322
|
-
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_soft_body.py"><img src="https://
|
|
355
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_force.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_rigid_force.png"></a></td>
|
|
356
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_gyroscopic.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_rigid_gyroscopic.png"></a></td>
|
|
357
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_rigid_soft_contact.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_rigid_soft_contact.png"></a></td>
|
|
358
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_soft_body.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_soft_body.png"></a></td>
|
|
323
359
|
</tr>
|
|
324
360
|
<tr>
|
|
325
361
|
<td align="center">rigid force</td>
|
|
@@ -327,34 +363,21 @@ python -m warp.tests
|
|
|
327
363
|
<td align="center">rigid soft contact</td>
|
|
328
364
|
<td align="center">soft body</td>
|
|
329
365
|
</tr>
|
|
366
|
+
<tr>
|
|
367
|
+
<td><a href="https://github.com/NVIDIA/warp/tree/main/warp/examples/sim/example_cloth_self_contact.py"><img src="https://media.githubusercontent.com/media/NVIDIA/warp/refs/heads/main/docs/img/examples/sim_example_cloth_self_contact.png"></a></td>
|
|
368
|
+
<td></td>
|
|
369
|
+
<td></td>
|
|
370
|
+
<td></td>
|
|
371
|
+
</tr>
|
|
372
|
+
<tr>
|
|
373
|
+
<td align="center">cloth self contact</td>
|
|
374
|
+
<td align="center"></td>
|
|
375
|
+
<td align="center"></td>
|
|
376
|
+
<td align="center"></td>
|
|
377
|
+
</tr>
|
|
330
378
|
</tbody>
|
|
331
379
|
</table>
|
|
332
380
|
|
|
333
|
-
## Running Notebooks
|
|
334
|
-
|
|
335
|
-
A few notebooks are available in the [notebooks](./notebooks/) directory to provide an overview over the key features available in Warp.
|
|
336
|
-
|
|
337
|
-
To run these notebooks, ``jupyterlab`` is required to be installed using:
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
```text
|
|
341
|
-
pip install jupyterlab
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
From there, opening the notebooks can be done with the following command:
|
|
345
|
-
|
|
346
|
-
```text
|
|
347
|
-
jupyter lab ./notebooks
|
|
348
|
-
```
|
|
349
|
-
|
|
350
|
-
- [Warp Core Tutorial: Basics](https://github.com/NVIDIA/warp/tree/main/warp/notebooks/core_01_basics.ipynb) <a target="_blank" href="https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_01_basics.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
|
|
351
|
-
- [Warp Core Tutorial: Generics](https://github.com/NVIDIA/warp/tree/main/warp/notebooks/core_02_generics.ipynb) <a target="_blank" href="https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/notebooks/core_02_generics.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
|
|
352
|
-
- [Warp Core Tutorial: Points](https://github.com/NVIDIA/warp/tree/main/warp/notebooks/core_03_points.ipynb) <a target="_blank" href="https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/notebooks/core_03_points.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
|
|
353
|
-
- [Warp Core Tutorial: Meshes](https://github.com/NVIDIA/warp/tree/main/warp/notebooks/core_04_meshes.ipynb) <a target="_blank" href="https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/notebooks/core_04_meshes.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
|
|
354
|
-
- [Warp Core Tutorial: Volumes](https://github.com/NVIDIA/warp/tree/main/warp/notebooks/core_05_volumes.ipynb) <a target="_blank" href="https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/notebooks/core_05_volumes.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
381
|
## Building
|
|
359
382
|
|
|
360
383
|
For developers who want to build the library themselves, the following tools are required:
|