warp-lang 1.7.2rc1__py3-none-macosx_10_13_universal2.whl → 1.8.1__py3-none-macosx_10_13_universal2.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 +3 -1
- warp/__init__.pyi +3489 -1
- warp/autograd.py +45 -122
- warp/bin/libwarp.dylib +0 -0
- warp/build.py +241 -252
- warp/build_dll.py +130 -26
- warp/builtins.py +1907 -384
- warp/codegen.py +272 -104
- warp/config.py +12 -1
- warp/constants.py +1 -1
- warp/context.py +770 -238
- warp/dlpack.py +1 -1
- warp/examples/benchmarks/benchmark_cloth.py +2 -2
- warp/examples/benchmarks/benchmark_tile_sort.py +155 -0
- warp/examples/core/example_sample_mesh.py +1 -1
- warp/examples/core/example_spin_lock.py +93 -0
- warp/examples/core/example_work_queue.py +118 -0
- warp/examples/fem/example_adaptive_grid.py +5 -5
- warp/examples/fem/example_apic_fluid.py +1 -1
- warp/examples/fem/example_burgers.py +1 -1
- warp/examples/fem/example_convection_diffusion.py +9 -6
- warp/examples/fem/example_darcy_ls_optimization.py +489 -0
- warp/examples/fem/example_deformed_geometry.py +1 -1
- warp/examples/fem/example_diffusion.py +2 -2
- warp/examples/fem/example_diffusion_3d.py +1 -1
- warp/examples/fem/example_distortion_energy.py +1 -1
- warp/examples/fem/example_elastic_shape_optimization.py +387 -0
- warp/examples/fem/example_magnetostatics.py +5 -3
- warp/examples/fem/example_mixed_elasticity.py +5 -3
- warp/examples/fem/example_navier_stokes.py +11 -9
- warp/examples/fem/example_nonconforming_contact.py +5 -3
- warp/examples/fem/example_streamlines.py +8 -3
- warp/examples/fem/utils.py +9 -8
- warp/examples/interop/example_jax_callable.py +34 -4
- warp/examples/interop/example_jax_ffi_callback.py +2 -2
- warp/examples/interop/example_jax_kernel.py +27 -1
- warp/examples/optim/example_drone.py +1 -1
- warp/examples/sim/example_cloth.py +1 -1
- warp/examples/sim/example_cloth_self_contact.py +48 -54
- warp/examples/tile/example_tile_block_cholesky.py +502 -0
- warp/examples/tile/example_tile_cholesky.py +2 -1
- warp/examples/tile/example_tile_convolution.py +1 -1
- warp/examples/tile/example_tile_filtering.py +1 -1
- warp/examples/tile/example_tile_matmul.py +1 -1
- warp/examples/tile/example_tile_mlp.py +2 -0
- warp/fabric.py +7 -7
- warp/fem/__init__.py +5 -0
- warp/fem/adaptivity.py +1 -1
- warp/fem/cache.py +152 -63
- warp/fem/dirichlet.py +2 -2
- warp/fem/domain.py +136 -6
- warp/fem/field/field.py +141 -99
- warp/fem/field/nodal_field.py +85 -39
- warp/fem/field/virtual.py +99 -52
- warp/fem/geometry/adaptive_nanogrid.py +91 -86
- warp/fem/geometry/closest_point.py +13 -0
- warp/fem/geometry/deformed_geometry.py +102 -40
- warp/fem/geometry/element.py +56 -2
- warp/fem/geometry/geometry.py +323 -22
- warp/fem/geometry/grid_2d.py +157 -62
- warp/fem/geometry/grid_3d.py +116 -20
- warp/fem/geometry/hexmesh.py +86 -20
- warp/fem/geometry/nanogrid.py +166 -86
- warp/fem/geometry/partition.py +59 -25
- warp/fem/geometry/quadmesh.py +86 -135
- warp/fem/geometry/tetmesh.py +47 -119
- warp/fem/geometry/trimesh.py +77 -270
- warp/fem/integrate.py +181 -95
- warp/fem/linalg.py +25 -58
- warp/fem/operator.py +124 -27
- warp/fem/quadrature/pic_quadrature.py +36 -14
- warp/fem/quadrature/quadrature.py +40 -16
- warp/fem/space/__init__.py +1 -1
- warp/fem/space/basis_function_space.py +66 -46
- warp/fem/space/basis_space.py +17 -4
- warp/fem/space/dof_mapper.py +1 -1
- warp/fem/space/function_space.py +2 -2
- warp/fem/space/grid_2d_function_space.py +4 -1
- warp/fem/space/hexmesh_function_space.py +4 -2
- warp/fem/space/nanogrid_function_space.py +3 -1
- warp/fem/space/partition.py +11 -2
- warp/fem/space/quadmesh_function_space.py +4 -1
- warp/fem/space/restriction.py +5 -2
- warp/fem/space/shape/__init__.py +10 -8
- warp/fem/space/tetmesh_function_space.py +4 -1
- warp/fem/space/topology.py +52 -21
- warp/fem/space/trimesh_function_space.py +4 -1
- warp/fem/utils.py +53 -8
- warp/jax.py +1 -2
- warp/jax_experimental/ffi.py +210 -67
- warp/jax_experimental/xla_ffi.py +37 -24
- warp/math.py +171 -1
- warp/native/array.h +103 -4
- warp/native/builtin.h +182 -35
- warp/native/coloring.cpp +6 -2
- warp/native/cuda_util.cpp +1 -1
- warp/native/exports.h +118 -63
- warp/native/intersect.h +5 -5
- warp/native/mat.h +8 -13
- warp/native/mathdx.cpp +11 -5
- warp/native/matnn.h +1 -123
- warp/native/mesh.h +1 -1
- warp/native/quat.h +34 -6
- warp/native/rand.h +7 -7
- warp/native/sparse.cpp +121 -258
- warp/native/sparse.cu +181 -274
- warp/native/spatial.h +305 -17
- warp/native/svd.h +23 -8
- warp/native/tile.h +603 -73
- warp/native/tile_radix_sort.h +1112 -0
- warp/native/tile_reduce.h +239 -13
- warp/native/tile_scan.h +240 -0
- warp/native/tuple.h +189 -0
- warp/native/vec.h +10 -20
- warp/native/warp.cpp +36 -4
- warp/native/warp.cu +588 -52
- warp/native/warp.h +47 -74
- warp/optim/linear.py +5 -1
- warp/paddle.py +7 -8
- warp/py.typed +0 -0
- warp/render/render_opengl.py +110 -80
- warp/render/render_usd.py +124 -62
- warp/sim/__init__.py +9 -0
- warp/sim/collide.py +253 -80
- warp/sim/graph_coloring.py +8 -1
- warp/sim/import_mjcf.py +4 -3
- warp/sim/import_usd.py +11 -7
- warp/sim/integrator.py +5 -2
- warp/sim/integrator_euler.py +1 -1
- warp/sim/integrator_featherstone.py +1 -1
- warp/sim/integrator_vbd.py +761 -322
- warp/sim/integrator_xpbd.py +1 -1
- warp/sim/model.py +265 -260
- warp/sim/utils.py +10 -7
- warp/sparse.py +303 -166
- warp/tape.py +54 -51
- warp/tests/cuda/test_conditional_captures.py +1046 -0
- warp/tests/cuda/test_streams.py +1 -1
- warp/tests/geometry/test_volume.py +2 -2
- warp/tests/interop/test_dlpack.py +9 -9
- warp/tests/interop/test_jax.py +0 -1
- warp/tests/run_coverage_serial.py +1 -1
- warp/tests/sim/disabled_kinematics.py +2 -2
- warp/tests/sim/{test_vbd.py → test_cloth.py} +378 -112
- warp/tests/sim/test_collision.py +159 -51
- warp/tests/sim/test_coloring.py +91 -2
- warp/tests/test_array.py +254 -2
- warp/tests/test_array_reduce.py +2 -2
- warp/tests/test_assert.py +53 -0
- warp/tests/test_atomic_cas.py +312 -0
- warp/tests/test_codegen.py +142 -19
- warp/tests/test_conditional.py +47 -1
- warp/tests/test_ctypes.py +0 -20
- warp/tests/test_devices.py +8 -0
- warp/tests/test_fabricarray.py +4 -2
- warp/tests/test_fem.py +58 -25
- warp/tests/test_func.py +42 -1
- warp/tests/test_grad.py +1 -1
- warp/tests/test_lerp.py +1 -3
- warp/tests/test_map.py +481 -0
- warp/tests/test_mat.py +23 -24
- warp/tests/test_quat.py +28 -15
- warp/tests/test_rounding.py +10 -38
- warp/tests/test_runlength_encode.py +7 -7
- warp/tests/test_smoothstep.py +1 -1
- warp/tests/test_sparse.py +83 -2
- warp/tests/test_spatial.py +507 -1
- warp/tests/test_static.py +48 -0
- warp/tests/test_struct.py +2 -2
- warp/tests/test_tape.py +38 -0
- warp/tests/test_tuple.py +265 -0
- warp/tests/test_types.py +2 -2
- warp/tests/test_utils.py +24 -18
- warp/tests/test_vec.py +38 -408
- warp/tests/test_vec_constructors.py +325 -0
- warp/tests/tile/test_tile.py +438 -131
- warp/tests/tile/test_tile_mathdx.py +518 -14
- warp/tests/tile/test_tile_matmul.py +179 -0
- warp/tests/tile/test_tile_reduce.py +307 -5
- warp/tests/tile/test_tile_shared_memory.py +136 -7
- warp/tests/tile/test_tile_sort.py +121 -0
- warp/tests/unittest_suites.py +14 -6
- warp/types.py +462 -308
- warp/utils.py +647 -86
- {warp_lang-1.7.2rc1.dist-info → warp_lang-1.8.1.dist-info}/METADATA +20 -6
- {warp_lang-1.7.2rc1.dist-info → warp_lang-1.8.1.dist-info}/RECORD +189 -175
- warp/stubs.py +0 -3381
- warp/tests/sim/test_xpbd.py +0 -399
- warp/tests/test_mlp.py +0 -282
- {warp_lang-1.7.2rc1.dist-info → warp_lang-1.8.1.dist-info}/WHEEL +0 -0
- {warp_lang-1.7.2rc1.dist-info → warp_lang-1.8.1.dist-info}/licenses/LICENSE.md +0 -0
- {warp_lang-1.7.2rc1.dist-info → warp_lang-1.8.1.dist-info}/top_level.txt +0 -0
warp/tests/cuda/test_streams.py
CHANGED
|
@@ -492,7 +492,7 @@ class TestStreams(unittest.TestCase):
|
|
|
492
492
|
|
|
493
493
|
# Can't get the stream on a CPU device
|
|
494
494
|
with self.assertRaises(RuntimeError):
|
|
495
|
-
cpu_stream = cpu_device.stream
|
|
495
|
+
cpu_stream = cpu_device.stream
|
|
496
496
|
|
|
497
497
|
@unittest.skipUnless(len(wp.get_cuda_devices()) > 1, "Requires at least two CUDA devices")
|
|
498
498
|
@unittest.skipUnless(check_p2p(), "Peer-to-Peer transfers not supported")
|
|
@@ -893,7 +893,7 @@ def test_volume_from_numpy_3d(test, device):
|
|
|
893
893
|
nums = np.ceil((maxs - mins) / (voxel_size)).astype(dtype=int)
|
|
894
894
|
centers = np.array([[-1.0, -1.0, -1.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]])
|
|
895
895
|
rad = 2.5
|
|
896
|
-
sphere_sdf_np = np.zeros(tuple(nums)
|
|
896
|
+
sphere_sdf_np = np.zeros((*tuple(nums), 3))
|
|
897
897
|
for x in range(nums[0]):
|
|
898
898
|
for y in range(nums[1]):
|
|
899
899
|
for z in range(nums[2]):
|
|
@@ -935,7 +935,7 @@ def test_volume_aniso_transform(test, device):
|
|
|
935
935
|
def test_volume_write(test, device):
|
|
936
936
|
codecs = ["none", "zip", "blosc"]
|
|
937
937
|
try:
|
|
938
|
-
import blosc # noqa: F401
|
|
938
|
+
import blosc # noqa: F401
|
|
939
939
|
except ImportError:
|
|
940
940
|
codecs.pop()
|
|
941
941
|
|
|
@@ -412,8 +412,8 @@ def test_dlpack_warp_to_jax(test, device):
|
|
|
412
412
|
|
|
413
413
|
test.assertEqual(a.ptr, j1.unsafe_buffer_pointer())
|
|
414
414
|
test.assertEqual(a.ptr, j2.unsafe_buffer_pointer())
|
|
415
|
-
test.assertEqual(a.device, wp.device_from_jax(
|
|
416
|
-
test.assertEqual(a.device, wp.device_from_jax(
|
|
415
|
+
test.assertEqual(a.device, wp.device_from_jax(next(iter(j1.devices()))))
|
|
416
|
+
test.assertEqual(a.device, wp.device_from_jax(next(iter(j2.devices()))))
|
|
417
417
|
test.assertEqual(a.shape, j1.shape)
|
|
418
418
|
test.assertEqual(a.shape, j2.shape)
|
|
419
419
|
|
|
@@ -460,8 +460,8 @@ def test_dlpack_warp_to_jax_v2(test, device):
|
|
|
460
460
|
|
|
461
461
|
test.assertEqual(a.ptr, j1.unsafe_buffer_pointer())
|
|
462
462
|
test.assertEqual(a.ptr, j2.unsafe_buffer_pointer())
|
|
463
|
-
test.assertEqual(a.device, wp.device_from_jax(
|
|
464
|
-
test.assertEqual(a.device, wp.device_from_jax(
|
|
463
|
+
test.assertEqual(a.device, wp.device_from_jax(next(iter(j1.devices()))))
|
|
464
|
+
test.assertEqual(a.device, wp.device_from_jax(next(iter(j2.devices()))))
|
|
465
465
|
test.assertEqual(a.shape, j1.shape)
|
|
466
466
|
test.assertEqual(a.shape, j2.shape)
|
|
467
467
|
|
|
@@ -543,15 +543,15 @@ def test_dlpack_jax_to_warp(test, device):
|
|
|
543
543
|
j = jax.numpy.arange(N, dtype=jax.numpy.float32)
|
|
544
544
|
|
|
545
545
|
# use generic dlpack conversion
|
|
546
|
-
a1 = wp.from_dlpack(
|
|
546
|
+
a1 = wp.from_dlpack(j)
|
|
547
547
|
|
|
548
548
|
# use jax wrapper
|
|
549
549
|
a2 = wp.from_jax(j)
|
|
550
550
|
|
|
551
551
|
test.assertEqual(a1.ptr, j.unsafe_buffer_pointer())
|
|
552
552
|
test.assertEqual(a2.ptr, j.unsafe_buffer_pointer())
|
|
553
|
-
test.assertEqual(a1.device, wp.device_from_jax(
|
|
554
|
-
test.assertEqual(a2.device, wp.device_from_jax(
|
|
553
|
+
test.assertEqual(a1.device, wp.device_from_jax(next(iter(j.devices()))))
|
|
554
|
+
test.assertEqual(a2.device, wp.device_from_jax(next(iter(j.devices()))))
|
|
555
555
|
test.assertEqual(a1.shape, j.shape)
|
|
556
556
|
test.assertEqual(a2.shape, j.shape)
|
|
557
557
|
|
|
@@ -586,8 +586,8 @@ def test_dlpack_jax_to_warp_v2(test, device):
|
|
|
586
586
|
|
|
587
587
|
test.assertEqual(a1.ptr, j.unsafe_buffer_pointer())
|
|
588
588
|
test.assertEqual(a2.ptr, j.unsafe_buffer_pointer())
|
|
589
|
-
test.assertEqual(a1.device, wp.device_from_jax(
|
|
590
|
-
test.assertEqual(a2.device, wp.device_from_jax(
|
|
589
|
+
test.assertEqual(a1.device, wp.device_from_jax(next(iter(j.devices()))))
|
|
590
|
+
test.assertEqual(a2.device, wp.device_from_jax(next(iter(j.devices()))))
|
|
591
591
|
test.assertEqual(a1.shape, j.shape)
|
|
592
592
|
test.assertEqual(a2.shape, j.shape)
|
|
593
593
|
|
warp/tests/interop/test_jax.py
CHANGED
|
@@ -123,7 +123,7 @@ def build_complex_joint_mechanism(chain_length):
|
|
|
123
123
|
parent_xform=tf1,
|
|
124
124
|
child_xform=tf2,
|
|
125
125
|
)
|
|
126
|
-
builder.joint_q[-7:] = [0.5, -0.9, 1.4
|
|
126
|
+
builder.joint_q[-7:] = [0.5, -0.9, 1.4, *wp.quat_rpy(0.3, -0.5, 0.7)]
|
|
127
127
|
builder.joint_qd[-6:] = [1.0, -1.0, 0.5, 0.8, -0.3, 0.1]
|
|
128
128
|
|
|
129
129
|
b8 = builder.add_body(com=com2)
|
|
@@ -133,7 +133,7 @@ def build_complex_joint_mechanism(chain_length):
|
|
|
133
133
|
parent_xform=tf1,
|
|
134
134
|
child_xform=tf2,
|
|
135
135
|
)
|
|
136
|
-
builder.joint_q[-7:] = [-0.3, -0.7, 0.2
|
|
136
|
+
builder.joint_q[-7:] = [-0.3, -0.7, 0.2, *wp.quat_rpy(0.1, 0.1, 0.4)]
|
|
137
137
|
builder.joint_qd[-6:] = [-0.34, 0.5, -0.6, -0.4, 0.2, 0.1]
|
|
138
138
|
|
|
139
139
|
# D6 joint that behaves like a fixed joint
|