hyperray 0.0.1__py3-none-any.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.
- hyperdrone/__init__.py +53 -0
- hyperdrone/_cuda/__init__.py +76 -0
- hyperdrone/_dlpack.py +30 -0
- hyperdrone/_jit/__init__.py +131 -0
- hyperdrone/_jit/_build.py +113 -0
- hyperdrone/_jit/_lock.py +23 -0
- hyperdrone/_jit/_patches.py +99 -0
- hyperdrone/_jit/_toolchain.py +17 -0
- hyperdrone/_jit/_workspace.py +94 -0
- hyperdrone/_native/cmake/hyperdrone_jit.cmake +65 -0
- hyperdrone/_native/common/bindings.h +39 -0
- hyperdrone/_native/common/cuda_staging.h +80 -0
- hyperdrone/_native/common/jit_host.h +69 -0
- hyperdrone/_native/common/models.h +24 -0
- hyperdrone/_native/common/verbosity.h +52 -0
- hyperdrone/_native/dynamics/CMakeLists.txt +63 -0
- hyperdrone/_native/dynamics/host.cpp +188 -0
- hyperdrone/_native/dynamics/iface.h +71 -0
- hyperdrone/_native/dynamics/impl.cpp +638 -0
- hyperdrone/_native/env/CMakeLists.txt +98 -0
- hyperdrone/_native/env/environment.cpp +190 -0
- hyperdrone/_native/env/environment.h +282 -0
- hyperdrone/_native/env/impl.cpp +779 -0
- hyperdrone/_native/env/rotorcraft_bindings.cpp +53 -0
- hyperdrone/_native/render/CMakeLists.txt +96 -0
- hyperdrone/_native/render/renderer.cpp +973 -0
- hyperdrone/_native/render/rig_bindings.h +152 -0
- hyperdrone/_native/render/scene_bindings.cpp +515 -0
- hyperdrone/_outputs.py +32 -0
- hyperdrone/_parameters.py +36 -0
- hyperdrone/_vendor/rl-tools/CMakeLists.txt +207 -0
- hyperdrone/_vendor/rl-tools/LICENSE +21 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/all.cmake +34 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/git-diff.cmake +100 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/git-hash.cmake +24 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/summary.cmake +65 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier0-compiler.cmake +18 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier1-blas.cmake +51 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier2-json-hdf5-zlib.cmake +82 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier3-tensorboard.cmake +25 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier4-cuda.cmake +42 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier5-cli11.cmake +24 -0
- hyperdrone/_vendor/rl-tools/cmake/dependencies/assimp.cmake +19 -0
- hyperdrone/_vendor/rl-tools/cmake/legacy_flags.cmake +33 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/assimp.cmake +30 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/googletest.cmake +20 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/metal.cmake +25 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/mujoco.cmake +89 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/optix.cmake +25 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/raytracing.cmake +105 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/raytracing_generic.cmake +2 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/vulkan.cmake +4 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/webgpu.cmake +24 -0
- hyperdrone/_vendor/rl-tools/cmake/scripts/embed_text.cmake +7 -0
- hyperdrone/_vendor/rl-tools/cmake/scripts/generate-git-snapshot.cmake +138 -0
- hyperdrone/_vendor/rl-tools/include/conta/conta.h +1480 -0
- hyperdrone/_vendor/rl-tools/include/metra/metra.h +381 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/matrix.h +143 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_arm.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu.h +314 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_accelerate.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_blas.h +67 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_mkl.h +38 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_openblas.h +34 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cuda.h +289 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_dummy.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_esp32.h +29 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_generic.h +944 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_wasm32.h +13 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/persist_code.h +136 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_arm.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu.h +94 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_accelerate.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_blas.h +115 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_mkl.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_openblas.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cuda.h +713 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_generic.h +1356 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/persist_code.h +130 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/tensor.h +490 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/arm.h +91 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu.h +210 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_accelerate.h +23 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_blas.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_emscripten.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_mkl.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_openblas.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_tensorboard.h +34 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cuda.h +464 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cuda_streams.h +23 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/devices.h +105 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/dummy.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/esp32.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/generic.h +0 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/wasm32.h +59 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/model.h +218 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/operations_generic.h +769 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/persist.h +278 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/policy_adapter.h +100 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/policy_adapter_persist.h +52 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/tensor_operations_generic.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/c_backend.h +117 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/c_interface.h +36 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/l2f.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/operations_dyn.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/operations_generic.h +268 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/debugging_pool/c_backend.h +31 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/debugging_pool/c_interface.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/c_backend.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/c_interface.h +50 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/executor.h +133 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/helper.h +109 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/operations_generic.h +219 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_arduino.h +117 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_arm.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_cpu.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_cpu_tensorboard.h +151 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_cuda.h +65 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_dummy.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_wasm32.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_arm.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_cpu.h +138 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_cuda.h +380 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_dummy.h +93 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_esp32.h +92 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_generic.h +295 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_wasm32.h +230 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/mode/mode.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/activation_functions.h +113 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/capability/capability.h +61 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/capability/persist_code.h +31 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/group.h +99 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/layer.h +122 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/operations_cuda.h +64 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/operations_generic.h +186 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/persist.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/layer.h +300 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_cpu_mkl.h +590 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_cuda.h +809 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_generic.h +1219 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/persist.h +99 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/persist_code.h +170 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/layer.h +145 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_arm/dsp.h +63 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_arm/opt.h +173 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu.h +13 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_accelerate.h +66 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_blas.h +282 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_mkl.h +66 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_openblas.h +65 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cuda.h +519 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_dummy.h +8 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_esp32/dsp.h +58 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_esp32/opt.h +167 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_generic.h +429 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/persist.h +62 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/persist_code.h +178 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/persist_common.h +59 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/layer.h +188 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/operations_cuda.h +356 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/operations_generic.h +536 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/persist.h +32 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/embedding/layer.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/embedding/operations_generic.h +223 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/embedding/persist.h +46 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/layer.h +121 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/operations_generic.h +154 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/persist.h +44 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/persist_code.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/helper_operations_cuda.h +602 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/helper_operations_generic.h +251 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/layer.h +206 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/operations_generic.h +889 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/persist.h +75 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/persist_code.h +199 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/layers.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/layer.h +143 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/operations_cuda.h +80 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/operations_generic.h +216 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/persist.h +39 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_accelerate.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_blas.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_mkl.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_openblas.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cuda.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_dummy.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_generic.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/layer.h +223 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/operations_cuda.h +138 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/operations_generic.h +446 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/persist.h +70 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/layer.h +154 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/operations_cuda.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/operations_generic.h +502 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/persist.h +50 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/persist_code.h +173 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/layer.h +116 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/operations_cuda.h +156 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/operations_generic.h +295 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/persist.h +83 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/persist_code.h +163 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/layer.h +123 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/operations_generic.h +272 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/persist.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/persist_code.h +164 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/layer.h +122 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/operations_cuda.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/operations_generic.h +160 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/persist.h +47 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/persist_code.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/upsample2d/layer.h +132 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/upsample2d/operations_cuda.h +141 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/upsample2d/operations_generic.h +230 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/categorical_cross_entropy/operations_generic.h +102 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/mse/operations_cuda.h +97 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/mse/operations_generic.h +101 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/operations_generic.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/nn.h +14 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_accelerate.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_blas.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_mkl.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_mux.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_openblas.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cuda.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_dummy.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_generic.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/adam.h +121 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/operations_cuda.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/operations_generic.h +150 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/persist.h +39 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/persist_code.h +80 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/operations_cuda.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/operations_generic.h +109 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/persist.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/lamb/instance/operations_generic.h +107 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/lamb/lamb.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/lamb/operations_generic.h +68 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/optimizers.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/operations_cuda.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/operations_generic.h +140 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/persist.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/persist_code.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/operations_cuda.h +49 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/operations_generic.h +50 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/sgd.h +92 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/update.h +54 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/operations_cuda.h +0 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/operations_generic.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/parameters.h +79 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/persist.h +34 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/persist_code.h +136 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/persist.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/persist_code.h +27 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/behaviors/skip_parameter_gradients.h +65 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/group/README.md +107 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/group/model.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/group/persist_code.h +77 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/network.h +174 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/operations_cuda.h +10 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/operations_dummy.h +8 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/operations_generic.h +407 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/persist.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/persist_code.h +137 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/network.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/operations_generic.h +86 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/persist.h +43 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/persist_code.h +142 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/models.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/model.h +148 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/operations_generic.h +288 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/persist.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/persist_code.h +71 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_cpu.h +0 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_cuda.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_dummy.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_generic.h +4 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/model.h +290 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/operations_cuda.h +174 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/operations_generic.h +623 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/persist.h +80 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/persist_code.h +200 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/persist.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/persist_code.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/random_uniform/model.h +43 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/random_uniform/operations_generic.h +73 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/resnet/resnet.h +97 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/model.h +270 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/operations_generic.h +625 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/persist.h +99 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/persist_code.h +115 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/bf16.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/categories.h +22 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/persist_code.h +54 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/policy.h +48 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm/group_1.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm/group_2.h +14 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm/group_3.h +14 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu/group_1.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate/group_1.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl/group_1.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mux.h +158 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas/group_1.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard/group_1.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard/group_3.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda/group_1.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda/group_3.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy/group_1.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy/group_3.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32/group_1.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32/group_3.h +13 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32/group_1.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32/group_2.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32/group_3.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/hdf5/hdf5.h +54 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/hdf5/operations_cpu.h +419 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/io.h +55 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/operations_cpu.h +58 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/operations_generic.h +620 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/operations_posix.h +63 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/tar.h +74 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/persist/code.h +38 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_arm.h +39 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_cpu.h +81 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_cuda.h +172 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_dummy.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_esp32.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_generic.h +133 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_generic_array.h +73 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_wasm32.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/persist.h +77 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/camera.h +105 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/annotations/cache.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/annotations/free_space.h +60 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/annotations/operations_cpu.h +411 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/glb/glb.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/glb/operations_cpu.h +1288 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/operations_cpu.h +136 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/catalog.h +232 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/conversion.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/operations_cpu.h +123 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/procthor.h +39 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_cpu.h +717 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_generic.h +1283 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/context.h +193 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/device_source.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/operations_cpu.h +1123 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device.h +207 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device_impl.h +1043 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/operations_cuda.h +1747 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/overlay_accel.h +64 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/specialization.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/context.h +251 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/device_source.h +48 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/operations_cpu.h +2067 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/bvh_sah.h +182 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/context.h +280 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/device_source.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/operations_cpu.h +1405 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_common.h +948 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_mux.h +32 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_post.h +96 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/renderer.h +484 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/save_cpu.h +314 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/scene.h +44 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/transforms_generic.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/types.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/rig/operations_cpu.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/rig/operations_generic.h +121 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/rig/rig.h +70 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/scene.h +132 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/segmentation_cpu.h +145 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/transforms.h +204 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/types.h +76 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/algorithms.h +6 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/operations_cpu.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/operations_cpu_mkl.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/operations_generic.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/config.h +243 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/operations_cuda.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/operations_generic.h +205 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/persist.h +109 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/state.h +51 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/mixed_imitation.h +63 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_cuda.h +190 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_generic.h +332 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_generic_mixed_imitation.h +81 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/persist.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/ppo.h +105 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/approximators_gru.h +84 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/approximators_mlp.h +61 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/config.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/operations_generic.h +193 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/state.h +52 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu_accelerate.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu_mkl.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu_mux.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cuda.h +131 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_generic.h +580 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/sac.h +151 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/approximators_gru.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/approximators_mlp.h +54 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/config.h +107 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/operations_generic.h +174 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/state.h +46 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu_accelerate.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu_mkl.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu_mux.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cuda.h +117 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_generic.h +359 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/td3.h +141 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/components.h +4 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/off_policy_runner.h +225 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cpu.h +95 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cpu_accelerate.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cpu_mkl.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cuda.h +237 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_generic.h +498 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_generic_per_env.h +112 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/collection.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/on_policy_runner.h +122 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_accelerate.h +8 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_mkl.h +8 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_mux.h +12 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cuda.h +183 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_generic.h +366 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_generic_common.h +74 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/persist.h +47 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_cpu.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_cpu_accelerate.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_cpu_mkl.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_generic.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/operations_cpu.h +9 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/operations_generic.h +123 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/persist.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/replay_buffer.h +93 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/running_normalizer/operations_generic.h +76 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/running_normalizer/persist.h +31 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/running_normalizer/running_normalizer.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/operations_generic.h +58 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/scale_observations/operations_generic.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/scale_observations/wrapper.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/wrappers.h +29 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/acrobot/acrobot.h +88 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/acrobot/operations_cpu.h +152 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/acrobot/operations_generic.h +202 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/environment.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/operations_cuda.h +204 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/operations_generic.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/operations_generic_common.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/persist.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/car.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/operations_cpu.h +110 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/operations_generic.h +206 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/operations_json.h +59 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/track.h +23 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/ui.h +189 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/environments.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/flag/environment.h +87 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/flag/operations_cpu.h +212 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/flag/operations_generic.h +215 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/observation.h +75 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/operations_cpu.h +1063 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/operations_cuda.h +564 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/pose.h +253 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/presets.h +154 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/raptor/operations_cpu.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/raptor/operations_generic.h +91 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/raptor/raptor.h +71 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/operations_cpu.h +190 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/operations_generic.h +32 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/rig.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/capture_cpu.h +86 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/capture_cuda.h +69 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/capture_optix.h +163 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/operations_cpu.h +223 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/operations_cpu_spectator.h +194 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/operations_cuda.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/operations_cuda_spectator.h +109 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/spectator.h +82 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/spy.h +107 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/spy/ui.h +30 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/moving_gate.h +103 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/operations_cpu.h +279 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/operations_cuda.h +242 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_cpu.h +322 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_cuda.h +312 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_generic_position_hold.h +128 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/position_hold.h +22 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/target_frame.h +92 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/baseline.h +46 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/calibration.h +62 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/metrics.h +101 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/operations_cpu.h +374 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/visual_inertial_localization.h +126 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/world.h +333 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/inertial_velocity.h +27 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/metrics.h +266 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/multirotor.h +1138 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_cpu.h +2252 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/05_state_is_nan.h +148 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/10_sample_initial_parameters.h +228 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/20_initial_state.h +208 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/30_sample_initial_state.h +300 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/35_get_desired_state.h +63 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/40_observe.h +637 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/50_state_algebra.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/60_dynamics.h +134 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/70_post_integration.h +368 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/80_abs_diff.h +312 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic.h +367 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic_inertial_velocity.h +44 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_helper_generic.h +43 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_multitask_generic.h +70 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_multitask_generic_forward.h +24 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/default.h +209 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/arpl.h +112 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/crazyflie.h +127 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/crazyflie_openmv.h +119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/flightmare.h +111 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/fs.h +113 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/mrs.h +110 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/soft.h +117 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/soft_rigid.h +118 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/x500.h +88 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/x500_real.h +88 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/x500_sim.h +114 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/init/default.h +56 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/registry.h +96 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/default.h +64 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/reward_functions.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/squared/operations_generic.h +202 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/squared/squared.h +52 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/termination/default.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/trajectories/lissajous.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/trajectories/trajectory.h +78 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/persist.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/persist_code.h +53 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/quaternion_helper.h +103 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/ui.h +180 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/memory/environment.h +69 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/memory/operations_cpu.h +46 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/memory/operations_generic.h +78 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/README.MD +5 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/ant.h +77 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/model.h +415 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/operations_cpu.h +162 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/persist.h +86 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/ui.h +141 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/mujoco.h +1 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/bottleneck/bottleneck.h +113 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/bottleneck/operations_cpu.h +289 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/bottleneck/operations_generic.h +495 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/environments.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/observation.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/operations_cpu.h +2 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/operations_generic.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/operations_cpu.h +146 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/operations_generic.h +262 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/pendulum.h +197 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/ui.h +97 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/ui_xeus.h +124 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/reacher/operations_cpu.h +426 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/reacher/operations_generic.h +424 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/reacher/reacher.h +137 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/loop.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/config.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/operations_cpu.h +233 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/persist.h +30 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/state.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/config.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/operations_generic.h +47 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/persist.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/state.h +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/config.h +47 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/operations_generic.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/persist.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/state.h +36 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/config.h +22 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/operations_cpu.h +44 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/persist.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/state.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/config.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/operations_cpu.h +113 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/persist.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/state.h +24 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/config.h +43 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/operations_cpu.h +190 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/persist.h +30 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/state.h +37 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/steps.h +4 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/config.h +27 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/operations_cpu.h +52 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/persist.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/state.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/operations_generic.h +3 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/rl.h +5 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/evaluation/evaluation.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/evaluation/operations_cpu.h +48 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/evaluation/operations_generic.h +275 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/validation.h +269 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/validation_analysis.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl_tools.h +80 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/client.h +50 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/operations_boost.h +92 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/operations_cpu.h +174 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/operations_websocket.h +208 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/server.h +448 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/universe.h +4 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/declarations_cpu.h +13 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/declarations_cpu_emscripten.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_arm.h +29 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cpu.h +24 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cpu_emscripten.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cuda.h +33 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_dummy.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_esp32.h +20 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_generic.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_wasm32.h +18 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/env/operations_cpu.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/env/operations_generic.h +14 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/extrack/extrack.h +129 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/extrack/operations_cpu.h +588 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/integrators.h +103 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/memcpy.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/tuple/operations_generic.h +48 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/tuple/tuple.h +147 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/typing.h +122 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/vector_operations.h +172 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/polyak/operations_cuda.h +53 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/polyak/operations_generic.h +93 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/string/operations_generic.h +201 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/zlib/operations_cpu.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/version.h +28 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/CMakeLists.txt +15 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/README.md +214 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/CMakeLists.txt +11 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/generic/CMakeLists.txt +17 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/generic/freestanding_check.cpp +134 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/metal/CMakeLists.txt +31 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/metal/device.metal +912 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/metal/metal_cpp_impl.cpp +6 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/optix/CMakeLists.txt +51 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/optix/device.cu +1 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/optix/overlay_accel.cu +308 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/CMakeLists.txt +37 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/device.comp +970 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/device_spirv.cpp +44 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/webgpu/CMakeLists.txt +31 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/webgpu/device.wgsl +1381 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/CMakeLists.txt +129 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/README.md +131 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/benchmark.cpp +180 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/benchmark_dynamic.cpp +491 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/download_paper_scene.py +74 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/ios_app/CMakeLists.txt +104 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/ios_app/Info.plist +36 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/ios_app/Sources/BenchmarkApp.swift +172 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/ios_app/benchmark.h +10 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/ios_app/benchmark.mm +46 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/ios_app/build.sh +17 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/rig.cpp +119 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix.cpp +1382 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix.h +5 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_config.h.in +25 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_identity.cmake +11 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_main.cpp +5 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_physics.cu +125 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_physics.h +58 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_physics_contract.h +179 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_physics_cpu.cpp +77 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/camera_orbit.h +51 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/CMakeLists.txt +199 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/antialiasing.cpp +214 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/drone.cpp +320 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/drone_device.cu +359 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/environment/environment.h +96 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/environment/operations_cpu.h +263 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/example.cpp +273 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/fixed_pose.cpp +221 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/flow.cpp +120 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/interactive.cpp +1015 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/make_drone_glb.py +172 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/minimal.cpp +82 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/minimal_overlay.cpp +137 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/motion_blur.cpp +232 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/render_pose_trace.cpp +1829 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/render_pose_trace_motion_blur.cpp +647 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/CMakeLists.txt +147 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/README.md +15 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/job.sbatch +28 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model.h +260 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_config.h +24 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_forward_cuda.h +397 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_operations.h +418 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_persist.h +45 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_student.h +70 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/scene.cpp +222 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/scene.h +68 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/.gitignore +4 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/CMakeLists.txt +4 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Info.plist +24 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Info_ios.plist +36 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/CameraManager.swift +120 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/ContentView.swift +703 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/DatasetRecorder.swift +285 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/YawPredictorApp.swift +25 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/YawPredictor.entitlements +8 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/build.sh +66 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/build_ios.sh +133 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/generate.sh +6 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/h5_to_tar.cpp +82 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/inference.cpp +166 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/inference.h +26 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/project.yml +30 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/test_tar_vs_hdf5.cpp +173 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_cuda.cu +699 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_dataset_overlay.cpp +475 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_distill_cuda.cu +995 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_eval.cu +457 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_real_world_eval.cpp +660 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_viewer.cu +443 -0
- hyperdrone/_vendor/rl-tools/src/rl/environments/hyperdrone/spy/CMakeLists.txt +63 -0
- hyperdrone/_vendor/rl-tools/src/rl/environments/hyperdrone/spy/example.cpp +101 -0
- hyperdrone/_vendor/rl-tools/src/rl/environments/hyperdrone/spy/ui.cpp +380 -0
- hyperdrone/dynamics/__init__.py +5 -0
- hyperdrone/dynamics/_component.py +31 -0
- hyperdrone/dynamics/_config.py +46 -0
- hyperdrone/dynamics/_sim.py +166 -0
- hyperdrone/env/__init__.py +23 -0
- hyperdrone/env/_multi_environment.py +566 -0
- hyperdrone/env/_rotorcraft.py +29 -0
- hyperdrone/env/_spy.py +39 -0
- hyperdrone/examples/.gitignore +3 -0
- hyperdrone/examples/Benchmark.ipynb +113 -0
- hyperdrone/examples/HyperDrone.ipynb +589 -0
- hyperdrone/examples/Orbiter.ipynb +496 -0
- hyperdrone/examples/Renderer.ipynb +218 -0
- hyperdrone/examples/__init__.py +16 -0
- hyperdrone/examples/articulation.py +55 -0
- hyperdrone/examples/benchmark.py +236 -0
- hyperdrone/examples/benchmark_minimal.py +65 -0
- hyperdrone/examples/data.py +71 -0
- hyperdrone/examples/drone_flythrough.py +169 -0
- hyperdrone/examples/hyperdrone_videos/my_world_preview.h +17 -0
- hyperdrone/examples/my_world.h +17 -0
- hyperdrone/examples/render_procthor.py +40 -0
- hyperdrone/examples/shots.py +108 -0
- hyperdrone/examples/spy.py +40 -0
- hyperdrone/examples/visual_inertial_localization.py +158 -0
- hyperdrone/gym/__init__.py +67 -0
- hyperdrone/render/__init__.py +57 -0
- hyperdrone/render/_component.py +51 -0
- hyperdrone/render/_config.py +76 -0
- hyperdrone/render/_renderer.py +498 -0
- hyperdrone/render/_rig.py +136 -0
- hyperdrone/render/_sampling.py +69 -0
- hyperdrone/render/_scene.py +38 -0
- hyperdrone/render/datasets.py +15 -0
- hyperray-0.0.1.dist-info/METADATA +519 -0
- hyperray-0.0.1.dist-info/RECORD +788 -0
- hyperray-0.0.1.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
"""Direct bindings to the C++ rl_tools hyperdrone::MultiEnvironment<World>.
|
|
2
|
+
|
|
3
|
+
The JIT extension binds the rl_tools batch verbs; this class mirrors that
|
|
4
|
+
verb surface one-to-one (reset / observe / observe_privileged / step / rewards /
|
|
5
|
+
terminated / rotate_scene) so a notebook drives the exact environment the C++ training
|
|
6
|
+
targets use — no runners involved.
|
|
7
|
+
|
|
8
|
+
Configuration follows the C++ extension ladder: a preset names the platform
|
|
9
|
+
(`presets::*` on the C++ side), a task names the wrapper (`tasks::*`), and a handful of
|
|
10
|
+
universal knobs (instances_per_environment, camera resolution, fidelity, motion blur) complete the picture. Arbitrary
|
|
11
|
+
C++ specifications are reached through `spec_header=`: a path to a C++ header defining
|
|
12
|
+
`hyperdrone_env_user::WORLD` (including any rl_tools headers it needs); the header's
|
|
13
|
+
content hash is part of the JIT key, and preset/task/num_agents/num_cameras_per_agent must stay at their
|
|
14
|
+
defaults since the user type supersedes them.
|
|
15
|
+
"""
|
|
16
|
+
import hashlib
|
|
17
|
+
import json
|
|
18
|
+
import os
|
|
19
|
+
from dataclasses import dataclass, field, fields
|
|
20
|
+
|
|
21
|
+
import numpy as np
|
|
22
|
+
|
|
23
|
+
import conta
|
|
24
|
+
|
|
25
|
+
from .. import _jit as jit
|
|
26
|
+
from .._dlpack import is_cuda
|
|
27
|
+
from .._outputs import VALID_MOTION_BLUR_SAMPLES, normalize_outputs, output_defines
|
|
28
|
+
from .._parameters import merge, resolve
|
|
29
|
+
|
|
30
|
+
PRESETS = {"crazyflie": 0, "x500_fpv": 1, "x500_fpv_imu": 2}
|
|
31
|
+
SELF_VISIBLE_PRESETS = ("x500_fpv", "x500_fpv_imu")
|
|
32
|
+
TASKS = {None: 0, "target_frame": 1, "moving_gate": 2, "visual_inertial_localization": 3}
|
|
33
|
+
DATASETS = {"glb": 0, "procthor": 1}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _backend():
|
|
37
|
+
from ..render._component import _backend as render_backend
|
|
38
|
+
|
|
39
|
+
return render_backend()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def component():
|
|
43
|
+
resolved = _backend()
|
|
44
|
+
return jit.Component(
|
|
45
|
+
name="env",
|
|
46
|
+
variant=resolved.lower(),
|
|
47
|
+
core_target="hyperdrone_env_core",
|
|
48
|
+
needs_cuda=resolved == "optix",
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
_SHADING = {"low": 0, "medium": 1, "high": 2}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
@dataclass(frozen=True, kw_only=True)
|
|
56
|
+
class EnvConfig:
|
|
57
|
+
num_environments: int = 1
|
|
58
|
+
instances_per_environment: int = 4
|
|
59
|
+
width: int = 32
|
|
60
|
+
height: int = 32
|
|
61
|
+
fidelity: str = "high"
|
|
62
|
+
preset: str = "crazyflie"
|
|
63
|
+
task: str = None
|
|
64
|
+
num_agents: int = 1
|
|
65
|
+
num_cameras_per_agent: int = 1
|
|
66
|
+
spec_header: str = None
|
|
67
|
+
device: str = None
|
|
68
|
+
motion_blur_samples: int = 1
|
|
69
|
+
output: tuple = ("rgb",)
|
|
70
|
+
semantic_segmentation: bool = False
|
|
71
|
+
dataset: str = "glb"
|
|
72
|
+
|
|
73
|
+
def __post_init__(self):
|
|
74
|
+
for name in ("num_environments", "instances_per_environment", "width", "height", "num_agents", "num_cameras_per_agent"):
|
|
75
|
+
if type(getattr(self, name)) is not int or getattr(self, name) < 1:
|
|
76
|
+
raise ValueError(f"hyperdrone: {name} must be a positive integer")
|
|
77
|
+
object.__setattr__(self, "output", normalize_outputs(self.output))
|
|
78
|
+
if "rgb" not in self.output:
|
|
79
|
+
raise ValueError("hyperdrone: environment observations require rgb output")
|
|
80
|
+
if self.semantic_segmentation and "segmentation" not in self.output:
|
|
81
|
+
raise ValueError("hyperdrone: semantic_segmentation requires segmentation output")
|
|
82
|
+
if self.dataset not in DATASETS:
|
|
83
|
+
raise ValueError(f"hyperdrone: unknown dataset {self.dataset!r} (one of {sorted(DATASETS)})")
|
|
84
|
+
if self.preset not in PRESETS:
|
|
85
|
+
raise ValueError(f"hyperdrone: unknown preset {self.preset!r} (one of {sorted(PRESETS)})")
|
|
86
|
+
if self.task not in TASKS:
|
|
87
|
+
raise ValueError(f"hyperdrone: unknown task {self.task!r} (one of {sorted(k for k in TASKS if k)} or None)")
|
|
88
|
+
if self.fidelity not in _SHADING:
|
|
89
|
+
raise ValueError(f"hyperdrone: unknown fidelity {self.fidelity!r} (one of {sorted(_SHADING)})")
|
|
90
|
+
if type(self.motion_blur_samples) is not int or self.motion_blur_samples not in VALID_MOTION_BLUR_SAMPLES:
|
|
91
|
+
raise ValueError(f"hyperdrone: motion_blur_samples must be one of {VALID_MOTION_BLUR_SAMPLES}")
|
|
92
|
+
if self.task is not None and self.num_agents > 1:
|
|
93
|
+
raise ValueError(f"hyperdrone: task {self.task!r} is single-agent")
|
|
94
|
+
if self.task == "target_frame" and self.num_cameras_per_agent != 1:
|
|
95
|
+
raise ValueError("hyperdrone: task 'target_frame' requires one camera per agent")
|
|
96
|
+
if self.device not in (None, "cuda", "cpu"):
|
|
97
|
+
raise ValueError(f"hyperdrone: unknown device {self.device!r} (one of 'cuda', 'cpu' or None)")
|
|
98
|
+
if self.num_agents > 1 and self.preset not in SELF_VISIBLE_PRESETS:
|
|
99
|
+
raise ValueError(
|
|
100
|
+
"hyperdrone: multi-agent needs a SELF_VISIBLE preset (agents seeing each "
|
|
101
|
+
"other needs geometry to see) — use preset='x500_fpv'"
|
|
102
|
+
)
|
|
103
|
+
if self.task == "visual_inertial_localization":
|
|
104
|
+
if self.preset != "x500_fpv_imu":
|
|
105
|
+
raise ValueError(
|
|
106
|
+
"hyperdrone: task 'visual_inertial_localization' needs an IMU in the "
|
|
107
|
+
"dynamics state chain — use preset='x500_fpv_imu'"
|
|
108
|
+
)
|
|
109
|
+
if self.device == "cuda":
|
|
110
|
+
raise ValueError("hyperdrone: task 'visual_inertial_localization' has no CUDA verbs — use device='cpu'")
|
|
111
|
+
if self.spec_header is not None:
|
|
112
|
+
defaults = EnvConfig()
|
|
113
|
+
if self.output != defaults.output or self.semantic_segmentation:
|
|
114
|
+
raise ValueError("hyperdrone: spec_header defines the outputs; leave output and semantic_segmentation at their defaults")
|
|
115
|
+
superseded = [item.name for item in fields(self) if item.name not in ("num_environments", "spec_header", "device", "dataset") and getattr(self, item.name) != getattr(defaults, item.name)]
|
|
116
|
+
if superseded:
|
|
117
|
+
raise ValueError(f"hyperdrone: spec_header supersedes {', '.join(superseded)}; leave these fields at their defaults")
|
|
118
|
+
if not os.path.isfile(self.spec_header):
|
|
119
|
+
raise ValueError(f"hyperdrone: spec_header not found: {self.spec_header}")
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
def world_device(self):
|
|
123
|
+
"""Where the World runs: device, or by default 'cuda' on the OptiX backend for the
|
|
124
|
+
presets and tasks with CUDA verbs and 'cpu' otherwise (spec_header Worlds included, whose
|
|
125
|
+
verbs may be host code)."""
|
|
126
|
+
if self.device is not None:
|
|
127
|
+
if self.device == "cuda" and _backend() != "optix":
|
|
128
|
+
raise ValueError("hyperdrone: device='cuda' needs the OptiX backend")
|
|
129
|
+
return self.device
|
|
130
|
+
if _backend() == "optix" and self.spec_header is None and self.task != "visual_inertial_localization":
|
|
131
|
+
return "cuda"
|
|
132
|
+
return "cpu"
|
|
133
|
+
|
|
134
|
+
def defines(self):
|
|
135
|
+
values = {
|
|
136
|
+
**output_defines(self.output, "HYPERDRONE_ENV"),
|
|
137
|
+
"HYPERDRONE_ENV_SEMANTIC_SEGMENTATION": int(self.semantic_segmentation),
|
|
138
|
+
"HYPERDRONE_ENV_DATASET": DATASETS[self.dataset],
|
|
139
|
+
"HYPERDRONE_ENV_NUM_ENVIRONMENTS": self.num_environments,
|
|
140
|
+
"HYPERDRONE_ENV_INSTANCES": self.instances_per_environment,
|
|
141
|
+
"HYPERDRONE_ENV_CAM_WIDTH": self.width,
|
|
142
|
+
"HYPERDRONE_ENV_CAM_HEIGHT": self.height,
|
|
143
|
+
"HYPERDRONE_ENV_SHADING": _SHADING[self.fidelity],
|
|
144
|
+
"HYPERDRONE_ENV_MB_SAMPLES": self.motion_blur_samples,
|
|
145
|
+
"HYPERDRONE_ENV_PRESET": PRESETS[self.preset],
|
|
146
|
+
"HYPERDRONE_ENV_TASK": TASKS[self.task],
|
|
147
|
+
"HYPERDRONE_ENV_N_AGENTS": self.num_agents,
|
|
148
|
+
"HYPERDRONE_ENV_N_CAMERAS_PER_AGENT": self.num_cameras_per_agent,
|
|
149
|
+
"HYPERDRONE_ENV_DEVICE_CUDA": 1 if self.world_device == "cuda" else 0,
|
|
150
|
+
}
|
|
151
|
+
if self.spec_header is not None:
|
|
152
|
+
values["HYPERDRONE_ENV_SPEC_HEADER"] = os.path.abspath(self.spec_header)
|
|
153
|
+
return values
|
|
154
|
+
|
|
155
|
+
def canonical(self):
|
|
156
|
+
canonical = " ".join(f"{name}={value}" for name, value in sorted(self.defines().items()))
|
|
157
|
+
if self.spec_header is not None:
|
|
158
|
+
with open(self.spec_header, "rb") as header:
|
|
159
|
+
canonical += f" spec_hash={hashlib.sha256(header.read()).hexdigest()[:16]}"
|
|
160
|
+
return canonical
|
|
161
|
+
|
|
162
|
+
def key(self):
|
|
163
|
+
return jit.canonical_key(self.canonical())
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
@dataclass(frozen=True, kw_only=True)
|
|
167
|
+
class ObservationLayout:
|
|
168
|
+
"""Named blocks of an observation vector, described by the compiled environment.
|
|
169
|
+
|
|
170
|
+
For image observations (axis == "channel"), shape is (height, width, channels) and
|
|
171
|
+
block offsets/sizes index the channel axis; for flat vectors (axis == "flat"), shape
|
|
172
|
+
is (dim,) and blocks slice the vector directly.
|
|
173
|
+
"""
|
|
174
|
+
shape: tuple
|
|
175
|
+
axis: str
|
|
176
|
+
blocks: dict = field(default_factory=dict)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def _is_conta_reference(value):
|
|
181
|
+
return isinstance(value, dict) or (isinstance(value, str) and value.startswith("conta:"))
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
def _resolve_asset(asset):
|
|
185
|
+
if asset is None:
|
|
186
|
+
return None
|
|
187
|
+
if _is_conta_reference(asset):
|
|
188
|
+
return str(conta.resolve(asset))
|
|
189
|
+
return str(asset)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
def _normalize_scenes(scenes, num_environments):
|
|
193
|
+
"""Normalize the scene corpus into a list of local paths.
|
|
194
|
+
|
|
195
|
+
Accepts a directory (the corpus is its sorted .glb files), a single reference, or a
|
|
196
|
+
sequence of references — each a .glb path, a "conta:HASH" string, or a store manifest
|
|
197
|
+
entry {"description": ..., "hash": ...}. Conta references are resolved (downloading
|
|
198
|
+
into the shared conta cache) here; list order is the corpus order. The corpus is
|
|
199
|
+
validated here because the C++ dataset code exits the process on an invalid one.
|
|
200
|
+
"""
|
|
201
|
+
if isinstance(scenes, (str, os.PathLike, dict)):
|
|
202
|
+
scenes = [scenes]
|
|
203
|
+
references = [
|
|
204
|
+
str(conta.resolve(entry)) if _is_conta_reference(entry) else str(entry)
|
|
205
|
+
for entry in scenes
|
|
206
|
+
]
|
|
207
|
+
if len(references) == 1 and os.path.isdir(references[0]):
|
|
208
|
+
count = sum(1 for name in os.listdir(references[0]) if name.endswith(".glb"))
|
|
209
|
+
if count < num_environments:
|
|
210
|
+
raise ValueError(
|
|
211
|
+
f"hyperdrone: {count} .glb scene(s) in {references[0]}, but "
|
|
212
|
+
f"num_environments={num_environments} needs at least one scene per environment"
|
|
213
|
+
)
|
|
214
|
+
return references
|
|
215
|
+
missing = [reference for reference in references if not os.path.isfile(reference)]
|
|
216
|
+
if missing:
|
|
217
|
+
raise ValueError(f"hyperdrone: scene reference(s) not found: {missing}")
|
|
218
|
+
if len(references) < num_environments:
|
|
219
|
+
raise ValueError(
|
|
220
|
+
f"hyperdrone: {len(references)} scene reference(s), but "
|
|
221
|
+
f"num_environments={num_environments} needs at least one scene per environment"
|
|
222
|
+
)
|
|
223
|
+
return references
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
class MultiEnvironment:
|
|
227
|
+
"""The C++ environment behind the same verb surface: construct with scenes, then
|
|
228
|
+
reset(mask) -> observe() -> step(actions) -> rewards()/terminated().
|
|
229
|
+
|
|
230
|
+
scenes: a directory of .glb scenes (sorted corpus), or a reference / sequence of
|
|
231
|
+
references — .glb paths, "conta:HASH" strings, or conta store manifest entries
|
|
232
|
+
{"description": ..., "hash": ...}; a reference list is the corpus in list order.
|
|
233
|
+
config.dataset: "glb" uses the authored taxonomy; "procthor" requires ai2thor-hab
|
|
234
|
+
metadata for semantic output. The shared taxonomy covers all scenes and overlay assets.
|
|
235
|
+
drones: the drone table every agent samples from uniformly at each reset, independently of
|
|
236
|
+
the scene its environment shows: a list of {"asset": <GLB reference or None>, "parameters":
|
|
237
|
+
{partial dict}}. The asset is the body/prop_* GLB rendered into the instance's cameras
|
|
238
|
+
(required per entry when the compiled world is SELF_VISIBLE, rejected otherwise); the parameters are merged
|
|
239
|
+
over the shared constructor base (see parameters) and may only touch what varies per drone: dynamics.dynamics
|
|
240
|
+
(a "model" key loads an l2f registry entry), dynamics.imu and cameras. The same GLB may appear
|
|
241
|
+
in several entries; distinct GLBs load once and need the same part count (the body swaps in
|
|
242
|
+
place at reset). The table holds at most max_drone_types entries. drone_asset=X is the one-entry
|
|
243
|
+
table [{"asset": X}]; without either, the table is the nominal drone.
|
|
244
|
+
assets: task-owned references by name; moving_gate requires {"gate": reference}.
|
|
245
|
+
All assets accept conta references too.
|
|
246
|
+
|
|
247
|
+
parameters: a partial dict in the schema of the parameters property, {"dynamics": <l2f parameters>, "cameras": [{"mount": {"pose": {"position", "orientation"}}, "fov"}, ...]}, merged over the preset's nominal values as the base of every drone entry (the specification's randomization ranges apply on top at reset). cameras requires one partial dict per camera; {} keeps its nominal values. parameters["dynamics"]["dynamics"]["model"] loads an l2f registry entry (hyperdrone.dynamics.MODELS) before the rest is merged, J_inv follows J unless given, the camera orientation is a (w, x, y, z) quaternion mapping the camera's FLU axes into the body frame, and fov is the horizontal FOV in degrees.
|
|
248
|
+
|
|
249
|
+
Tasks with an IMU stream (task='visual_inertial_localization') add observe_imu() — the
|
|
250
|
+
IMU sample of the last step, named by observation_layout_imu — and render a camera frame
|
|
251
|
+
only every frame_stride steps; their episodes are fixed-length and synchronized, so the
|
|
252
|
+
reset mask must be all-or-none per environment. Autonomous tasks fly themselves:
|
|
253
|
+
action_dim is 0 and step() takes no actions.
|
|
254
|
+
|
|
255
|
+
Every verb takes host (numpy) arrays and, when the World runs on the GPU (device ==
|
|
256
|
+
"cuda"), CUDA arrays of its GPU too (any DLPack producer, e.g. torch tensors); outputs are
|
|
257
|
+
written into out= when given. CUDA arrays are used in place on the environment's
|
|
258
|
+
execution stream (see the stream property); host arrays are staged and synchronized.
|
|
259
|
+
"""
|
|
260
|
+
|
|
261
|
+
def __init__(self, scenes, *, config=None, seed=0, drone_asset=None, assets=None, parameters=None, drones=None, stream=None):
|
|
262
|
+
self._spy = None
|
|
263
|
+
self.config = config if config is not None else EnvConfig()
|
|
264
|
+
if drones is not None and drone_asset is not None:
|
|
265
|
+
raise ValueError("hyperdrone: pass either drone_asset= (one drone) or drones= (the table)")
|
|
266
|
+
if drones is None:
|
|
267
|
+
drones = [{"asset": drone_asset}] if drone_asset is not None else [{}]
|
|
268
|
+
drones = [dict(entry) for entry in drones]
|
|
269
|
+
if not drones:
|
|
270
|
+
raise ValueError("hyperdrone: drones= needs at least one entry")
|
|
271
|
+
for entry in drones:
|
|
272
|
+
unknown = sorted(set(entry) - {"asset", "parameters"})
|
|
273
|
+
if unknown:
|
|
274
|
+
raise ValueError(f"hyperdrone: unknown drone entry keys {unknown} (asset, parameters)")
|
|
275
|
+
self._module = jit.module(component(), self.config)
|
|
276
|
+
self._synchronized_resets = self._module.synchronized_resets
|
|
277
|
+
self.outputs = self._module.outputs
|
|
278
|
+
self.segmentation_mode = self._module.segmentation_mode
|
|
279
|
+
for name, value in self._module.dimensions.items():
|
|
280
|
+
setattr(self, name, value)
|
|
281
|
+
if len(drones) > self.max_drone_types:
|
|
282
|
+
capacity_hint = "; raise MAX_DRONES in spec_header" if self.config.spec_header is not None else ""
|
|
283
|
+
raise ValueError(f"hyperdrone: {len(drones)} drones but this configuration holds {self.max_drone_types}{capacity_hint}")
|
|
284
|
+
for entry in drones:
|
|
285
|
+
if self.self_visible and entry.get("asset") is None:
|
|
286
|
+
raise ValueError("hyperdrone: this SELF_VISIBLE world needs an asset per drone; pass drone_asset= or drones=")
|
|
287
|
+
if not self.self_visible and entry.get("asset") is not None:
|
|
288
|
+
raise ValueError("hyperdrone: drone assets need a SELF_VISIBLE world, nothing would render them")
|
|
289
|
+
scene_references = _normalize_scenes(scenes, self.num_environments)
|
|
290
|
+
drone_assets = [_resolve_asset(entry.get("asset")) for entry in drones]
|
|
291
|
+
assets = {name: _resolve_asset(asset) for name, asset in (assets or {}).items()}
|
|
292
|
+
self.observation_layout = ObservationLayout(**self._module.observation_layout)
|
|
293
|
+
self.observation_layout_privileged = ObservationLayout(**self._module.observation_layout_privileged)
|
|
294
|
+
self.observation_layout_imu = ObservationLayout(**self._module.observation_layout_imu) if self.observation_dim_imu > 0 else None
|
|
295
|
+
self._environment = self._module.Environment()
|
|
296
|
+
if stream is not None:
|
|
297
|
+
self.stream = stream
|
|
298
|
+
nominal = self._resolve(json.loads(self._environment.parameters()), parameters or {})
|
|
299
|
+
drone_parameters = []
|
|
300
|
+
for entry in drones:
|
|
301
|
+
overrides = entry.get("parameters") or {}
|
|
302
|
+
if "drone" in overrides:
|
|
303
|
+
raise ValueError("hyperdrone: drone is sampled at reset from the drones= table")
|
|
304
|
+
self._check_per_drone(overrides)
|
|
305
|
+
drone_parameters.append(json.dumps(self._resolve(nominal, overrides)))
|
|
306
|
+
self._environment.init(scene_references, drone_assets, drone_parameters, assets, seed)
|
|
307
|
+
|
|
308
|
+
@staticmethod
|
|
309
|
+
def _check_per_drone(overrides):
|
|
310
|
+
shared = sorted(set(overrides.get("dynamics", {})) - {"dynamics", "imu"})
|
|
311
|
+
if shared:
|
|
312
|
+
raise ValueError(f"hyperdrone: dynamics {shared} are shared by all instances; set them through parameters=")
|
|
313
|
+
|
|
314
|
+
def _resolve(self, base, overrides):
|
|
315
|
+
overrides = dict(overrides)
|
|
316
|
+
if "cameras" in overrides:
|
|
317
|
+
cameras = overrides["cameras"]
|
|
318
|
+
if not isinstance(cameras, (list, tuple)) or len(cameras) != self.num_cameras_per_agent:
|
|
319
|
+
raise ValueError(f"hyperdrone: provide {self.num_cameras_per_agent} camera overrides per agent")
|
|
320
|
+
if any(not isinstance(camera, dict) for camera in cameras):
|
|
321
|
+
raise ValueError("hyperdrone: each camera override must be a dict")
|
|
322
|
+
overrides["cameras"] = [merge(nominal, camera, f"cameras[{index}].") for index, (nominal, camera) in enumerate(zip(base["cameras"], cameras))]
|
|
323
|
+
return resolve(base, overrides, self._environment.model)
|
|
324
|
+
|
|
325
|
+
@property
|
|
326
|
+
def parameters(self):
|
|
327
|
+
"""The resolved nominal parameters of drone 0, including its entry-specific overrides."""
|
|
328
|
+
return json.loads(self._environment.parameters())
|
|
329
|
+
|
|
330
|
+
@property
|
|
331
|
+
def drones(self):
|
|
332
|
+
"""The drone table every agent samples from at reset: one dict per entry with the resolved asset path and nominal parameters; each agent's "drone" value indexes it."""
|
|
333
|
+
return json.loads(self._environment.drones())
|
|
334
|
+
|
|
335
|
+
def instance_parameters(self):
|
|
336
|
+
"""Current episode parameters, one dict per instance. Single-agent entries use the parameters schema plus "drone", the model index; multi-agent entries contain "agents", a list of these dicts in agent order."""
|
|
337
|
+
return json.loads(self._environment.instance_parameters())
|
|
338
|
+
|
|
339
|
+
def set_instance_parameters(self, overrides, mask=None):
|
|
340
|
+
"""Overrides current parameters until reset: one dict for all selected instances or a list with one dict per selected instance. Multi-agent dicts contain "agents", one override dict per agent; use {} to keep an agent unchanged. Per-agent keys are dynamics.dynamics, dynamics.imu, cameras and "drone". cameras takes one partial dict per camera. Switching "drone" starts from that table entry's nominal before merging other overrides. Integration and other shared settings belong in constructor parameters=. Rotor overrides must preserve each rotor's XY quadrant and spin direction."""
|
|
341
|
+
mask = self._host_mask(mask)
|
|
342
|
+
selected = np.flatnonzero(mask)
|
|
343
|
+
if isinstance(overrides, dict):
|
|
344
|
+
overrides = [overrides] * len(selected)
|
|
345
|
+
if len(overrides) != len(selected):
|
|
346
|
+
raise ValueError(f"hyperdrone: {len(overrides)} overrides for {len(selected)} selected instances")
|
|
347
|
+
current = self.instance_parameters()
|
|
348
|
+
drones = self.drones
|
|
349
|
+
merged = []
|
|
350
|
+
for instance_i, instance_overrides in zip(selected, overrides):
|
|
351
|
+
if self.num_agents == 1:
|
|
352
|
+
per_agent_overrides = [instance_overrides]
|
|
353
|
+
agents = [current[instance_i]]
|
|
354
|
+
else:
|
|
355
|
+
if not isinstance(instance_overrides, dict) or set(instance_overrides) != {"agents"}:
|
|
356
|
+
raise ValueError("hyperdrone: multi-agent overrides need an 'agents' list")
|
|
357
|
+
per_agent_overrides = instance_overrides["agents"]
|
|
358
|
+
if not isinstance(per_agent_overrides, (list, tuple)) or len(per_agent_overrides) != self.num_agents:
|
|
359
|
+
raise ValueError(f"hyperdrone: provide {self.num_agents} agent overrides per instance")
|
|
360
|
+
agents = current[instance_i]["agents"]
|
|
361
|
+
updated = []
|
|
362
|
+
for base, agent_overrides in zip(agents, per_agent_overrides):
|
|
363
|
+
if not isinstance(agent_overrides, dict):
|
|
364
|
+
raise ValueError("hyperdrone: each agent override must be a dict")
|
|
365
|
+
self._check_per_drone(agent_overrides)
|
|
366
|
+
if self.config.task == "target_frame" and ("cameras" in agent_overrides or "drone" in agent_overrides):
|
|
367
|
+
raise ValueError("hyperdrone: task 'target_frame' takes each episode's drone and camera from its target setup; set the nominal through parameters= and drones=")
|
|
368
|
+
if "drone" in agent_overrides:
|
|
369
|
+
agent_overrides = dict(agent_overrides)
|
|
370
|
+
drone = agent_overrides.pop("drone")
|
|
371
|
+
if not isinstance(drone, (int, np.integer)) or not 0 <= drone < len(drones):
|
|
372
|
+
raise ValueError(f"hyperdrone: drone must index the drones table (0..{len(drones) - 1}), got {drone!r}")
|
|
373
|
+
base = dict(drones[drone]["parameters"], drone=int(drone))
|
|
374
|
+
agent_parameters = self._resolve(base, agent_overrides)
|
|
375
|
+
self._check_rotor_layout(drones[agent_parameters["drone"]]["parameters"], agent_parameters)
|
|
376
|
+
updated.append(agent_parameters)
|
|
377
|
+
merged.append(updated[0] if self.num_agents == 1 else {"agents": updated})
|
|
378
|
+
self._environment.set_instance_parameters(mask, json.dumps(merged))
|
|
379
|
+
|
|
380
|
+
def _check_rotor_layout(self, nominal, parameters):
|
|
381
|
+
if not self.self_visible:
|
|
382
|
+
return
|
|
383
|
+
def layout(values):
|
|
384
|
+
dynamics = values["dynamics"]["dynamics"]
|
|
385
|
+
return np.sign(np.asarray(dynamics["rotor_positions"])[:, :2]).tolist(), np.sign(np.asarray(dynamics["rotor_torque_directions"])[:, 2]).tolist()
|
|
386
|
+
if layout(parameters) != layout(nominal):
|
|
387
|
+
raise ValueError("hyperdrone: the rendered props follow the table entry's rotors; per-instance rotor_positions and rotor_torque_directions must keep each rotor's XY quadrant and spin direction (switch the drone through \"drone\" instead)")
|
|
388
|
+
|
|
389
|
+
@property
|
|
390
|
+
def dt(self):
|
|
391
|
+
return self.parameters["dynamics"]["integration"]["dt"]
|
|
392
|
+
|
|
393
|
+
@property
|
|
394
|
+
def device(self):
|
|
395
|
+
""""cuda" when the World runs on the GPU (EnvConfig.device), "cpu" otherwise."""
|
|
396
|
+
return "cuda" if self._module.CUDA_WORLD else "cpu"
|
|
397
|
+
|
|
398
|
+
@property
|
|
399
|
+
def render_backend(self):
|
|
400
|
+
"""The lowercase name of this environment's compiled raytracing backend."""
|
|
401
|
+
return self._module.render_backend
|
|
402
|
+
|
|
403
|
+
@property
|
|
404
|
+
def device_id(self):
|
|
405
|
+
"""The CUDA device the World runs on (the current one at construction)."""
|
|
406
|
+
return self._environment.device_id
|
|
407
|
+
|
|
408
|
+
@property
|
|
409
|
+
def stream(self):
|
|
410
|
+
"""The cudaStream_t every verb is enqueued on (0 on the cpu device). Set it to the stream
|
|
411
|
+
your arrays are produced and consumed on (e.g. torch.cuda.current_stream().cuda_stream);
|
|
412
|
+
work enqueued so far stays ordered before the switch."""
|
|
413
|
+
return self._environment.stream
|
|
414
|
+
|
|
415
|
+
@stream.setter
|
|
416
|
+
def stream(self, value):
|
|
417
|
+
self._environment.stream = int(value)
|
|
418
|
+
|
|
419
|
+
def synchronize(self):
|
|
420
|
+
self._environment.synchronize()
|
|
421
|
+
|
|
422
|
+
def close(self):
|
|
423
|
+
if self._spy is not None:
|
|
424
|
+
self._spy.close()
|
|
425
|
+
self._environment = None
|
|
426
|
+
|
|
427
|
+
def spy(self):
|
|
428
|
+
"""Open the native camera mosaic and spectator on the main thread. Use `with env.spy() as spy:` and call spy.update() after normal observe/render calls; it never renders observations itself. Closing the window leaves this environment running."""
|
|
429
|
+
from ._spy import Spy
|
|
430
|
+
|
|
431
|
+
if self._environment is None:
|
|
432
|
+
raise RuntimeError("hyperdrone: cannot open a spy on a closed environment")
|
|
433
|
+
if self._spy is not None and self._spy._environment is not None:
|
|
434
|
+
raise RuntimeError("hyperdrone: this environment already has an open spy")
|
|
435
|
+
self._spy = Spy(self._environment)
|
|
436
|
+
return self._spy
|
|
437
|
+
|
|
438
|
+
def _host_mask(self, mask):
|
|
439
|
+
if mask is None:
|
|
440
|
+
mask = np.ones(self.total_instances, dtype=bool)
|
|
441
|
+
return np.ascontiguousarray(np.asarray(mask, dtype=bool).reshape(self.total_instances))
|
|
442
|
+
|
|
443
|
+
def _input(self, array, dtype, shape):
|
|
444
|
+
if is_cuda(array):
|
|
445
|
+
return array
|
|
446
|
+
return np.ascontiguousarray(np.asarray(array, dtype=dtype).reshape(shape))
|
|
447
|
+
|
|
448
|
+
def _output(self, out, shape, dtype):
|
|
449
|
+
return np.empty(shape, dtype=dtype) if out is None else out
|
|
450
|
+
|
|
451
|
+
def spawn_points(self):
|
|
452
|
+
"""Record each instance for reset(spawn_points=...): scene hash, one model index per agent in "drone", scene placement, per-agent poses (xyz + wxyz), shutter fraction. Camera mounts and dynamics come from the drone table."""
|
|
453
|
+
return json.loads(self._environment.spawn_points())
|
|
454
|
+
|
|
455
|
+
def reset(self, mask=None, *, spawn_points=None):
|
|
456
|
+
"""Resets the selected instances (default: all), optionally replaying one recorded spawn per selected instance (a host mask then). Replayed spawns fly their entry's nominal drone parameters (target frames follow the replayed placement); velocities, motor speeds and task-specific state still follow their configured initialization."""
|
|
457
|
+
if spawn_points is None:
|
|
458
|
+
self._environment.reset(None if mask is None else self._input(mask, bool, (self.total_instances,)))
|
|
459
|
+
return
|
|
460
|
+
if mask is not None and is_cuda(mask):
|
|
461
|
+
raise ValueError("hyperdrone: spawn points take a host mask")
|
|
462
|
+
mask = self._host_mask(mask)
|
|
463
|
+
if len(spawn_points) != int(mask.sum()):
|
|
464
|
+
raise ValueError("hyperdrone: provide one spawn per selected instance")
|
|
465
|
+
for spawn in spawn_points:
|
|
466
|
+
if set(spawn) != {"scene", "drone", "scene_translation", "scene_yaw", "poses", "shutter_fraction"}:
|
|
467
|
+
raise ValueError("hyperdrone: invalid spawn fields (use spawn_points() to capture them)")
|
|
468
|
+
if not isinstance(spawn["drone"], list) or len(spawn["drone"]) != self.num_agents or any(type(drone) is not int for drone in spawn["drone"]) or not isinstance(spawn["scene"], str):
|
|
469
|
+
raise ValueError("hyperdrone: spawn needs one integer drone index per agent and a scene content hash")
|
|
470
|
+
for name, shape in (("scene_translation", (3,)), ("scene_yaw", (2,)), ("poses", (self.num_agents, 7)), ("shutter_fraction", ())):
|
|
471
|
+
values = np.asarray(spawn[name], dtype=float)
|
|
472
|
+
if values.shape != shape or not np.isfinite(values).all():
|
|
473
|
+
raise ValueError(f"hyperdrone: spawn {name} must have shape {shape} and finite values")
|
|
474
|
+
if not np.isclose(np.linalg.norm(spawn["scene_yaw"]), 1) or not np.allclose(np.linalg.norm(np.asarray(spawn["poses"])[:, 3:], axis=1), 1):
|
|
475
|
+
raise ValueError("hyperdrone: spawn yaw and orientation quaternions must have unit length")
|
|
476
|
+
if not 0 <= spawn["shutter_fraction"] <= 1:
|
|
477
|
+
raise ValueError("hyperdrone: spawn shutter_fraction must be in [0, 1]")
|
|
478
|
+
self._environment.reset(mask, json.dumps(spawn_points, allow_nan=False))
|
|
479
|
+
|
|
480
|
+
def observe(self, *, out=None):
|
|
481
|
+
"""The visual observation, (total, observation_dim) float32."""
|
|
482
|
+
out = self._output(out, (self.total_instances, self.observation_dim), np.float32)
|
|
483
|
+
self._environment.observe(out)
|
|
484
|
+
return out
|
|
485
|
+
|
|
486
|
+
def observe_privileged(self, *, out=None):
|
|
487
|
+
out = self._output(out, (self.total_instances, self.observation_dim_privileged), np.float32)
|
|
488
|
+
self._environment.observe_privileged(out)
|
|
489
|
+
return out
|
|
490
|
+
|
|
491
|
+
def observe_imu(self, *, out=None):
|
|
492
|
+
"""The IMU sample of the last step: (total, observation_dim_imu), named by observation_layout_imu."""
|
|
493
|
+
if self.observation_dim_imu == 0:
|
|
494
|
+
raise ValueError(f"hyperdrone: this configuration has no IMU observation (task={self.config.task!r})")
|
|
495
|
+
out = self._output(out, (self.total_instances, self.observation_dim_imu), np.float32)
|
|
496
|
+
self._environment.observe_imu(out)
|
|
497
|
+
return out
|
|
498
|
+
|
|
499
|
+
def step(self, actions=None):
|
|
500
|
+
if actions is None:
|
|
501
|
+
if self.action_dim != 0:
|
|
502
|
+
raise ValueError(
|
|
503
|
+
"hyperdrone: step() needs actions of shape (total_instances, action_dim); "
|
|
504
|
+
"only autonomous tasks (action_dim == 0) step without them"
|
|
505
|
+
)
|
|
506
|
+
actions = np.empty((self.total_instances, 0), dtype=np.float32)
|
|
507
|
+
self._environment.step(self._input(actions, np.float32, (self.total_instances, self.action_dim)))
|
|
508
|
+
|
|
509
|
+
def rewards(self, *, out=None):
|
|
510
|
+
out = self._output(out, self.total_instances, np.float32)
|
|
511
|
+
self._environment.rewards(out)
|
|
512
|
+
return out
|
|
513
|
+
|
|
514
|
+
def terminated(self, *, out=None):
|
|
515
|
+
out = self._output(out, self.total_instances, bool)
|
|
516
|
+
self._environment.terminated(out)
|
|
517
|
+
return out
|
|
518
|
+
|
|
519
|
+
def rotate_scene(self):
|
|
520
|
+
"""Selects the next scene of each environment; reset every instance before using it."""
|
|
521
|
+
self._environment.rotate_scene()
|
|
522
|
+
|
|
523
|
+
def frames(self):
|
|
524
|
+
"""The latest visual observation as (total, *observation_layout.shape) images."""
|
|
525
|
+
return self.observe().reshape(self.total_instances, *self.observation_layout.shape)
|
|
526
|
+
|
|
527
|
+
def _render_output(self, name, dtype, channels, out):
|
|
528
|
+
shape = (self.total_instances, self.num_views, self.height, self.width)
|
|
529
|
+
if channels > 1:
|
|
530
|
+
shape += (channels,)
|
|
531
|
+
out = self._output(out, shape, dtype)
|
|
532
|
+
getattr(self._environment, name)(out)
|
|
533
|
+
return out
|
|
534
|
+
|
|
535
|
+
def depth(self, *, out=None):
|
|
536
|
+
"""Camera-forward depth at pixel centres and shutter close, float32 (total_instances, num_views, H, W); misses are +inf. Acquires pending frames."""
|
|
537
|
+
return self._render_output("depth", np.float32, 1, out)
|
|
538
|
+
|
|
539
|
+
def segmentation(self, *, out=None):
|
|
540
|
+
"""Instance IDs or semantic classes, uint32 (total_instances, num_views, H, W); miss=0xFFFFFFFF."""
|
|
541
|
+
return self._render_output("segmentation", np.uint32, 1, out)
|
|
542
|
+
|
|
543
|
+
@property
|
|
544
|
+
def segmentation_classes(self):
|
|
545
|
+
"""A copy of the shared {semantic ID: name} dictionary; empty without a named semantic taxonomy."""
|
|
546
|
+
return self._environment.segmentation_classes
|
|
547
|
+
|
|
548
|
+
@property
|
|
549
|
+
def segmentation_taxonomy(self):
|
|
550
|
+
"""The shared semantic taxonomy name; empty when unnamed or semantic output is disabled."""
|
|
551
|
+
return self._environment.segmentation_taxonomy
|
|
552
|
+
|
|
553
|
+
def normals(self, *, out=None):
|
|
554
|
+
"""Scene-frame FLU geometric unit normals, float32 (total_instances, num_views, H, W, 3); miss=zero."""
|
|
555
|
+
return self._render_output("normals", np.float32, 3, out)
|
|
556
|
+
|
|
557
|
+
def flow(self, *, out=None):
|
|
558
|
+
"""Current-to-previous capture displacement in pixels, float32 (total_instances, num_views, H, W, 2).
|
|
559
|
+
|
|
560
|
+
First captures and reset instances use identical poses at both instants. Every due capture is retained even when unread; repeated reads reuse the same output. Use flow_status() to mask it.
|
|
561
|
+
"""
|
|
562
|
+
return self._render_output("flow", np.float32, 2, out)
|
|
563
|
+
|
|
564
|
+
def flow_status(self, *, out=None):
|
|
565
|
+
"""FlowStatus codes, uint32 (total_instances, num_views, H, W)."""
|
|
566
|
+
return self._render_output("flow_status", np.uint32, 1, out)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
|
|
3
|
+
from .. import _jit as jit, render
|
|
4
|
+
from ._multi_environment import component
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def _rotors(value, what):
|
|
8
|
+
array = np.ascontiguousarray(value, dtype=np.float32)
|
|
9
|
+
if array.ndim != 2 or array.shape[1] != 3:
|
|
10
|
+
raise ValueError(f"{what} must have shape (num_rotors, 3), got {array.shape}")
|
|
11
|
+
return array
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Rotorcraft(render.Rig):
|
|
15
|
+
"""The body/prop_* drone rig the environment renders for drone_asset, as a render.Rig:
|
|
16
|
+
part 0 is the body, every prop_* part spins about its hub (the centre of its geometry),
|
|
17
|
+
any other part rides the body. Without rotors, coordinate i is the phase of the i-th
|
|
18
|
+
prop_* part and the spin follows the Quad-X convention (front-right CCW). With a
|
|
19
|
+
dynamics model's rotor_positions and rotor_torque_directions, both (num_rotors, 3) as in
|
|
20
|
+
sim.parameters["dynamics"]["dynamics"], each hub pairs with its nearest rotor: coordinate i is then the phase of rotor i, spinning against the rotor's reaction torque. Coordinates are radians; convert motor_command to a visual angular speed before integration."""
|
|
21
|
+
|
|
22
|
+
def __init__(self, assembly, *, rotor_positions=None, rotor_torque_directions=None):
|
|
23
|
+
if (rotor_positions is None) != (rotor_torque_directions is None):
|
|
24
|
+
raise ValueError("rotor_positions and rotor_torque_directions come together")
|
|
25
|
+
if rotor_positions is not None:
|
|
26
|
+
rotor_positions = _rotors(rotor_positions, "rotor_positions")
|
|
27
|
+
rotor_torque_directions = _rotors(rotor_torque_directions, "rotor_torque_directions")
|
|
28
|
+
render.load_core() # registers RigModel, which the env core instantiates
|
|
29
|
+
self._bind(jit.core(component()).rotorcraft_rig(assembly, rotor_positions, rotor_torque_directions))
|
hyperdrone/env/_spy.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import threading
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def _main_thread():
|
|
5
|
+
if threading.current_thread() is not threading.main_thread():
|
|
6
|
+
raise RuntimeError("hyperdrone: create, update and close the spy on the main thread")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Spy:
|
|
10
|
+
"""An explicitly polled native viewer, created by MultiEnvironment.spy()."""
|
|
11
|
+
|
|
12
|
+
def __init__(self, environment):
|
|
13
|
+
_main_thread()
|
|
14
|
+
environment.spy_open()
|
|
15
|
+
self._environment = environment
|
|
16
|
+
|
|
17
|
+
def update(self):
|
|
18
|
+
"""Poll and present after observe/render, before step/reset; return False when closed."""
|
|
19
|
+
_main_thread()
|
|
20
|
+
if self._environment is None:
|
|
21
|
+
return False
|
|
22
|
+
if not self._environment.spy_update():
|
|
23
|
+
self.close()
|
|
24
|
+
return False
|
|
25
|
+
return True
|
|
26
|
+
|
|
27
|
+
def close(self):
|
|
28
|
+
if self._environment is not None:
|
|
29
|
+
_main_thread()
|
|
30
|
+
self._environment.spy_close()
|
|
31
|
+
self._environment = None
|
|
32
|
+
|
|
33
|
+
def __enter__(self):
|
|
34
|
+
if self._environment is None:
|
|
35
|
+
raise RuntimeError("hyperdrone: this spy is closed; call env.spy() to open another")
|
|
36
|
+
return self
|
|
37
|
+
|
|
38
|
+
def __exit__(self, *exception):
|
|
39
|
+
self.close()
|