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.

Files changed (80) hide show
  1. warp/__init__.py +1 -0
  2. warp/codegen.py +7 -3
  3. warp/config.py +2 -1
  4. warp/constants.py +3 -0
  5. warp/context.py +44 -21
  6. warp/examples/assets/bunny.usd +0 -0
  7. warp/examples/assets/cartpole.urdf +110 -0
  8. warp/examples/assets/crazyflie.usd +0 -0
  9. warp/examples/assets/cube.usda +42 -0
  10. warp/examples/assets/nv_ant.xml +92 -0
  11. warp/examples/assets/nv_humanoid.xml +183 -0
  12. warp/examples/assets/quadruped.urdf +268 -0
  13. warp/examples/assets/rocks.nvdb +0 -0
  14. warp/examples/assets/rocks.usd +0 -0
  15. warp/examples/assets/sphere.usda +56 -0
  16. warp/examples/assets/torus.usda +105 -0
  17. warp/examples/core/example_dem.py +6 -6
  18. warp/examples/core/example_fluid.py +3 -3
  19. warp/examples/core/example_graph_capture.py +3 -6
  20. warp/examples/optim/example_bounce.py +9 -8
  21. warp/examples/optim/example_cloth_throw.py +12 -8
  22. warp/examples/optim/example_diffray.py +10 -12
  23. warp/examples/optim/example_drone.py +31 -14
  24. warp/examples/optim/example_spring_cage.py +10 -15
  25. warp/examples/optim/example_trajectory.py +7 -24
  26. warp/examples/sim/example_cartpole.py +3 -9
  27. warp/examples/sim/example_cloth.py +10 -10
  28. warp/examples/sim/example_granular.py +3 -3
  29. warp/examples/sim/example_granular_collision_sdf.py +9 -4
  30. warp/examples/sim/example_jacobian_ik.py +0 -10
  31. warp/examples/sim/example_particle_chain.py +4 -4
  32. warp/examples/sim/example_quadruped.py +15 -11
  33. warp/examples/sim/example_rigid_chain.py +13 -8
  34. warp/examples/sim/example_rigid_contact.py +4 -4
  35. warp/examples/sim/example_rigid_force.py +7 -7
  36. warp/examples/sim/example_rigid_soft_contact.py +4 -4
  37. warp/examples/sim/example_soft_body.py +3 -3
  38. warp/jax.py +45 -0
  39. warp/jax_experimental.py +339 -0
  40. warp/render/render_opengl.py +188 -95
  41. warp/render/render_usd.py +34 -10
  42. warp/sim/__init__.py +13 -4
  43. warp/sim/articulation.py +4 -5
  44. warp/sim/collide.py +320 -175
  45. warp/sim/import_mjcf.py +25 -30
  46. warp/sim/import_urdf.py +94 -63
  47. warp/sim/import_usd.py +51 -36
  48. warp/sim/inertia.py +3 -2
  49. warp/sim/integrator.py +233 -0
  50. warp/sim/integrator_euler.py +447 -469
  51. warp/sim/integrator_featherstone.py +1991 -0
  52. warp/sim/integrator_xpbd.py +1420 -640
  53. warp/sim/model.py +741 -487
  54. warp/sim/particles.py +2 -1
  55. warp/sim/render.py +18 -2
  56. warp/sim/utils.py +222 -11
  57. warp/stubs.py +1 -0
  58. warp/tape.py +6 -9
  59. warp/tests/test_examples.py +87 -20
  60. warp/tests/test_grad_customs.py +122 -0
  61. warp/tests/test_jax.py +254 -0
  62. warp/tests/test_options.py +13 -53
  63. warp/tests/test_quat.py +23 -0
  64. warp/tests/test_snippet.py +2 -0
  65. warp/tests/test_utils.py +31 -26
  66. warp/tests/test_verify_fp.py +65 -0
  67. warp/tests/unittest_suites.py +4 -0
  68. warp/utils.py +50 -1
  69. {warp_lang-0.15.0.dist-info → warp_lang-1.0.0.dist-info}/METADATA +1 -1
  70. {warp_lang-0.15.0.dist-info → warp_lang-1.0.0.dist-info}/RECORD +73 -64
  71. warp/examples/env/__init__.py +0 -0
  72. warp/examples/env/env_ant.py +0 -61
  73. warp/examples/env/env_cartpole.py +0 -63
  74. warp/examples/env/env_humanoid.py +0 -65
  75. warp/examples/env/env_usd.py +0 -97
  76. warp/examples/env/environment.py +0 -526
  77. warp/sim/optimizer.py +0 -138
  78. {warp_lang-0.15.0.dist-info → warp_lang-1.0.0.dist-info}/LICENSE.md +0 -0
  79. {warp_lang-0.15.0.dist-info → warp_lang-1.0.0.dist-info}/WHEEL +0 -0
  80. {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)
