warp-lang 0.15.0__py3-none-manylinux2014_x86_64.whl → 1.0.0__py3-none-manylinux2014_x86_64.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 +1 -0
- warp/codegen.py +7 -3
- warp/config.py +2 -1
- warp/constants.py +3 -0
- warp/context.py +44 -21
- warp/examples/assets/bunny.usd +0 -0
- warp/examples/assets/cartpole.urdf +110 -0
- warp/examples/assets/crazyflie.usd +0 -0
- warp/examples/assets/cube.usda +42 -0
- warp/examples/assets/nv_ant.xml +92 -0
- warp/examples/assets/nv_humanoid.xml +183 -0
- warp/examples/assets/quadruped.urdf +268 -0
- warp/examples/assets/rocks.nvdb +0 -0
- warp/examples/assets/rocks.usd +0 -0
- warp/examples/assets/sphere.usda +56 -0
- warp/examples/assets/torus.usda +105 -0
- warp/examples/core/example_dem.py +6 -6
- warp/examples/core/example_fluid.py +3 -3
- warp/examples/core/example_graph_capture.py +3 -6
- warp/examples/optim/example_bounce.py +9 -8
- warp/examples/optim/example_cloth_throw.py +12 -8
- warp/examples/optim/example_diffray.py +10 -12
- warp/examples/optim/example_drone.py +31 -14
- warp/examples/optim/example_spring_cage.py +10 -15
- warp/examples/optim/example_trajectory.py +7 -24
- warp/examples/sim/example_cartpole.py +3 -9
- warp/examples/sim/example_cloth.py +10 -10
- warp/examples/sim/example_granular.py +3 -3
- warp/examples/sim/example_granular_collision_sdf.py +9 -4
- warp/examples/sim/example_jacobian_ik.py +0 -10
- warp/examples/sim/example_particle_chain.py +4 -4
- warp/examples/sim/example_quadruped.py +15 -11
- warp/examples/sim/example_rigid_chain.py +13 -8
- warp/examples/sim/example_rigid_contact.py +4 -4
- warp/examples/sim/example_rigid_force.py +7 -7
- warp/examples/sim/example_rigid_soft_contact.py +4 -4
- warp/examples/sim/example_soft_body.py +3 -3
- warp/jax.py +45 -0
- warp/jax_experimental.py +339 -0
- warp/render/render_opengl.py +188 -95
- warp/render/render_usd.py +34 -10
- warp/sim/__init__.py +13 -4
- warp/sim/articulation.py +4 -5
- warp/sim/collide.py +320 -175
- warp/sim/import_mjcf.py +25 -30
- warp/sim/import_urdf.py +94 -63
- warp/sim/import_usd.py +51 -36
- warp/sim/inertia.py +3 -2
- warp/sim/integrator.py +233 -0
- warp/sim/integrator_euler.py +447 -469
- warp/sim/integrator_featherstone.py +1991 -0
- warp/sim/integrator_xpbd.py +1420 -640
- warp/sim/model.py +741 -487
- warp/sim/particles.py +2 -1
- warp/sim/render.py +18 -2
- warp/sim/utils.py +222 -11
- warp/stubs.py +1 -0
- warp/tape.py +6 -9
- warp/tests/test_examples.py +87 -20
- warp/tests/test_grad_customs.py +122 -0
- warp/tests/test_jax.py +254 -0
- warp/tests/test_options.py +13 -53
- warp/tests/test_quat.py +23 -0
- warp/tests/test_snippet.py +2 -0
- warp/tests/test_utils.py +31 -26
- warp/tests/test_verify_fp.py +65 -0
- warp/tests/unittest_suites.py +4 -0
- warp/utils.py +50 -1
- {warp_lang-0.15.0.dist-info → warp_lang-1.0.0.dist-info}/METADATA +1 -1
- {warp_lang-0.15.0.dist-info → warp_lang-1.0.0.dist-info}/RECORD +73 -64
- warp/examples/env/__init__.py +0 -0
- warp/examples/env/env_ant.py +0 -61
- warp/examples/env/env_cartpole.py +0 -63
- warp/examples/env/env_humanoid.py +0 -65
- warp/examples/env/env_usd.py +0 -97
- warp/examples/env/environment.py +0 -526
- warp/sim/optimizer.py +0 -138
- {warp_lang-0.15.0.dist-info → warp_lang-1.0.0.dist-info}/LICENSE.md +0 -0
- {warp_lang-0.15.0.dist-info → warp_lang-1.0.0.dist-info}/WHEEL +0 -0
- {warp_lang-0.15.0.dist-info → warp_lang-1.0.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Copyright (c) 2024 NVIDIA CORPORATION. All rights reserved.
|
|
2
|
+
# NVIDIA CORPORATION and its licensors retain all intellectual property
|
|
3
|
+
# and proprietary rights in and to this software, related documentation
|
|
4
|
+
# and any modifications thereto. Any use, reproduction, disclosure or
|
|
5
|
+
# distribution of this software and related documentation without an express
|
|
6
|
+
# license agreement from NVIDIA CORPORATION is strictly prohibited.
|
|
7
|
+
|
|
8
|
+
import unittest
|
|
9
|
+
|
|
10
|
+
import warp as wp
|
|
11
|
+
from warp.tests.unittest_utils import *
|
|
12
|
+
|
|
13
|
+
wp.init()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def setUpModule():
|
|
17
|
+
wp.config.verify_fp = True # Enable checking floating-point values to be finite
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def tearDownModule():
|
|
21
|
+
wp.config.verify_fp = False
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@wp.struct
|
|
25
|
+
class TestStruct:
|
|
26
|
+
field: wp.float32
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@wp.kernel
|
|
30
|
+
def finite_kernel(foos: wp.array(dtype=TestStruct)):
|
|
31
|
+
i = wp.tid()
|
|
32
|
+
foos[i].field += wp.float32(1.0)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def test_finite(test, device):
|
|
36
|
+
foos = wp.zeros((10,), dtype=TestStruct, device=device)
|
|
37
|
+
|
|
38
|
+
wp.launch(
|
|
39
|
+
kernel=finite_kernel,
|
|
40
|
+
dim=(10,),
|
|
41
|
+
inputs=[foos],
|
|
42
|
+
device=device,
|
|
43
|
+
)
|
|
44
|
+
wp.synchronize()
|
|
45
|
+
|
|
46
|
+
expected = TestStruct()
|
|
47
|
+
expected.field = 1.0
|
|
48
|
+
for f in foos.list():
|
|
49
|
+
if f.field != expected.field:
|
|
50
|
+
raise AssertionError(f"Unexpected result, got: {f} expected: {expected}")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
devices = get_test_devices()
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class TestVerifyFP(unittest.TestCase):
|
|
57
|
+
pass
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
add_function_test(TestVerifyFP, "test_finite", test_finite, devices=devices)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if __name__ == "__main__":
|
|
64
|
+
wp.build.clear_kernel_cache()
|
|
65
|
+
unittest.main(verbosity=2)
|
warp/tests/unittest_suites.py
CHANGED
|
@@ -118,6 +118,7 @@ def default_suite(test_loader: unittest.TestLoader):
|
|
|
118
118
|
from warp.tests.test_import import TestImport
|
|
119
119
|
from warp.tests.test_indexedarray import TestIndexedArray
|
|
120
120
|
from warp.tests.test_intersect import TestIntersect
|
|
121
|
+
from warp.tests.test_jax import TestJax
|
|
121
122
|
from warp.tests.test_large import TestLarge
|
|
122
123
|
from warp.tests.test_launch import TestLaunch
|
|
123
124
|
from warp.tests.test_lerp import TestLerp
|
|
@@ -165,6 +166,7 @@ def default_suite(test_loader: unittest.TestLoader):
|
|
|
165
166
|
from warp.tests.test_vec import TestVec
|
|
166
167
|
from warp.tests.test_vec_lite import TestVecLite
|
|
167
168
|
from warp.tests.test_vec_scalar_ops import TestVecScalarOps
|
|
169
|
+
from warp.tests.test_verify_fp import TestVerifyFP
|
|
168
170
|
from warp.tests.test_volume import TestVolume
|
|
169
171
|
from warp.tests.test_volume_write import TestVolumeWrite
|
|
170
172
|
|
|
@@ -203,6 +205,7 @@ def default_suite(test_loader: unittest.TestLoader):
|
|
|
203
205
|
TestImport,
|
|
204
206
|
TestIndexedArray,
|
|
205
207
|
TestIntersect,
|
|
208
|
+
TestJax,
|
|
206
209
|
TestLarge,
|
|
207
210
|
TestLaunch,
|
|
208
211
|
TestLerp,
|
|
@@ -250,6 +253,7 @@ def default_suite(test_loader: unittest.TestLoader):
|
|
|
250
253
|
TestVec,
|
|
251
254
|
TestVecLite,
|
|
252
255
|
TestVecScalarOps,
|
|
256
|
+
TestVerifyFP,
|
|
253
257
|
TestVolume,
|
|
254
258
|
TestVolumeWrite,
|
|
255
259
|
]
|
warp/utils.py
CHANGED
|
@@ -23,7 +23,29 @@ warnings_seen = set()
|
|
|
23
23
|
|
|
24
24
|
def warp_showwarning(message, category, filename, lineno, file=None, line=None):
|
|
25
25
|
"""Version of warnings.showwarning that always prints to sys.stdout."""
|
|
26
|
-
|
|
26
|
+
|
|
27
|
+
if warp.config.verbose_warnings:
|
|
28
|
+
s = f"Warp {category.__name__}: {message} ({filename}:{lineno})\n"
|
|
29
|
+
|
|
30
|
+
if line is None:
|
|
31
|
+
try:
|
|
32
|
+
import linecache
|
|
33
|
+
line = linecache.getline(filename, lineno)
|
|
34
|
+
except Exception:
|
|
35
|
+
# When a warning is logged during Python shutdown, linecache
|
|
36
|
+
# and the import machinery don't work anymore
|
|
37
|
+
line = None
|
|
38
|
+
linecache = None
|
|
39
|
+
else:
|
|
40
|
+
line = line
|
|
41
|
+
if line:
|
|
42
|
+
line = line.strip()
|
|
43
|
+
s += " %s\n" % line
|
|
44
|
+
else:
|
|
45
|
+
# simple warning
|
|
46
|
+
s = f"Warp {category.__name__}: {message}\n"
|
|
47
|
+
|
|
48
|
+
sys.stdout.write(s)
|
|
27
49
|
|
|
28
50
|
|
|
29
51
|
def warn(message, category=None, stacklevel=1):
|
|
@@ -723,6 +745,33 @@ class ScopedPeerAccess:
|
|
|
723
745
|
wp.set_peer_access_enabled(self.target_device, self.peer_device, self.saved_setting)
|
|
724
746
|
|
|
725
747
|
|
|
748
|
+
class ScopedCapture:
|
|
749
|
+
def __init__(self, device=None, stream=None, force_module_load=None, external=False):
|
|
750
|
+
self.device = device
|
|
751
|
+
self.stream = stream
|
|
752
|
+
self.force_module_load = force_module_load
|
|
753
|
+
self.external = external
|
|
754
|
+
self.active = False
|
|
755
|
+
self.graph = None
|
|
756
|
+
|
|
757
|
+
def __enter__(self):
|
|
758
|
+
try:
|
|
759
|
+
wp.capture_begin(
|
|
760
|
+
device=self.device, stream=self.stream, force_module_load=self.force_module_load, external=self.external
|
|
761
|
+
)
|
|
762
|
+
self.active = True
|
|
763
|
+
return self
|
|
764
|
+
except:
|
|
765
|
+
raise
|
|
766
|
+
|
|
767
|
+
def __exit__(self, exc_type, exc_value, traceback):
|
|
768
|
+
if self.active:
|
|
769
|
+
try:
|
|
770
|
+
self.graph = wp.capture_end(device=self.device, stream=self.stream)
|
|
771
|
+
finally:
|
|
772
|
+
self.active = False
|
|
773
|
+
|
|
774
|
+
|
|
726
775
|
# helper kernels for adj_matmul
|
|
727
776
|
@wp.kernel
|
|
728
777
|
def add_kernel_2d(x: wp.array2d(dtype=Any), acc: wp.array2d(dtype=Any), beta: Any):
|
|
@@ -1,23 +1,35 @@
|
|
|
1
|
-
warp/__init__.py,sha256
|
|
1
|
+
warp/__init__.py,sha256=-8W-odWSF51v1b5d4Kj37bpeO2e1xx_c_Gb9_O5Mk3E,4239
|
|
2
2
|
warp/__init__.pyi,sha256=xRyS7nyFH3H_hKLtF4HCHEHF31pXBjiQrWRyUgw9mpA,22
|
|
3
3
|
warp/build.py,sha256=s2_MN9cwzMOPGkgeE22Mv98X7ECeyHwj2788YCoeaY4,4408
|
|
4
4
|
warp/build_dll.py,sha256=SaxhwB1PfwqkrJCLHdsnNK9s3JEdmAladef1J-WcmWA,16372
|
|
5
5
|
warp/builtins.py,sha256=YbmYPI0VWG3FPSUSKZoEdHy17O2Q53LyiaI-w2A2vUs,116614
|
|
6
|
-
warp/codegen.py,sha256=
|
|
7
|
-
warp/config.py,sha256=
|
|
8
|
-
warp/constants.py,sha256=
|
|
9
|
-
warp/context.py,sha256=
|
|
6
|
+
warp/codegen.py,sha256=jO3pxNZr70GQ9HLcJfNMAoB8UgaIC6Ih2i7nB2fFlTk,99861
|
|
7
|
+
warp/config.py,sha256=S9c2jYS54ntTdbaiLk4eOWU3kLjO-QKRMPxhRutxvxs,1720
|
|
8
|
+
warp/constants.py,sha256=02tCDba7vk0qsfsXW9tAfxcQK_F3kfVbyMXg2ZVmCfw,1308
|
|
9
|
+
warp/context.py,sha256=hfP0UTdumS6OeqkPurgr0tnDcrnb4zIoj74W8YESlqs,201336
|
|
10
10
|
warp/dlpack.py,sha256=OWsfVOuNOYPVGykL5t-W4waYYlnDgw0YnzlV0KkKHZc,17014
|
|
11
11
|
warp/fabric.py,sha256=1F8-jc97Sny8FRwYo8eAGaF2FZCdiqOhkUTpbn66ljc,11605
|
|
12
|
-
warp/jax.py,sha256=
|
|
12
|
+
warp/jax.py,sha256=SKAv-0rluugEPEBE9wZBCW6WQ6PjPkC2XaLjrU8xfwo,2852
|
|
13
|
+
warp/jax_experimental.py,sha256=77GqrEkqVJaGiznxCWlPeOtTpCmyDN7Y0uZ3a5bD2oU,13743
|
|
13
14
|
warp/sparse.py,sha256=TmWd0P2VUqWw4aTt2fypYy1-LPH1BHkjJscwpI2leuE,42999
|
|
14
|
-
warp/stubs.py,sha256=
|
|
15
|
-
warp/tape.py,sha256
|
|
15
|
+
warp/stubs.py,sha256=n72LvcARf75TDuGmzP-eFPywfo_IObxrdfLBFZ1h8j4,60162
|
|
16
|
+
warp/tape.py,sha256=AHdc1wQWhbEqSHtXl-s8S0nD5ncbYO17iI94pXkZZtk,8751
|
|
16
17
|
warp/torch.py,sha256=JdAcr7SCXOyJVHUAC3qErMATevdTTwB4MCMKLnCMaoY,10088
|
|
17
18
|
warp/types.py,sha256=TVuJ9dfw554sm2J0-yNDAwIk4ixMuED5m2R8-qlwcQ4,152977
|
|
18
|
-
warp/utils.py,sha256=
|
|
19
|
+
warp/utils.py,sha256=nfNPvFZR0KWazXlwmej9T9xYOK8eALxAOniYabjcao8,28212
|
|
19
20
|
warp/bin/warp-clang.so,sha256=ULZPN-wVzAXgiPT1s_Oo9oR6ou4V9DTIX6H_SZWg3kw,59972664
|
|
20
21
|
warp/bin/warp.so,sha256=JbAWfCBc3mH1rX1Y6dDFBqcaQHzdKccN-A7qkoaWkM4,85067304
|
|
22
|
+
warp/examples/assets/bunny.usd,sha256=nTThxXaS0R-MZ-1mpurJSHBjf3mYu50DeDKKDYcpPkM,524749
|
|
23
|
+
warp/examples/assets/cartpole.urdf,sha256=SmvdJIcdFXEltIbBFJXCH2SpNTY4ucNSDAhTCaoaSNc,2704
|
|
24
|
+
warp/examples/assets/crazyflie.usd,sha256=WBRoJ9LBPUdaKDHOyXVo5KzsPPIEjFwA_hkmQTlQhEM,205330
|
|
25
|
+
warp/examples/assets/cube.usda,sha256=GR8pfODMM_3_MBzLp2DRcJDxBM_NzmYX0asNs-DCvsI,1930
|
|
26
|
+
warp/examples/assets/nv_ant.xml,sha256=teW_qZDb9UwzgYDWB3VJbALdeolH_P9IanrSLLDsqQI,5327
|
|
27
|
+
warp/examples/assets/nv_humanoid.xml,sha256=sNa8ONmGVNdq0v6l2pIcwqQxDzNYwdMaSU_Jb7MLp1o,12201
|
|
28
|
+
warp/examples/assets/quadruped.urdf,sha256=jHaDp6nIEN1vEWfUHe0ZJf_ZrUljJKd0xO0Ply7V-3I,10013
|
|
29
|
+
warp/examples/assets/rocks.nvdb,sha256=nbLzLSnvz1m26MPfESYp0LIAaPtVJoqRW4FmYM_ptVE,938332
|
|
30
|
+
warp/examples/assets/rocks.usd,sha256=ExwLqPHQezpAkre8p9wIEzeMrFHgO9QPYNnPruXM2xY,853514
|
|
31
|
+
warp/examples/assets/sphere.usda,sha256=NqTi0pOYDTzYNKhJxyrjpFi9a2OASMhm2pBbHCX0W6g,35318
|
|
32
|
+
warp/examples/assets/torus.usda,sha256=rdJoYgz1fyw01sKDHeYIbuTMkq91UL2VlaHCtZ1cWtA,340830
|
|
21
33
|
warp/examples/benchmarks/benchmark_api.py,sha256=v5ZDhvpCFwb9XR6FJOC5tS57oRpv0RFbbBn9cpnxia8,10076
|
|
22
34
|
warp/examples/benchmarks/benchmark_cloth.py,sha256=fGP0VkJJU5F5nLhP8sGHyva3P5Wra_tDNmrwnCKCkQg,9223
|
|
23
35
|
warp/examples/benchmarks/benchmark_cloth_cupy.py,sha256=74vm-LUW-4sg8mzhAxuiHJgVwO_IxAmddo6d5YJ37m8,2574
|
|
@@ -28,9 +40,9 @@ warp/examples/benchmarks/benchmark_cloth_pytorch.py,sha256=6CExU-Da0aqCFudwpwvXf
|
|
|
28
40
|
warp/examples/benchmarks/benchmark_cloth_taichi.py,sha256=PIV3lADe6_bKE1H3WhJBeXRlpOdq-wkH_amjqGlS1Z0,3674
|
|
29
41
|
warp/examples/benchmarks/benchmark_cloth_warp.py,sha256=gZQVsJd0qLtqiCCPLUmW44t1YGzZMT15BhyOavQMW48,4187
|
|
30
42
|
warp/examples/benchmarks/benchmark_launches.py,sha256=iapZfV2CgYjgrRZiIFtv8TSg0CEUCUTR_GOffZ0uqDc,6190
|
|
31
|
-
warp/examples/core/example_dem.py,sha256=
|
|
32
|
-
warp/examples/core/example_fluid.py,sha256=
|
|
33
|
-
warp/examples/core/example_graph_capture.py,sha256=
|
|
43
|
+
warp/examples/core/example_dem.py,sha256=OoGuCqCU4eXEFkNw08_0GxpByxEvSQc5CZIZYXXzEzc,6458
|
|
44
|
+
warp/examples/core/example_fluid.py,sha256=G1FurT92H6q3nlrxipwH-RmJWnN5r5ex1PKksp5x4Y4,7467
|
|
45
|
+
warp/examples/core/example_graph_capture.py,sha256=d6rtNb7lPUYBUlCEht80vFE4VnKYgiA-rSoZbro1sn4,3843
|
|
34
46
|
warp/examples/core/example_marching_cubes.py,sha256=UlrhBMZZcLCnQedqMb1MYjZpdesgHih7s4-ady9hxp4,5613
|
|
35
47
|
warp/examples/core/example_mesh.py,sha256=BUgTC-7hUS00lxgXzaddoZNGqrHkLGnShYLpLFPo4bs,4779
|
|
36
48
|
warp/examples/core/example_mesh_intersect.py,sha256=iXBeb0z8qqFx3xCnCXcxpN4eadO3jakB8ggIo_RExYk,6419
|
|
@@ -41,12 +53,6 @@ warp/examples/core/example_render_opengl.py,sha256=wczc1gQLtML67Bd_QCaq0uCWk6Qkp
|
|
|
41
53
|
warp/examples/core/example_sph.py,sha256=d7K3nH9bJgPJTEcg6ZwW8WUCzBS9agCZHJU_8HMdAAk,12319
|
|
42
54
|
warp/examples/core/example_torch.py,sha256=ARv_8YQYBi7ogL0E1Kh1II3u6DaDA9k-4VFi3aXHTjc,5300
|
|
43
55
|
warp/examples/core/example_wave.py,sha256=wKchL5ZOvsC6-QCFQ11AWepwa0MMrVnVSN3gXhNfa-c,7824
|
|
44
|
-
warp/examples/env/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
-
warp/examples/env/env_ant.py,sha256=uCAsA2pFd_cIpY12WnQDuCAmSKUmzC3gR1iDA8Csio8,2059
|
|
46
|
-
warp/examples/env/env_cartpole.py,sha256=_rBq9Y_r_I-aKE5lWg3s6qIKn5YpamGnZumg2bAJc4U,2060
|
|
47
|
-
warp/examples/env/env_humanoid.py,sha256=qQOyvKM8dB2EKsmMvllolLadK47lnbfRYKEGr0VJmEM,2198
|
|
48
|
-
warp/examples/env/env_usd.py,sha256=XVL2qN8oZpdbklAHMNv9wT8GQlu2QuWkFwfE4eNEVcA,3999
|
|
49
|
-
warp/examples/env/environment.py,sha256=mX-OgsKgIWEVaBXEhnGhJZSZkJL8tR3pDmXOfs0bbP0,19844
|
|
50
56
|
warp/examples/fem/bsr_utils.py,sha256=XRkic2nu6mXiluH5rJRB6I_QjpF_-nExWR8sC_QKgkA,12098
|
|
51
57
|
warp/examples/fem/example_apic_fluid.py,sha256=zvOjlqzizHrVPipli-nyX9F4fh8bVJBZG2eoeO7z0rs,14166
|
|
52
58
|
warp/examples/fem/example_convection_diffusion.py,sha256=gvVL3M4Drpb1Dfj8hxmgMYS1_5JSP4fPkT0ZqOR_pgI,5647
|
|
@@ -62,27 +68,27 @@ warp/examples/fem/example_stokes.py,sha256=CeroQ6eeUcns8iYhIAzxkNXNb0Mm8YczFitPh
|
|
|
62
68
|
warp/examples/fem/example_stokes_transfer.py,sha256=11eZWgNEMYRgF5EbgCPvJXuk2HIqOzVlnLkY7jmmHP4,9187
|
|
63
69
|
warp/examples/fem/mesh_utils.py,sha256=MU_OHnKZ-ZuNZkOLSb4dHDJt1n4FiRuLjcZ8IussQIY,3703
|
|
64
70
|
warp/examples/fem/plot_utils.py,sha256=Y7H_hzg9Wftq5aG4f6P6GMPMRKsAmeUJZL2BEv-xEU4,9232
|
|
65
|
-
warp/examples/optim/example_bounce.py,sha256=
|
|
66
|
-
warp/examples/optim/example_cloth_throw.py,sha256=
|
|
67
|
-
warp/examples/optim/example_diffray.py,sha256=
|
|
68
|
-
warp/examples/optim/example_drone.py,sha256=
|
|
71
|
+
warp/examples/optim/example_bounce.py,sha256=SoL7-g0Ijaf7D_SMetDje9LFvJgxXQHSCDRPpp4eBtQ,8095
|
|
72
|
+
warp/examples/optim/example_cloth_throw.py,sha256=KKmNLRdgwDE386d670HyyombjdiL32BadEBYXbQhxyQ,6794
|
|
73
|
+
warp/examples/optim/example_diffray.py,sha256=jF22sSm_6gsREjn1e309BqDnmXUWIbnDiroRViF2ReI,17605
|
|
74
|
+
warp/examples/optim/example_drone.py,sha256=5o8EfInqUBuitYc-KSooN3B18pVN6jK7jz1la_I7xs4,28583
|
|
69
75
|
warp/examples/optim/example_inverse_kinematics.py,sha256=HcWzaLBMIg9sdZz0vXMllI17uTjbR1jNegv1aFtfTz4,5372
|
|
70
76
|
warp/examples/optim/example_inverse_kinematics_torch.py,sha256=bLghhNBd3YuJz4T32l-Cynr1eDUb8UwJBJuGb8sw6aA,5954
|
|
71
|
-
warp/examples/optim/example_spring_cage.py,sha256=
|
|
72
|
-
warp/examples/optim/example_trajectory.py,sha256=
|
|
73
|
-
warp/examples/sim/example_cartpole.py,sha256=
|
|
74
|
-
warp/examples/sim/example_cloth.py,sha256=
|
|
75
|
-
warp/examples/sim/example_granular.py,sha256=
|
|
76
|
-
warp/examples/sim/example_granular_collision_sdf.py,sha256=
|
|
77
|
-
warp/examples/sim/example_jacobian_ik.py,sha256=
|
|
78
|
-
warp/examples/sim/example_particle_chain.py,sha256=
|
|
79
|
-
warp/examples/sim/example_quadruped.py,sha256
|
|
80
|
-
warp/examples/sim/example_rigid_chain.py,sha256=
|
|
81
|
-
warp/examples/sim/example_rigid_contact.py,sha256=
|
|
82
|
-
warp/examples/sim/example_rigid_force.py,sha256=
|
|
77
|
+
warp/examples/optim/example_spring_cage.py,sha256=DTQ_MHZ6FV_WbtuosRicJibobsLRtJZ0UKddq8NRdJ0,8084
|
|
78
|
+
warp/examples/optim/example_trajectory.py,sha256=7ay5z0dil7dOF6WfULAWq8RLBtm2xwlRWK5cAYaK8cY,6606
|
|
79
|
+
warp/examples/sim/example_cartpole.py,sha256=G-x7N9BM75B21VwOulfzlddHJ2rVrP01ZQq-J6iZRpA,4126
|
|
80
|
+
warp/examples/sim/example_cloth.py,sha256=nrK-cUY_j6mm7sEpwwSyt06gMY_5vzDZ1LXCntSc9Ag,5887
|
|
81
|
+
warp/examples/sim/example_granular.py,sha256=f8tQYpKW-wKYQ2Qv4zbp7J0G1anUzVK60wxWZxNK_94,3530
|
|
82
|
+
warp/examples/sim/example_granular_collision_sdf.py,sha256=VxWSVAiGZUuaYnN60LpfGCpvw2Cjonir8gVNKoaWhjY,6331
|
|
83
|
+
warp/examples/sim/example_jacobian_ik.py,sha256=YdP4WXoQ6hw81vnXSo96IcPGdMz63jVqEgmpU-kP9JU,7699
|
|
84
|
+
warp/examples/sim/example_particle_chain.py,sha256=piusohVmN18E5UDSsP_Qb1F_cpujQMe_RdengqVCXiY,3398
|
|
85
|
+
warp/examples/sim/example_quadruped.py,sha256=lgbgE1s4I6aes344jNrzEpwwsEiJ2tpCit16fzUXtrA,6445
|
|
86
|
+
warp/examples/sim/example_rigid_chain.py,sha256=rRQXjwnytRZojS6M3c8cV-YlMkWzJLfLZy7Ehlxq8YQ,7078
|
|
87
|
+
warp/examples/sim/example_rigid_contact.py,sha256=YFGqS--4mAaUa4NPzlvIVYO7FDahJz6ICkEsTvGjJWk,5851
|
|
88
|
+
warp/examples/sim/example_rigid_force.py,sha256=VnrrP44rlwz-MjBiOFZd8kOeFneETpcbUzgOtgzSEBw,4009
|
|
83
89
|
warp/examples/sim/example_rigid_gyroscopic.py,sha256=57xSKsRyh122YM8n2yr3oTjVo_NW3JpCieGgVRmli5o,2898
|
|
84
|
-
warp/examples/sim/example_rigid_soft_contact.py,sha256=
|
|
85
|
-
warp/examples/sim/example_soft_body.py,sha256=
|
|
90
|
+
warp/examples/sim/example_rigid_soft_contact.py,sha256=gzlJ75QkVvKWsbJ12vxaG81Sd1evwLJqTkByHU8nTC0,3921
|
|
91
|
+
warp/examples/sim/example_soft_body.py,sha256=wXR1hqiyu_1A0Ma2BH3i6NbRttWcmMroeWzmXe3skh0,5372
|
|
86
92
|
warp/fem/__init__.py,sha256=Ei9gXbYd83K-4dO5IzYXTE3Vs186gw0e25YCpAwYgck,1481
|
|
87
93
|
warp/fem/cache.py,sha256=o-qp2MOB58sjCDI3_JFVH3123CYFFrFWPeF0m_N5Z9Q,13319
|
|
88
94
|
warp/fem/dirichlet.py,sha256=8zr3fLWFkk19zAaodVv2esj6LTmGRM9CHB_eTjTFt_E,6217
|
|
@@ -267,24 +273,25 @@ warp/optim/adam.py,sha256=dIiGnuFO-XhMk3egU6PU-QHYvY_pw5W3Qzbbyy6xnKA,4359
|
|
|
267
273
|
warp/optim/linear.py,sha256=PSmZVPTUE6O7JgB2W7Bivn_Mdv6YFXnAdaUtkR3ykKQ,30433
|
|
268
274
|
warp/optim/sgd.py,sha256=XnP6tJ5sHc4zplrbHTjo0ynkKLdwQMAJlvRCHf_Sgd8,3119
|
|
269
275
|
warp/render/__init__.py,sha256=VGLibelbTuGcxGhzIiCbGZr6CF-o6z42cr04Pf_WMUk,548
|
|
270
|
-
warp/render/render_opengl.py,sha256=
|
|
271
|
-
warp/render/render_usd.py,sha256=
|
|
276
|
+
warp/render/render_opengl.py,sha256=yTrAxdx1eaikkGssP4-5HVOhuK753Nje7FtzBjk6pc0,123008
|
|
277
|
+
warp/render/render_usd.py,sha256=FKmgSF8dnA2EdKIzKlvcoiRxTNB07rZ_gdsckpTtKxo,27595
|
|
272
278
|
warp/render/utils.py,sha256=Pu-DSAY5jFz7bmX1ZDUJM0TwLr6_lyjfTaW8M-5-mZ4,4446
|
|
273
|
-
warp/sim/__init__.py,sha256=
|
|
274
|
-
warp/sim/articulation.py,sha256=
|
|
275
|
-
warp/sim/collide.py,sha256=
|
|
276
|
-
warp/sim/import_mjcf.py,sha256=
|
|
279
|
+
warp/sim/__init__.py,sha256=0CVofZPVGGCT9oNlD5rEHYBiZA-VTnOCH7Ttwvej6rQ,1984
|
|
280
|
+
warp/sim/articulation.py,sha256=a--ojJcGhc3GqaxXZi-PaZ-R6jS5TLIBnfl56unK2C4,24034
|
|
281
|
+
warp/sim/collide.py,sha256=Wu6F-MJiZPorTuSXQ9hrtlZSBAxwbtm-LNiP6PB-XyQ,64467
|
|
282
|
+
warp/sim/import_mjcf.py,sha256=k5DWY9c0Iz3lRgNd_GqedtNDRkE23KgDKQcWeZnmWaQ,19581
|
|
277
283
|
warp/sim/import_snu.py,sha256=lzKknSNbGs_0KaOPH4CctpMsjhXAbijs1zbtflwUKmM,8564
|
|
278
|
-
warp/sim/import_urdf.py,sha256=
|
|
279
|
-
warp/sim/import_usd.py,sha256
|
|
280
|
-
warp/sim/inertia.py,sha256=
|
|
281
|
-
warp/sim/
|
|
282
|
-
warp/sim/
|
|
283
|
-
warp/sim/
|
|
284
|
-
warp/sim/
|
|
285
|
-
warp/sim/
|
|
286
|
-
warp/sim/
|
|
287
|
-
warp/sim/
|
|
284
|
+
warp/sim/import_urdf.py,sha256=9fXtyU9zohJfxUzSLKb0gjZQx_KKD2arUA38pstq_Fg,22335
|
|
285
|
+
warp/sim/import_usd.py,sha256=-M9EwZYkEylRlo2wLEyk7TT6h2CJ_X0_URbI9oO1-cQ,41247
|
|
286
|
+
warp/sim/inertia.py,sha256=QOujk96NkvoEaTbne_UO4aSPirn8ipKuf9RUCHSQRvQ,9390
|
|
287
|
+
warp/sim/integrator.py,sha256=FqHpRrB--zczWKf3Gkn6gYirf52slrutaZ_6LViT8N8,6884
|
|
288
|
+
warp/sim/integrator_euler.py,sha256=EASBG1LEkHjRnuLgarb6d2MCLw3om74E7BcpA3S3mbA,61308
|
|
289
|
+
warp/sim/integrator_featherstone.py,sha256=5pJ9NbM-cZLXavik62mrFRwFswd2K8JnB35Dpo5YmYI,69224
|
|
290
|
+
warp/sim/integrator_xpbd.py,sha256=QdidnYEXjJ9Od9qd2LEkwv_hkHkF2WT1mLxX2x1kM2E,118839
|
|
291
|
+
warp/sim/model.py,sha256=gjNBejaxae-cHZRgDM8la7dKw5qV5w6XGKFkFy9-CkI,184680
|
|
292
|
+
warp/sim/particles.py,sha256=HahiePfgGbVCDvpALbzqMsDbET_SseYa4QSrl__VZ3w,3276
|
|
293
|
+
warp/sim/render.py,sha256=BcqgrJz_9siV7eAMq07OG8ZDuZnovzrrRp2hJbt3LXw,17830
|
|
294
|
+
warp/sim/utils.py,sha256=4B5luqoFj4WK7lYJAMOVMW_0bUQVvWeIaiS8PDobStg,12602
|
|
288
295
|
warp/tests/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
289
296
|
warp/tests/__main__.py,sha256=Dg7dxwx_tD2ORJK4ctN-nmXJ2ilcoba-iLN8fg-tLgE,94
|
|
290
297
|
warp/tests/aux_test_class_kernel.py,sha256=KPjFlrvuVObuGpH5xBf8WwGHP0xg1MM2-Zf0PYmHqHk,1053
|
|
@@ -317,7 +324,7 @@ warp/tests/test_ctypes.py,sha256=HnWUCfkSfEbCR0xaiDCiUSy03WJRrz1HD79I1KZjxEg,252
|
|
|
317
324
|
warp/tests/test_dense.py,sha256=WjBUhrtLyKFCnp3AdBuVeVYZyC3B6AxbUqQhavP5k_I,1913
|
|
318
325
|
warp/tests/test_devices.py,sha256=6n5SAvWPIZTw7KMgQg8-9owUNEPvf9p_9oe6ulDZFO8,3291
|
|
319
326
|
warp/tests/test_dlpack.py,sha256=_-05Q-pGXZJ3nPTrAmT8Hjc5NsdOszwaQZjNXPUq9rI,18368
|
|
320
|
-
warp/tests/test_examples.py,sha256=
|
|
327
|
+
warp/tests/test_examples.py,sha256=2Z4Hlo-nNpWjGDkr6qyKIbjmIGNXMRvy2CEl8zuZeX4,12077
|
|
321
328
|
warp/tests/test_fabricarray.py,sha256=TSKjECqjwltsBkAAnTMhesh-6M47BnXxSphRtwm1WrE,33105
|
|
322
329
|
warp/tests/test_fast_math.py,sha256=vCRlv8XwtQZeZmRmiJlFILKFV64_kNKGUlbsXpJq9c4,1618
|
|
323
330
|
warp/tests/test_fem.py,sha256=VH6p-MhNbkXKXy5h243RftvYAcwplLoQJKr3HWmTSxM,52908
|
|
@@ -325,11 +332,12 @@ warp/tests/test_fp16.py,sha256=kIR0SP62vsVLQi1dSezCscn1n3R74l2fxSym6M3Trss,3963
|
|
|
325
332
|
warp/tests/test_func.py,sha256=c8QVFvetnw0vqi7aMh-vnIs7N99ZPMe3O-WpM5VM9Gg,11071
|
|
326
333
|
warp/tests/test_generics.py,sha256=3lHeYhf2Pvhuw7ewZXOWDd7aNoAWfEXqpYPbBPn_7Jw,20142
|
|
327
334
|
warp/tests/test_grad.py,sha256=fuoA059qhyPHCY5ueI66pegh1XU3onCpNbutyOsgkz0,21086
|
|
328
|
-
warp/tests/test_grad_customs.py,sha256=
|
|
335
|
+
warp/tests/test_grad_customs.py,sha256=EAZu57A24DRKMa5sxD_TZz1PAQ4qXJF04AEtlWlhs_E,11657
|
|
329
336
|
warp/tests/test_hash_grid.py,sha256=B8n_iYaTfY08YuqKHm5_lq5zTbUnYGhOV9UzGzWVPCk,5073
|
|
330
337
|
warp/tests/test_import.py,sha256=2T8g-EU1xeEz70pGtKFvFvWGC7znaB2Yn_nvLIgfjTs,1077
|
|
331
338
|
warp/tests/test_indexedarray.py,sha256=5FEsvhOi92RPoq_14H01zmNWK1VcTTWBuuL_xwnoXtg,41945
|
|
332
339
|
warp/tests/test_intersect.py,sha256=CQMPJWi63gu9MkRHvdaWa81yBn2jtX5tqizlChbCeGU,1933
|
|
340
|
+
warp/tests/test_jax.py,sha256=rAd6AdiVXIa30GUmKrNsyefc-W5FAvZ9PX7vmIfkgoQ,7863
|
|
333
341
|
warp/tests/test_large.py,sha256=2UqyzjDqWbxYXY3Hk7HPKq8VtdKw7QghuUR0MkNbtDI,5918
|
|
334
342
|
warp/tests/test_launch.py,sha256=ZG8MuP0YvRfXfLF3iY_n86cmFG_V0i0q2vUkE15zJHY,9227
|
|
335
343
|
warp/tests/test_lerp.py,sha256=vrezacbCx0u5sfMG9jWWxpwUexkh6oyF9Q7c0jeyy2I,7186
|
|
@@ -353,18 +361,18 @@ warp/tests/test_modules_lite.py,sha256=T9pJlkumgu2d-ulLm6GpHJm4Box-3MYY12SC3mDlG
|
|
|
353
361
|
warp/tests/test_multigpu.py,sha256=6HO4T6UN87Ijrx6RGFiGdpHmPwnmEmRZjx7Nyqkb8F4,5421
|
|
354
362
|
warp/tests/test_noise.py,sha256=jURxSeFnDeTcvdc89PEe14cLb9RvIK9g4IuYwOftLKA,7120
|
|
355
363
|
warp/tests/test_operators.py,sha256=ZPM6dA0C9zdPxCqn6SSSCJ8yy0VkVu6Jj0e7QIBgN7Y,6233
|
|
356
|
-
warp/tests/test_options.py,sha256=
|
|
364
|
+
warp/tests/test_options.py,sha256=jcuuULfv4j9ch91_NbRHorEbpWwVDdnOGD44943Gc0o,3669
|
|
357
365
|
warp/tests/test_peer.py,sha256=s-zR1kP_zsi4z_ZBeWuK2r84mKegZ4mmCc8AMgWGM30,5033
|
|
358
366
|
warp/tests/test_pinned.py,sha256=8rRaOtaMVcd7hosrarXYXziUSifhNNOtK6Rzs1UvJPI,2377
|
|
359
367
|
warp/tests/test_print.py,sha256=hmrpXdkzfJ3fDIy0mk7hzREh8UcxP-GF_UweXvIq3tY,1690
|
|
360
|
-
warp/tests/test_quat.py,sha256=
|
|
368
|
+
warp/tests/test_quat.py,sha256=msRi2U4eHXhrDgQbDqnWDEN9nstn6-UL93DHwvcWtLM,75167
|
|
361
369
|
warp/tests/test_rand.py,sha256=QDNVdr0l92DFHUIej4skt8fB7IwzB40IXAafPkAsjUc,10095
|
|
362
370
|
warp/tests/test_reload.py,sha256=IC8RpzNFx13pSDsZ4VpMIyAKK1Z79OMOCIWVtUwTgnk,5889
|
|
363
371
|
warp/tests/test_rounding.py,sha256=_TyimmIimTyKh5Alxw6utO5Dm9ttmN5DrJDqAbzsnrE,5974
|
|
364
372
|
warp/tests/test_runlength_encode.py,sha256=TVHyYgH1PuiYLJEDk8nCHJLyrR_4NYWI1t7ymDGfWMQ,7155
|
|
365
373
|
warp/tests/test_sim_kinematics.py,sha256=4Rd4H_DCSLYcvPH_AQ8lw9WeoWj0b62RJaAwIb2SMjo,2684
|
|
366
374
|
warp/tests/test_smoothstep.py,sha256=mL68QQMtV1BsGby4Mywg9tiSx-2vjobTI7spEu-_nUY,4564
|
|
367
|
-
warp/tests/test_snippet.py,sha256=
|
|
375
|
+
warp/tests/test_snippet.py,sha256=6Gnjc0QOWQkQNtrFMj-GvqGhYgCnrlEsrh8kPNBhCZs,8471
|
|
368
376
|
warp/tests/test_sparse.py,sha256=Rp6hb6wuBi3TJedy_QZ8znJC_DLTJPEUIN_Agsu17Ew,18333
|
|
369
377
|
warp/tests/test_spatial.py,sha256=YJz7mHnycH8TYq8HTRIETS5jaFaBnOQTCepf6sw7UL4,78561
|
|
370
378
|
warp/tests/test_streams.py,sha256=RjCNlXJIA-f4Q0QXLfWMgGtO8UJ8Uy-KXWbpDj5P7q0,16059
|
|
@@ -373,14 +381,15 @@ warp/tests/test_tape.py,sha256=NfLEzTkrXVOH1h_vAge-1byEkBZTS-qgTtX-eztUoA8,4717
|
|
|
373
381
|
warp/tests/test_torch.py,sha256=crs64uYepz-Fd58mKKnKspDgmH1UNjnzFzSjxDNJUNY,23303
|
|
374
382
|
warp/tests/test_transient_module.py,sha256=z9B78a4B58PRc9b7GtTwSySvQe5IqpmmcZe_STWzCq8,2310
|
|
375
383
|
warp/tests/test_types.py,sha256=k-CqtOhq6SKsqKhfZbs1ts3TZYPFE6DoqFO2psWnlXc,22622
|
|
376
|
-
warp/tests/test_utils.py,sha256=
|
|
384
|
+
warp/tests/test_utils.py,sha256=LF_ufrsI6A14Ykb4Z6QA_sGtJ9dWb_e63P-MKydab78,19412
|
|
377
385
|
warp/tests/test_vec.py,sha256=MQic0V_1hYoEz81p5uo_e0ajhp-2XYGV7S7uRbrusvs,43762
|
|
378
386
|
warp/tests/test_vec_lite.py,sha256=etjM5nRzFxpYCTKtdpr3Qp_HTv4mZRSDQ8JW6ZgxxkA,2427
|
|
379
387
|
warp/tests/test_vec_scalar_ops.py,sha256=z8EDboIPbfA55DoIOhiW4H_VZhXc21AL7xB-aRfP4eM,87005
|
|
388
|
+
warp/tests/test_verify_fp.py,sha256=FgIRgW_EeYZABHhQarBBIVXXlgjHx5ATmE56hOg0weY,1599
|
|
380
389
|
warp/tests/test_volume.py,sha256=hAiFGMvHpde2cE04e8R2V5_vPdhfOVBlGNcgtkXQ3WY,25709
|
|
381
390
|
warp/tests/test_volume_write.py,sha256=A7f8M_djIX5jXIr_57l3HCvmIziuqX42S8qyyXgTC4I,9074
|
|
382
391
|
warp/tests/unittest_serial.py,sha256=ThciVRjXCVp5_zcdgZxTduuGG7ZYLvsuf8uol0xNZoE,1158
|
|
383
|
-
warp/tests/unittest_suites.py,sha256=
|
|
392
|
+
warp/tests/unittest_suites.py,sha256=Oj5MNxsLVivJLmnSM_W9uxKsEV_DrsDMsXc96lTomSE,13184
|
|
384
393
|
warp/tests/unittest_utils.py,sha256=gHLIngDyT4dKdpw3g6Ns0nT7NZMYGBmhRLR5Us8xo2g,20110
|
|
385
394
|
warp/tests/unused_test_misc.py,sha256=fyfOY3VpF1hSdgu_6kTz2kRSukUBl7LQm-r3-4adJVE,1534
|
|
386
395
|
warp/tests/walkthrough_debug.py,sha256=DsotsWkBvkK2hb-iWQRNbAOkK8KkgrdnmyofC5mPy8E,3136
|
|
@@ -397,8 +406,8 @@ warp/thirdparty/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
397
406
|
warp/thirdparty/appdirs.py,sha256=6msNAwCSJ0eRTVmRVF98Uvd3trshrw5RRsVUM_hPPLE,24852
|
|
398
407
|
warp/thirdparty/dlpack.py,sha256=Upx_8E-DR7TQTHUN0bNbfrilzFubRjxWvafV10ZXvqQ,4416
|
|
399
408
|
warp/thirdparty/unittest_parallel.py,sha256=q3xAxXZlRPgrkCNrEFeuo9C1_Woe_1hRNukpq-JZ8eQ,21294
|
|
400
|
-
warp_lang-0.
|
|
401
|
-
warp_lang-0.
|
|
402
|
-
warp_lang-0.
|
|
403
|
-
warp_lang-0.
|
|
404
|
-
warp_lang-0.
|
|
409
|
+
warp_lang-1.0.0.dist-info/LICENSE.md,sha256=u2rc7QfpJDdfpFCupwbH_yOx8P9dUfLmwtI4WicG5DQ,19391
|
|
410
|
+
warp_lang-1.0.0.dist-info/METADATA,sha256=ZVdOuaRHEB5PDMWact5q_lYxsySnsNWmpSXMkryGzvc,23088
|
|
411
|
+
warp_lang-1.0.0.dist-info/WHEEL,sha256=5zIMuEcQBP51tQKLCGHvUIyt6WyXoCqqHwQqkDIOwdw,110
|
|
412
|
+
warp_lang-1.0.0.dist-info/top_level.txt,sha256=8pupHORyKoiN_BYWlTmv5OFBWdhqpppiBYQV5KxgEvg,5
|
|
413
|
+
warp_lang-1.0.0.dist-info/RECORD,,
|
warp/examples/env/__init__.py
DELETED
|
File without changes
|
warp/examples/env/env_ant.py
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2022 NVIDIA CORPORATION. All rights reserved.
|
|
2
|
-
# NVIDIA CORPORATION and its licensors retain all intellectual property
|
|
3
|
-
# and proprietary rights in and to this software, related documentation
|
|
4
|
-
# and any modifications thereto. Any use, reproduction, disclosure or
|
|
5
|
-
# distribution of this software and related documentation without an express
|
|
6
|
-
# license agreement from NVIDIA CORPORATION is strictly prohibited.
|
|
7
|
-
|
|
8
|
-
###########################################################################
|
|
9
|
-
# Ant environment
|
|
10
|
-
#
|
|
11
|
-
# Shows how to set up a simulation of a rigid-body Ant articulation based on
|
|
12
|
-
# the OpenAI gym environment using the Environment class and MCJF
|
|
13
|
-
# importer. Note this example does not include a trained policy.
|
|
14
|
-
#
|
|
15
|
-
###########################################################################
|
|
16
|
-
|
|
17
|
-
import os
|
|
18
|
-
import math
|
|
19
|
-
|
|
20
|
-
import warp as wp
|
|
21
|
-
import warp.sim
|
|
22
|
-
|
|
23
|
-
from .environment import Environment, run_env
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class AntEnvironment(Environment):
|
|
27
|
-
sim_name = "env_ant"
|
|
28
|
-
env_offset = (2.5, 0.0, 2.5)
|
|
29
|
-
opengl_render_settings = dict(scaling=3.0)
|
|
30
|
-
usd_render_settings = dict(scaling=100.0)
|
|
31
|
-
|
|
32
|
-
sim_substeps_euler = 32
|
|
33
|
-
sim_substeps_xpbd = 3
|
|
34
|
-
|
|
35
|
-
joint_attach_ke: float = 100000.0
|
|
36
|
-
joint_attach_kd: float = 10.0
|
|
37
|
-
|
|
38
|
-
use_graph_capture = True
|
|
39
|
-
|
|
40
|
-
def create_articulation(self, builder):
|
|
41
|
-
wp.sim.parse_mjcf(
|
|
42
|
-
os.path.join(os.path.dirname(__file__), "../assets/nv_ant.xml"),
|
|
43
|
-
builder,
|
|
44
|
-
stiffness=0.0,
|
|
45
|
-
damping=1.0,
|
|
46
|
-
armature=0.1,
|
|
47
|
-
contact_ke=1.0e4,
|
|
48
|
-
contact_kd=1.0e2,
|
|
49
|
-
contact_kf=1.0e4,
|
|
50
|
-
contact_mu=1.0,
|
|
51
|
-
limit_ke=1.0e4,
|
|
52
|
-
limit_kd=1.0e1,
|
|
53
|
-
enable_self_collisions=False,
|
|
54
|
-
up_axis="y",
|
|
55
|
-
)
|
|
56
|
-
builder.joint_q[7:] = [0.0, 1.0, 0.0, -1.0, 0.0, -1.0, 0.0, 1.0]
|
|
57
|
-
builder.joint_q[:7] = [0.0, 0.7, 0.0, *wp.quat_from_axis_angle(wp.vec3(1.0, 0.0, 0.0), -math.pi * 0.5)]
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if __name__ == "__main__":
|
|
61
|
-
run_env(AntEnvironment)
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2022 NVIDIA CORPORATION. All rights reserved.
|
|
2
|
-
# NVIDIA CORPORATION and its licensors retain all intellectual property
|
|
3
|
-
# and proprietary rights in and to this software, related documentation
|
|
4
|
-
# and any modifications thereto. Any use, reproduction, disclosure or
|
|
5
|
-
# distribution of this software and related documentation without an express
|
|
6
|
-
# license agreement from NVIDIA CORPORATION is strictly prohibited.
|
|
7
|
-
|
|
8
|
-
###########################################################################
|
|
9
|
-
# Cartpole environment
|
|
10
|
-
#
|
|
11
|
-
# Shows how to set up a simulation of a rigid-body cartpole articulation
|
|
12
|
-
# from a URDF using the Environment class.
|
|
13
|
-
# Note this example does not include a trained policy.
|
|
14
|
-
#
|
|
15
|
-
###########################################################################
|
|
16
|
-
|
|
17
|
-
import os
|
|
18
|
-
import math
|
|
19
|
-
import warp as wp
|
|
20
|
-
import warp.sim
|
|
21
|
-
|
|
22
|
-
from .environment import Environment, run_env
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class CartpoleEnvironment(Environment):
|
|
26
|
-
sim_name = "env_cartpole"
|
|
27
|
-
env_offset = (2.0, 0.0, 2.0)
|
|
28
|
-
opengl_render_settings = dict(scaling=3.0)
|
|
29
|
-
usd_render_settings = dict(scaling=100.0)
|
|
30
|
-
|
|
31
|
-
sim_substeps_euler = 32
|
|
32
|
-
sim_substeps_xpbd = 5
|
|
33
|
-
|
|
34
|
-
activate_ground_plane = False
|
|
35
|
-
|
|
36
|
-
show_joints = True
|
|
37
|
-
|
|
38
|
-
def create_articulation(self, builder):
|
|
39
|
-
wp.sim.parse_urdf(
|
|
40
|
-
os.path.join(os.path.dirname(__file__), "../assets/cartpole.urdf"),
|
|
41
|
-
builder,
|
|
42
|
-
xform=wp.transform((0.0, 0.0, 0.0), wp.quat_from_axis_angle(wp.vec3(1.0, 0.0, 0.0), -math.pi * 0.5)),
|
|
43
|
-
floating=False,
|
|
44
|
-
armature=0.1,
|
|
45
|
-
stiffness=0.0,
|
|
46
|
-
damping=0.0,
|
|
47
|
-
shape_ke=1.0e4,
|
|
48
|
-
shape_kd=1.0e2,
|
|
49
|
-
shape_kf=1.0e2,
|
|
50
|
-
shape_mu=1.0,
|
|
51
|
-
limit_ke=1.0e4,
|
|
52
|
-
limit_kd=1.0e1,
|
|
53
|
-
enable_self_collisions=False,
|
|
54
|
-
)
|
|
55
|
-
|
|
56
|
-
# joint initial positions
|
|
57
|
-
builder.joint_q[-3:] = [0.0, 0.3, 0.0]
|
|
58
|
-
|
|
59
|
-
builder.joint_target[:3] = [0.0, 0.0, 0.0]
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if __name__ == "__main__":
|
|
63
|
-
run_env(CartpoleEnvironment)
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2022 NVIDIA CORPORATION. All rights reserved.
|
|
2
|
-
# NVIDIA CORPORATION and its licensors retain all intellectual property
|
|
3
|
-
# and proprietary rights in and to this software, related documentation
|
|
4
|
-
# and any modifications thereto. Any use, reproduction, disclosure or
|
|
5
|
-
# distribution of this software and related documentation without an express
|
|
6
|
-
# license agreement from NVIDIA CORPORATION is strictly prohibited.
|
|
7
|
-
|
|
8
|
-
###########################################################################
|
|
9
|
-
# Humanoid environment
|
|
10
|
-
#
|
|
11
|
-
# Shows how to set up a simulation of a rigid-body Humanoid articulation based
|
|
12
|
-
# on the OpenAI gym environment using the Environment class and MCJF
|
|
13
|
-
# importer. Note this example does not include a trained policy.
|
|
14
|
-
#
|
|
15
|
-
###########################################################################
|
|
16
|
-
|
|
17
|
-
import os
|
|
18
|
-
import math
|
|
19
|
-
import warp as wp
|
|
20
|
-
import warp.sim
|
|
21
|
-
|
|
22
|
-
from .environment import Environment, run_env
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class HumanoidEnvironment(Environment):
|
|
26
|
-
sim_name = "env_humanoid"
|
|
27
|
-
env_offset = (2.0, 0.0, 2.0)
|
|
28
|
-
opengl_render_settings = dict(scaling=1.0)
|
|
29
|
-
usd_render_settings = dict(scaling=100.0)
|
|
30
|
-
|
|
31
|
-
sim_substeps_euler = 32
|
|
32
|
-
sim_substeps_xpbd = 5
|
|
33
|
-
|
|
34
|
-
xpbd_settings = dict(
|
|
35
|
-
iterations=2,
|
|
36
|
-
joint_linear_relaxation=0.7,
|
|
37
|
-
joint_angular_relaxation=0.5,
|
|
38
|
-
rigid_contact_relaxation=1.0,
|
|
39
|
-
rigid_contact_con_weighting=True,
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
def create_articulation(self, builder):
|
|
43
|
-
wp.sim.parse_mjcf(
|
|
44
|
-
os.path.join(os.path.dirname(__file__), "../assets/nv_humanoid.xml"),
|
|
45
|
-
builder,
|
|
46
|
-
stiffness=0.0,
|
|
47
|
-
damping=0.1,
|
|
48
|
-
armature=0.007,
|
|
49
|
-
armature_scale=10.0,
|
|
50
|
-
contact_ke=1.0e4,
|
|
51
|
-
contact_kd=1.0e2,
|
|
52
|
-
contact_kf=1.0e2,
|
|
53
|
-
contact_mu=0.5,
|
|
54
|
-
contact_restitution=0.0,
|
|
55
|
-
limit_ke=1.0e2,
|
|
56
|
-
limit_kd=1.0e1,
|
|
57
|
-
enable_self_collisions=True,
|
|
58
|
-
up_axis="y",
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
builder.joint_q[:7] = [0.0, 1.7, 0.0, *wp.quat_from_axis_angle(wp.vec3(1.0, 0.0, 0.0), -math.pi * 0.5)]
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if __name__ == "__main__":
|
|
65
|
-
run_env(HumanoidEnvironment)
|