@@ -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
- sys.stdout.write(warnings.formatwarning(message, category, filename, lineno, line=line))
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: warp-lang
3
- Version: 0.15.0
3
+ Version: 1.0.0
4
4
  Summary: A Python framework for high-performance simulation and graphics programming
5
5
  Author-email: NVIDIA <mmacklin@nvidia.com>
6
6
  License: NVIDIA Software License
@@ -1,23 +1,35 @@
1
- warp/__init__.py,sha256=k0Wvo4kzveEDfsogZA68eJN_O_Mbg1-ZmMK9x_AjJ9s,4201
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=nSQephABVweWvPRWVBPacAEQIAPhBuTtYHQp60itoUs,99518
7
- warp/config.py,sha256=ol_xz0aSuFBr6_FNQBm1HicAAkD1stsx7BWnG9oZJkk,1634
8
- warp/constants.py,sha256=R0nHcEdy46MBCuX989tZrY_CtVdxjnoi_3vm4_Pa28g,1211
9
- warp/context.py,sha256=Q5dl161yEjczszlPBfVGR-L9BygI0hARAyiK0oeL7kA,200247
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=uBynTsn3qD7bXaLUw5yVQuS4KRJRPT26wQgAJedTfgE,1557
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=_Dq3iiZtV2MKz_tmjo-kKIXaOhT2xHLHDVTsAEg1mPI,60124
15
- warp/tape.py,sha256=-iqboNOLXkM474y8dL8LoDTluRY-pjKjnSfGZGC4t_w,9023
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=XRJSW55icR4QKtOm3wLrlSoLulJZg8UuQxuhRaDE4Q8,26702
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=CmN0cXZqJbU_FmGLiZ6wiwg6CT5aLBDmIquTVQdatV0,6472
32
- warp/examples/core/example_fluid.py,sha256=484EIYlAkQLmm0GiB1ms2uYxys4vYn7wiVgPAPJwfKU,7449
33
- warp/examples/core/example_graph_capture.py,sha256=2vLB_rhwQ9R_J6D9QP--gwRttHKBc83EXqdw61nDbh8,3931
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=zZUgtlaCyrp1djsoZmgDXLLLRZqi3KNAH06xYjn6Jvg,7981
66
- warp/examples/optim/example_cloth_throw.py,sha256=jg9uxsiZSmT317FAii86zaF-q_5gKveapX1MpGEbHDk,6679
67
- warp/examples/optim/example_diffray.py,sha256=8vZ_qmUm5yc19nUleDz-In1p4Oke6otQG-B_sjOwD7s,17601
68
- warp/examples/optim/example_drone.py,sha256=QxnOTclyFDYWDoDlHKALSs5Kd2kMAMnnPhd8sQDGp4Y,27781
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=liu9ig49dPQIGkwCHy9bOjOp_GG_jXvQcefhHBOmJMA,8125
72
- warp/examples/optim/example_trajectory.py,sha256=i6cf7ntpUAJoYonXSY_qpqHMtqVQgnwexf87d-_H3Rk,6927
73
- warp/examples/sim/example_cartpole.py,sha256=3R1QuN-PDS5Yd2DXzw5qXaswEmmrnCfMPu_gPJtMfuo,4280
74
- warp/examples/sim/example_cloth.py,sha256=tR99f77O6RHMewJgUFUuClHhWdOZ8EkBNlxXGn2k4fI,5885
75
- warp/examples/sim/example_granular.py,sha256=rJxg3BLBv9KT-FJACtBzBAtRCxkkxIvx6fNYEsflJRs,3512
76
- warp/examples/sim/example_granular_collision_sdf.py,sha256=4qLciQDxSnC-9oaXj_IdGajhnTs7PUcqDGk-ScYwem4,6147
77
- warp/examples/sim/example_jacobian_ik.py,sha256=1APuWCuYLYGKlcmmmydVI1t26W62Vk8YswFEKT49cJc,7976
78
- warp/examples/sim/example_particle_chain.py,sha256=ckbsxjTQGLIBKiazBv6DFWmZVPIbmfcm8BGncQ8bkyk,3405
79
- warp/examples/sim/example_quadruped.py,sha256=-nvJzvr_YuiN2jk1NVNByTKnzR1udPnNskjNhmj-0uA,6123
80
- warp/examples/sim/example_rigid_chain.py,sha256=Cr5_SRmdN47FykIm8xdvKnXwm8BRi_2kEN7TCLHnmzs,6969
81
- warp/examples/sim/example_rigid_contact.py,sha256=n7izLERNuOQPn1hzvrp7fZHTronD-8n_gIdzcL48PrA,5841
82
- warp/examples/sim/example_rigid_force.py,sha256=6Vn2Yc_wGmr47OyUr6cVrxy6PI67A99nCDzS2yXbc2M,3998
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=_ds102gWwYxUYQotVPPTyjE8L8rgMBRTowBO_AtZMcw,3923
85
- warp/examples/sim/example_soft_body.py,sha256=UNk77f8A-JoRyZHJ87zxjXfalvNXs9dgN_LN0JmlngA,5354
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=Y0-iXa0XpPBjMdD5VYjB_fBQmsLJyxikREK8fR_9HKM,119236
271
- warp/render/render_usd.py,sha256=MAB_J4yKd0jty25wv7KOk4La27aHNiaXsOkLbw-W6xE,26558
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=9x3EJ46IeqId6VefBHeonExGf0NHU8WcOZj5XZcRfLY,1716
274
- warp/sim/articulation.py,sha256=WJSL2-M51i7w1jdCLAr4VgkVKMsTF-11tX5C7G-YmNs,24228
275
- warp/sim/collide.py,sha256=hTGWd1k0BYkevW0xRHwlAhjYhdqkOHq_5IaNBE_2_vc,57274
276
- warp/sim/import_mjcf.py,sha256=43z2LfO09ylgAHisFhK8AKzM9PZuimcP0c5gZiAT7PM,20091
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=ci5eBZ2cqlQbkzji7X1efVt-YgWKwdCIS5lczLAYzNg,21089
279
- warp/sim/import_usd.py,sha256=q8jRdpAcUIqFxL8mnny6p7k628DnJe0O_BZMeo9x-GE,40517
280
- warp/sim/inertia.py,sha256=m9tagvIdR4uuKPTI4ZYdw-x0S_8PEQMHM7Eq5D_rCvM,9332
281
- warp/sim/integrator_euler.py,sha256=RCDqit04bCpnJjETkNuH__MrOAavrSzC76nhy4egrgY,61057
282
- warp/sim/integrator_xpbd.py,sha256=it2JjGkYoHgh5-x5d5t179i-9QCXU2taQyXjrRaXNvg,91871
283
- warp/sim/model.py,sha256=-C_UshLTB7txd5LBkGqtHhUsfDDoA_SP1KPTmUXuJxo,167552
284
- warp/sim/optimizer.py,sha256=eGovWgWDCeONGZE_MfqLu-JGXmSACMfKGOfqJ25k2_M,4040
285
- warp/sim/particles.py,sha256=e_kj6wjjXkj3KhsqepwWPmRc6NoWGqoJZthmnkKr_5A,3174
286
- warp/sim/render.py,sha256=cielt0vNI7PjYLfrVjGFM35gJrvmys6iV-HwC18y00U,17122
287
- warp/sim/utils.py,sha256=iDDh3Ug-eazYhzGnfIVtnulyxMZMWQoAQWY3UlH_IIU,5124
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=jXh5Pg-ZtyJR3Oqqoz4ckTrC1ShyD1QGo9rR33RPXOk,11344
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=GHbKMpc_PKPTnGIXO9LHAPC6OcSlX-gHXw66qt6BdXg,7682
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=IMQJsUhqq_0PdQ-KYssMvfCg3AvN-81fmquO5_W26b8,4983
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=RDV7ntaVdEmph7aHQzhL5vPRrlt9LLRj9Hqq9dQKKNs,74407
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=jRVnf5cmApCqiWzgw87mX_pdPvg26fj4LfYz22UPV4o,8323
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=OozY6A-lHK2AWMADSpBnMDgjb7IkpGBPwgAVDEr-h3A,19442
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=Xqi4jUSykWTfaaPESUHz9WdB-FtNLZzGwcsye2D212g,13042
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.15.0.dist-info/LICENSE.md,sha256=u2rc7QfpJDdfpFCupwbH_yOx8P9dUfLmwtI4WicG5DQ,19391
401
- warp_lang-0.15.0.dist-info/METADATA,sha256=ZYc6l06UofiTzDFdwcxX0fBZ8nwdWCupRjJkchAZINM,23089
402
- warp_lang-0.15.0.dist-info/WHEEL,sha256=5zIMuEcQBP51tQKLCGHvUIyt6WyXoCqqHwQqkDIOwdw,110
403
- warp_lang-0.15.0.dist-info/top_level.txt,sha256=8pupHORyKoiN_BYWlTmv5OFBWdhqpppiBYQV5KxgEvg,5
404
- warp_lang-0.15.0.dist-info/RECORD,,
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,,
File without changes
@@ -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)