hyperverse 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 +31 -0
- hyperdrone/_native/cmake/hyperdrone_jit.cmake +65 -0
- hyperdrone/_native/common/bindings.h +39 -0
- hyperdrone/_native/common/cuda_staging.h +75 -0
- hyperdrone/_native/common/jit_host.h +69 -0
- hyperdrone/_native/common/models.h +24 -0
- hyperdrone/_native/dynamics/CMakeLists.txt +61 -0
- hyperdrone/_native/dynamics/host.cpp +193 -0
- hyperdrone/_native/dynamics/iface.h +76 -0
- hyperdrone/_native/dynamics/impl.cpp +608 -0
- hyperdrone/_native/env/CMakeLists.txt +71 -0
- hyperdrone/_native/env/environment.cpp +124 -0
- hyperdrone/_native/env/environment.h +407 -0
- hyperdrone/_native/env/rotorcraft_bindings.cpp +51 -0
- hyperdrone/_native/render/CMakeLists.txt +94 -0
- hyperdrone/_native/render/renderer.cpp +962 -0
- hyperdrone/_native/render/rig_bindings.h +151 -0
- hyperdrone/_native/render/scene_bindings.cpp +466 -0
- hyperdrone/_vendor/rl-tools/CMakeLists.txt +205 -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 +64 -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 +81 -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 +1161 -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 +209 -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_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 +415 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/devices.h +97 -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 +93 -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 +148 -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 +169 -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 +408 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/glb/operations_cpu.h +1313 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/operations_cpu.h +96 -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 +141 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/procthor.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_cpu.h +733 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_generic.h +1299 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/context.h +198 -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 +1140 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device.h +233 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device_impl.h +1084 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/operations_cuda.h +1808 -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 +38 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/context.h +248 -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 +2056 -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 +303 -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 +1455 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_common.h +916 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_mux.h +31 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_post.h +85 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/renderer.h +478 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/save_cpu.h +315 -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 +134 -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 +55 -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 +938 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/operations_cuda.h +380 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/pose.h +228 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/presets.h +148 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/operations_cpu.h +189 -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/tasks/moving_gate/moving_gate.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/operations_cpu.h +262 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/operations_cuda.h +254 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_cpu.h +224 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_cuda.h +218 -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 +77 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/autopilot.h +61 -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 +389 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/visual_inertial_localization.h +123 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/world.h +318 -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 +2246 -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/operations_arm.h +29 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cpu.h +25 -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 +193 -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 +135 -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 +953 -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 +311 -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 +1013 -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 +1448 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/CMakeLists.txt +110 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/README.md +55 -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/rig.cpp +119 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix.cpp +1130 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_config.h.in +13 -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/example/web/assimp/CMakeLists.txt +8 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/web/build.sh +80 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/web/drone_web.cpp +234 -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/cuda/__init__.py +78 -0
- hyperdrone/dynamics/__init__.py +22 -0
- hyperdrone/dynamics/_component.py +35 -0
- hyperdrone/dynamics/_config.py +48 -0
- hyperdrone/dynamics/_sim.py +195 -0
- hyperdrone/env/__init__.py +17 -0
- hyperdrone/env/_multi_environment.py +407 -0
- hyperdrone/env/_rotorcraft.py +31 -0
- hyperdrone/examples/.gitignore +2 -0
- hyperdrone/examples/Benchmark.ipynb +102 -0
- hyperdrone/examples/HyperDrone.ipynb +514 -0
- hyperdrone/examples/Orbiter.ipynb +462 -0
- hyperdrone/examples/Renderer.ipynb +173 -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 +70 -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 +41 -0
- hyperdrone/examples/visual_inertial_localization.py +159 -0
- hyperdrone/gym/__init__.py +63 -0
- hyperdrone/jit/__init__.py +129 -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 +68 -0
- hyperdrone/render/__init__.py +53 -0
- hyperdrone/render/_component.py +51 -0
- hyperdrone/render/_config.py +92 -0
- hyperdrone/render/_renderer.py +447 -0
- hyperdrone/render/_rig.py +136 -0
- hyperdrone/render/_sampling.py +69 -0
- hyperdrone/render/_scene.py +36 -0
- hyperverse-0.0.1.dist-info/METADATA +370 -0
- hyperverse-0.0.1.dist-info/RECORD +746 -0
- hyperverse-0.0.1.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,962 @@
|
|
|
1
|
+
#ifndef HYPERDRONE_RENDER_NUM_PROBES
|
|
2
|
+
#define HYPERDRONE_RENDER_NUM_PROBES 1
|
|
3
|
+
#endif
|
|
4
|
+
// num_probes=0 compiles the collision-probe pass out the way the C++ benchmark targets do: the
|
|
5
|
+
// backend macro removes the probe resources and launches, and the renderer specification keeps
|
|
6
|
+
// one probe slot because zero-sized tensors are not representable
|
|
7
|
+
#if HYPERDRONE_RENDER_NUM_PROBES == 0
|
|
8
|
+
#define RL_TOOLS_RENDERING_RAYTRACING_DISABLE_PROBE_RAYS 1
|
|
9
|
+
#endif
|
|
10
|
+
|
|
11
|
+
#include <rl_tools/operations/cpu_mux.h>
|
|
12
|
+
#include <rl_tools/rendering/raytracing/operations_cpu_mux.h>
|
|
13
|
+
#include <rl_tools/rendering/datasets/operations_cpu.h>
|
|
14
|
+
#include <rendering/raytracing/camera_orbit.h>
|
|
15
|
+
|
|
16
|
+
#include "bindings.h"
|
|
17
|
+
#include <nanobind/stl/array.h>
|
|
18
|
+
#include <nanobind/stl/string.h>
|
|
19
|
+
|
|
20
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
21
|
+
#include "cuda_staging.h"
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
#include <cstdint>
|
|
25
|
+
#include <cstring>
|
|
26
|
+
#include <initializer_list>
|
|
27
|
+
#include <type_traits>
|
|
28
|
+
#include <stdexcept>
|
|
29
|
+
#include <vector>
|
|
30
|
+
|
|
31
|
+
#ifndef HYPERDRONE_RENDER_WIDTH
|
|
32
|
+
#error "HYPERDRONE_RENDER_WIDTH must be defined"
|
|
33
|
+
#endif
|
|
34
|
+
#ifndef HYPERDRONE_RENDER_HEIGHT
|
|
35
|
+
#error "HYPERDRONE_RENDER_HEIGHT must be defined"
|
|
36
|
+
#endif
|
|
37
|
+
#ifndef HYPERDRONE_RENDER_NUM_CAMERAS
|
|
38
|
+
#error "HYPERDRONE_RENDER_NUM_CAMERAS must be defined"
|
|
39
|
+
#endif
|
|
40
|
+
#ifndef HYPERDRONE_RENDER_SHADING
|
|
41
|
+
#define HYPERDRONE_RENDER_SHADING 2
|
|
42
|
+
#endif
|
|
43
|
+
#ifndef HYPERDRONE_RENDER_OUTPUT_MODE
|
|
44
|
+
#define HYPERDRONE_RENDER_OUTPUT_MODE 0
|
|
45
|
+
#endif
|
|
46
|
+
#ifndef HYPERDRONE_RENDER_MB_SAMPLES
|
|
47
|
+
#define HYPERDRONE_RENDER_MB_SAMPLES 1
|
|
48
|
+
#endif
|
|
49
|
+
#ifndef HYPERDRONE_RENDER_AA_GRID
|
|
50
|
+
#define HYPERDRONE_RENDER_AA_GRID 1
|
|
51
|
+
#endif
|
|
52
|
+
#ifndef HYPERDRONE_RENDER_NUM_OVERLAYS
|
|
53
|
+
#define HYPERDRONE_RENDER_NUM_OVERLAYS 0
|
|
54
|
+
#endif
|
|
55
|
+
#ifndef HYPERDRONE_RENDER_MAX_OVERLAY_INSTANCES
|
|
56
|
+
#define HYPERDRONE_RENDER_MAX_OVERLAY_INSTANCES 0
|
|
57
|
+
#endif
|
|
58
|
+
#ifndef HYPERDRONE_RENDER_MAX_OVERLAYS_PER_CAMERA
|
|
59
|
+
#define HYPERDRONE_RENDER_MAX_OVERLAYS_PER_CAMERA 0
|
|
60
|
+
#endif
|
|
61
|
+
#ifndef HYPERDRONE_RENDER_SEMANTIC_SEGMENTATION
|
|
62
|
+
#define HYPERDRONE_RENDER_SEMANTIC_SEGMENTATION 0
|
|
63
|
+
#endif
|
|
64
|
+
#ifndef HYPERDRONE_RENDER_DYNAMIC_MB
|
|
65
|
+
#define HYPERDRONE_RENDER_DYNAMIC_MB 0
|
|
66
|
+
#endif
|
|
67
|
+
|
|
68
|
+
namespace rlt = rl_tools;
|
|
69
|
+
namespace rrt = rl_tools::rendering::raytracing;
|
|
70
|
+
using hyperdrone::FloatArray;
|
|
71
|
+
|
|
72
|
+
// Each configuration needs a distinct C++ type in nanobind's shared type registry.
|
|
73
|
+
namespace HYPERDRONE_MODULE_NAME {
|
|
74
|
+
using DEVICE = rlt::devices::DEVICE_FACTORY<>;
|
|
75
|
+
using T = float;
|
|
76
|
+
using TI = typename DEVICE::index_t;
|
|
77
|
+
|
|
78
|
+
template <int SHADING_ID> struct ShadingSelector;
|
|
79
|
+
template <> struct ShadingSelector<0> { using type = rrt::Low; };
|
|
80
|
+
template <> struct ShadingSelector<1> { using type = rrt::Medium; };
|
|
81
|
+
template <> struct ShadingSelector<2> { using type = rrt::High; };
|
|
82
|
+
template <> struct ShadingSelector<3> { using type = rrt::VeryHigh; };
|
|
83
|
+
|
|
84
|
+
static constexpr bool PROBES_ENABLED = HYPERDRONE_RENDER_NUM_PROBES > 0;
|
|
85
|
+
|
|
86
|
+
// the output-mode id (0=rgb 1=rgbd 2=depth 3=segmentation 4=rgbd_segmentation) maps
|
|
87
|
+
// onto the config's independent channel switches
|
|
88
|
+
struct RendererConfiguration: rrt::config::Default<T, TI>{
|
|
89
|
+
static constexpr TI CAM_WIDTH = HYPERDRONE_RENDER_WIDTH;
|
|
90
|
+
static constexpr TI CAM_HEIGHT = HYPERDRONE_RENDER_HEIGHT;
|
|
91
|
+
static constexpr TI NUM_CAMERAS = HYPERDRONE_RENDER_NUM_CAMERAS;
|
|
92
|
+
static constexpr TI NUM_PROBES = PROBES_ENABLED ? HYPERDRONE_RENDER_NUM_PROBES : 1;
|
|
93
|
+
using SHADING = typename ShadingSelector<HYPERDRONE_RENDER_SHADING>::type;
|
|
94
|
+
static constexpr bool OUTPUT_RGB = HYPERDRONE_RENDER_OUTPUT_MODE == 0 || HYPERDRONE_RENDER_OUTPUT_MODE == 1 || HYPERDRONE_RENDER_OUTPUT_MODE == 4;
|
|
95
|
+
static constexpr bool OUTPUT_DEPTH = HYPERDRONE_RENDER_OUTPUT_MODE == 1 || HYPERDRONE_RENDER_OUTPUT_MODE == 2 || HYPERDRONE_RENDER_OUTPUT_MODE == 4;
|
|
96
|
+
static constexpr bool OUTPUT_SEGMENTATION = HYPERDRONE_RENDER_OUTPUT_MODE == 3 || HYPERDRONE_RENDER_OUTPUT_MODE == 4;
|
|
97
|
+
static constexpr bool SEMANTIC_SEGMENTATION = HYPERDRONE_RENDER_SEMANTIC_SEGMENTATION != 0;
|
|
98
|
+
static constexpr bool ENABLE_MOTION_BLUR = HYPERDRONE_RENDER_MB_SAMPLES > 1;
|
|
99
|
+
static constexpr TI MOTION_BLUR_SAMPLES = HYPERDRONE_RENDER_MB_SAMPLES;
|
|
100
|
+
static constexpr bool ENABLE_ANTI_ALIASING = HYPERDRONE_RENDER_AA_GRID > 1;
|
|
101
|
+
static constexpr TI ANTI_ALIASING_GRID_SIZE = HYPERDRONE_RENDER_AA_GRID;
|
|
102
|
+
static constexpr TI NUM_OVERLAYS = HYPERDRONE_RENDER_NUM_OVERLAYS;
|
|
103
|
+
static constexpr TI MAX_OVERLAY_INSTANCES = HYPERDRONE_RENDER_MAX_OVERLAY_INSTANCES;
|
|
104
|
+
static constexpr TI MAX_OVERLAYS_PER_CAMERA = HYPERDRONE_RENDER_MAX_OVERLAYS_PER_CAMERA;
|
|
105
|
+
static constexpr bool ENABLE_DYNAMIC_MOTION_BLUR = HYPERDRONE_RENDER_DYNAMIC_MB != 0;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
using RENDERER_SPEC = rrt::Specification<RendererConfiguration>;
|
|
109
|
+
|
|
110
|
+
// renderer input/output tensors are backend-native (CUDA device memory on OptiX, host
|
|
111
|
+
// elsewhere); rlt::copy against renderer.device crosses that boundary and orders the copy
|
|
112
|
+
// after the renderer's in-flight work
|
|
113
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
114
|
+
static constexpr bool BUFFERS_ON_HOST = false;
|
|
115
|
+
#else
|
|
116
|
+
static constexpr bool BUFFERS_ON_HOST = true;
|
|
117
|
+
#endif
|
|
118
|
+
|
|
119
|
+
// template so if-constexpr branches on the spec's feature flags are discarded without
|
|
120
|
+
// being instantiated on configs that lack the corresponding storage/operations
|
|
121
|
+
template <typename T_SPEC>
|
|
122
|
+
struct Renderer {
|
|
123
|
+
using SPEC = T_SPEC;
|
|
124
|
+
using RENDERER = rrt::Renderer<SPEC>;
|
|
125
|
+
using BACKEND = typename RENDERER::BACKEND;
|
|
126
|
+
DEVICE device;
|
|
127
|
+
RENDERER renderer;
|
|
128
|
+
rlt::rendering::SceneMetadata<T> scene_metadata;
|
|
129
|
+
bool initialized = false;
|
|
130
|
+
|
|
131
|
+
// alias tensors shaped like the renderer tensor let the raw pointers of the arrays
|
|
132
|
+
// cross the memory-domain copy without intermediate staging
|
|
133
|
+
template <typename TENSOR, typename VALUE>
|
|
134
|
+
void copy_in(const VALUE* source, TENSOR& tensor){
|
|
135
|
+
using TENSOR_SPEC = typename TENSOR::SPEC;
|
|
136
|
+
static_assert(std::is_same<VALUE, typename TENSOR_SPEC::T>::value);
|
|
137
|
+
rlt::Tensor<rlt::tensor::Specification<VALUE, typename TENSOR_SPEC::TI, typename TENSOR_SPEC::SHAPE, true, rlt::tensor::RowMajorStride<typename TENSOR_SPEC::SHAPE>, true>> alias;
|
|
138
|
+
alias._data = source;
|
|
139
|
+
rlt::copy(device, renderer.device, alias, tensor);
|
|
140
|
+
}
|
|
141
|
+
template <typename TENSOR, typename VALUE>
|
|
142
|
+
void copy_out(const TENSOR& tensor, VALUE* destination){
|
|
143
|
+
using TENSOR_SPEC = typename TENSOR::SPEC;
|
|
144
|
+
static_assert(std::is_same<VALUE, typename TENSOR_SPEC::T>::value);
|
|
145
|
+
rlt::Tensor<rlt::tensor::Specification<VALUE, typename TENSOR_SPEC::TI, typename TENSOR_SPEC::SHAPE>> alias;
|
|
146
|
+
alias._data = destination;
|
|
147
|
+
rlt::copy(renderer.device, device, tensor, alias);
|
|
148
|
+
}
|
|
149
|
+
// host staging for the readback paths; unused (and never allocated) on backends
|
|
150
|
+
// whose output tensors are host-resident
|
|
151
|
+
std::vector<uint32_t> host_frame, host_segmentation;
|
|
152
|
+
std::vector<float> host_depth;
|
|
153
|
+
std::vector<rrt::CollisionResult> host_collisions;
|
|
154
|
+
|
|
155
|
+
Renderer(){
|
|
156
|
+
rlt::init(device);
|
|
157
|
+
rlt::malloc(device, renderer);
|
|
158
|
+
}
|
|
159
|
+
~Renderer(){
|
|
160
|
+
rlt::free(device, renderer);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
const char* backend() const {
|
|
164
|
+
return rrt::backends::name<BACKEND>();
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
void init(rlt::rendering::Bundle<T>* bundle, const rrt::AssetPool* pool) {
|
|
168
|
+
if(initialized){
|
|
169
|
+
throw std::runtime_error("hyperdrone: renderer is already initialized; create a new Renderer for a different scene");
|
|
170
|
+
}
|
|
171
|
+
// the bundle may have been composed via add() (no loader-filled metadata) or
|
|
172
|
+
// extended after load; recomputing is deterministic and idempotent for pure loads
|
|
173
|
+
rlt::rendering::datasets::compute_bounds(device, *bundle);
|
|
174
|
+
scene_metadata = bundle->metadata;
|
|
175
|
+
if(pool != nullptr){
|
|
176
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
177
|
+
rlt::init(device, renderer, *bundle, *pool);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
throw std::runtime_error("hyperdrone: an asset pool requires overlays (num_overlays/max_overlay_instances/max_overlays_per_camera > 0)");
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
rlt::init(device, renderer, *bundle);
|
|
185
|
+
}
|
|
186
|
+
initialized = true;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
void check_image_shape(size_t ndim, const size_t* shape) const {
|
|
190
|
+
if(ndim != 3 || shape[0] != SPEC::NUM_CAMERAS || shape[1] != SPEC::CAM_HEIGHT || shape[2] != SPEC::CAM_WIDTH){
|
|
191
|
+
throw std::invalid_argument("hyperdrone: output array must have shape (num_cameras, height, width)");
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
void check_cameras_dims(size_t ndim, const int64_t* dims) const {
|
|
195
|
+
const bool flat = ndim == 2 && dims[0] == SPEC::NUM_CAMERAS && dims[1] == 12;
|
|
196
|
+
const bool structured = ndim == 3 && dims[0] == SPEC::NUM_CAMERAS && dims[1] == 4 && dims[2] == 3;
|
|
197
|
+
if(!flat && !structured){
|
|
198
|
+
throw std::invalid_argument("hyperdrone: cameras must have shape (num_cameras, 12) or (num_cameras, 4, 3) and dtype float32");
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
void check_cameras_shape(const FloatArray& cameras) const {
|
|
202
|
+
int64_t dims[3] = {0, 0, 0};
|
|
203
|
+
for(size_t dimension = 0; dimension < cameras.ndim() && dimension < 3; dimension++){
|
|
204
|
+
dims[dimension] = (int64_t)cameras.shape(dimension);
|
|
205
|
+
}
|
|
206
|
+
check_cameras_dims(cameras.ndim(), dims);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
template <typename ARRAY>
|
|
210
|
+
void check_rows(const ARRAY& values, std::initializer_list<size_t> leading, const char* expected) const {
|
|
211
|
+
bool valid = values.ndim() == leading.size() + 2;
|
|
212
|
+
size_t dimension = 0;
|
|
213
|
+
for(size_t extent : leading){
|
|
214
|
+
valid = valid && dimension < values.ndim() && values.shape(dimension) == extent;
|
|
215
|
+
dimension++;
|
|
216
|
+
}
|
|
217
|
+
valid = valid && values.shape(dimension) == 3 && values.shape(dimension + 1) == 4;
|
|
218
|
+
if(!valid){
|
|
219
|
+
throw std::invalid_argument(std::string("hyperdrone: transforms must have shape ") + expected + " and dtype float32");
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
void require_init() const {
|
|
224
|
+
if(!initialized){
|
|
225
|
+
throw std::runtime_error("hyperdrone: renderer is not initialized (call init(scene) first)");
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
void update() {
|
|
230
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
231
|
+
require_init();
|
|
232
|
+
rlt::update(device, renderer);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
throw std::runtime_error("hyperdrone: update() requires overlays to be enabled");
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
void synchronize() {
|
|
240
|
+
rlt::synchronize(device, renderer);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// camera input is a renderer-owned tensor written in place; under motion blur both
|
|
244
|
+
// shutter poses must be written every step, so a blur-free update writes both
|
|
245
|
+
void set_cameras(const float* cameras) {
|
|
246
|
+
const rrt::Camera<T>* source = (const rrt::Camera<T>*)cameras;
|
|
247
|
+
copy_in(source, rlt::cameras(device, renderer));
|
|
248
|
+
if constexpr (SPEC::ENABLE_MOTION_BLUR){
|
|
249
|
+
copy_in(source, rlt::cameras_open(device, renderer));
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
void set_cameras_device(const float* cameras, unsigned long long producer_stream) {
|
|
254
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
255
|
+
require_init();
|
|
256
|
+
// enqueued on the render stream: orders after the previous launch (no overwrite
|
|
257
|
+
// hazard) and before the next one; a foreign producer stream is awaited via an
|
|
258
|
+
// event, never a host sync
|
|
259
|
+
cudaStream_t render_stream = rlt::stream(device, renderer);
|
|
260
|
+
cudaStream_t producer = (cudaStream_t)producer_stream;
|
|
261
|
+
if(producer != nullptr && producer != render_stream){
|
|
262
|
+
cudaEvent_t cameras_ready;
|
|
263
|
+
cudaEventCreateWithFlags(&cameras_ready, cudaEventDisableTiming);
|
|
264
|
+
cudaEventRecord(cameras_ready, producer);
|
|
265
|
+
cudaStreamWaitEvent(render_stream, cameras_ready, 0);
|
|
266
|
+
cudaEventDestroy(cameras_ready);
|
|
267
|
+
}
|
|
268
|
+
const size_t bytes = sizeof(rrt::Camera<T>) * SPEC::NUM_CAMERAS;
|
|
269
|
+
cudaMemcpyAsync(rlt::data(rlt::cameras(device, renderer)), cameras, bytes, cudaMemcpyDeviceToDevice, render_stream);
|
|
270
|
+
if constexpr (SPEC::ENABLE_MOTION_BLUR){
|
|
271
|
+
cudaMemcpyAsync(rlt::data(rlt::cameras_open(device, renderer)), cameras, bytes, cudaMemcpyDeviceToDevice, render_stream);
|
|
272
|
+
}
|
|
273
|
+
#else
|
|
274
|
+
(void)cameras; (void)producer_stream;
|
|
275
|
+
throw std::runtime_error("hyperdrone: device-resident camera input is only supported on the OptiX backend");
|
|
276
|
+
#endif
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
void set_motion_blur_cameras(const float* cameras_open, const float* cameras_close) {
|
|
280
|
+
if constexpr (SPEC::ENABLE_MOTION_BLUR){
|
|
281
|
+
copy_in((const rrt::Camera<T>*)cameras_open, rlt::cameras_open(device, renderer));
|
|
282
|
+
copy_in((const rrt::Camera<T>*)cameras_close, rlt::cameras_close(device, renderer));
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without motion blur (motion_blur_samples <= 1)");
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
void generate_cameras(const float center[3], float radius, const float up[3], float fov) {
|
|
290
|
+
require_init();
|
|
291
|
+
camera_orbit::write(device, renderer, center, radius, up, fov);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
void generate_probe_directions() {
|
|
295
|
+
if constexpr (PROBES_ENABLED){
|
|
296
|
+
rlt::generate_probe_directions(device, renderer);
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without collision probes (num_probes=0)");
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
void render() {
|
|
304
|
+
require_init();
|
|
305
|
+
rlt::render(device, renderer);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
void render_launch() {
|
|
309
|
+
require_init();
|
|
310
|
+
rlt::render_launch(device, renderer);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
void render_sync() {
|
|
314
|
+
require_init();
|
|
315
|
+
rlt::render_sync(device, renderer);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
void probe() {
|
|
319
|
+
require_init();
|
|
320
|
+
if constexpr (PROBES_ENABLED){
|
|
321
|
+
rlt::probe(device, renderer);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without collision probes (num_probes=0)");
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
void probe_launch() {
|
|
329
|
+
require_init();
|
|
330
|
+
if constexpr (PROBES_ENABLED){
|
|
331
|
+
rlt::probe_launch(device, renderer);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without collision probes (num_probes=0)");
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
void probe_sync() {
|
|
339
|
+
require_init();
|
|
340
|
+
if constexpr (PROBES_ENABLED){
|
|
341
|
+
rlt::probe_sync(device, renderer);
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without collision probes (num_probes=0)");
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
void read_frame_buffer(uint32_t* dst) {
|
|
349
|
+
if constexpr (SPEC::HAS_RGB){
|
|
350
|
+
require_init();
|
|
351
|
+
copy_out(rlt::frame_buffer(device, renderer), dst);
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
throw std::runtime_error("hyperdrone: this renderer has no RGB output");
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
void read_depth_buffer(float* dst) {
|
|
359
|
+
if constexpr (SPEC::HAS_DEPTH){
|
|
360
|
+
require_init();
|
|
361
|
+
copy_out(rlt::depth_buffer(device, renderer), dst);
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
throw std::runtime_error("hyperdrone: this renderer has no depth output");
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
void read_segmentation_buffer(uint32_t* dst) {
|
|
369
|
+
if constexpr (SPEC::HAS_SEGMENTATION){
|
|
370
|
+
require_init();
|
|
371
|
+
copy_out(rlt::segmentation_buffer(device, renderer), dst);
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
throw std::runtime_error("hyperdrone: this renderer has no segmentation output");
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
void read_collision_results(float* distances, int32_t* hits) {
|
|
379
|
+
if constexpr (PROBES_ENABLED){
|
|
380
|
+
require_init();
|
|
381
|
+
constexpr TI count = SPEC::NUM_CAMERAS * SPEC::NUM_PROBES;
|
|
382
|
+
host_collisions.resize(count);
|
|
383
|
+
copy_out(rlt::collision_results(device, renderer), host_collisions.data());
|
|
384
|
+
for(TI i = 0; i < count; i++){
|
|
385
|
+
distances[i] = host_collisions[i].distance;
|
|
386
|
+
hits[i] = host_collisions[i].hit;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without collision probes (num_probes=0)");
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
uint32_t* framebuffer_device_ptr() {
|
|
395
|
+
if constexpr (SPEC::HAS_RGB){
|
|
396
|
+
require_init();
|
|
397
|
+
return rlt::data(rlt::frame_buffer(device, renderer));
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
throw std::runtime_error("hyperdrone: this renderer has no RGB output");
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
float* depthbuffer_device_ptr() {
|
|
405
|
+
if constexpr (SPEC::HAS_DEPTH){
|
|
406
|
+
require_init();
|
|
407
|
+
return rlt::data(rlt::depth_buffer(device, renderer));
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
throw std::runtime_error("hyperdrone: this renderer has no depth output");
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
int buffer_device_type() const {
|
|
415
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
416
|
+
return 2;
|
|
417
|
+
#else
|
|
418
|
+
return 1;
|
|
419
|
+
#endif
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
uint32_t* frame_buffer_live() {
|
|
423
|
+
return framebuffer_device_ptr();
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
float* depth_buffer_live() {
|
|
427
|
+
return depthbuffer_device_ptr();
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
// stable host-side view of an output channel. On host-resident backends that is the
|
|
431
|
+
// renderer's own tensor (zero copy, refreshed in place by rendering); on OptiX it is
|
|
432
|
+
// an impl-owned staging buffer refreshed from device memory.
|
|
433
|
+
template <typename VALUE, typename TENSOR>
|
|
434
|
+
VALUE* host_view(std::vector<VALUE>& staging, TENSOR& tensor, bool refresh){
|
|
435
|
+
if constexpr (BUFFERS_ON_HOST){
|
|
436
|
+
(void)staging; (void)refresh;
|
|
437
|
+
return rlt::data(tensor);
|
|
438
|
+
}
|
|
439
|
+
else {
|
|
440
|
+
staging.resize(SPEC::NUM_CAMERAS * SPEC::CAM_PIXELS);
|
|
441
|
+
if(refresh){
|
|
442
|
+
copy_out(tensor, staging.data());
|
|
443
|
+
}
|
|
444
|
+
return staging.data();
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
uint32_t* frame_buffer_host(bool refresh) {
|
|
449
|
+
if constexpr (SPEC::HAS_RGB){
|
|
450
|
+
require_init();
|
|
451
|
+
return host_view(host_frame, rlt::frame_buffer(device, renderer), refresh);
|
|
452
|
+
}
|
|
453
|
+
else {
|
|
454
|
+
throw std::runtime_error("hyperdrone: this renderer has no RGB output");
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
float* depth_buffer_host(bool refresh) {
|
|
459
|
+
if constexpr (SPEC::HAS_DEPTH){
|
|
460
|
+
require_init();
|
|
461
|
+
return host_view(host_depth, rlt::depth_buffer(device, renderer), refresh);
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
throw std::runtime_error("hyperdrone: this renderer has no depth output");
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
uint32_t* segmentation_buffer_host(bool refresh) {
|
|
469
|
+
if constexpr (SPEC::HAS_SEGMENTATION){
|
|
470
|
+
require_init();
|
|
471
|
+
return host_view(host_segmentation, rlt::segmentation_buffer(device, renderer), refresh);
|
|
472
|
+
}
|
|
473
|
+
else {
|
|
474
|
+
throw std::runtime_error("hyperdrone: this renderer has no segmentation output");
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
void scene_bounds(float center[3], float half_extent[3], float& camera_radius) const {
|
|
479
|
+
for(int i = 0; i < 3; i++){
|
|
480
|
+
center[i] = scene_metadata.center[i];
|
|
481
|
+
half_extent[i] = scene_metadata.half_extent[i];
|
|
482
|
+
}
|
|
483
|
+
camera_radius = scene_metadata.max_ray_length / 2;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
bool can_attach(size_t camera, size_t overlay) {
|
|
487
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
488
|
+
require_init();
|
|
489
|
+
return rlt::can_attach(device, renderer, (TI)camera, rrt::OverlayIndex{overlay});
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
void attach(size_t camera, size_t overlay) {
|
|
496
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
497
|
+
require_init();
|
|
498
|
+
rlt::attach(device, renderer, (TI)camera, rrt::OverlayIndex{overlay});
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
void detach(size_t camera, size_t overlay) {
|
|
505
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
506
|
+
require_init();
|
|
507
|
+
rlt::detach(device, renderer, (TI)camera, rrt::OverlayIndex{overlay});
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
bool can_spawn(size_t overlay, size_t asset) {
|
|
514
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
515
|
+
require_init();
|
|
516
|
+
return rlt::can_spawn(device, renderer, rrt::OverlayIndex{overlay}, rrt::AssetHandle{asset});
|
|
517
|
+
}
|
|
518
|
+
else {
|
|
519
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
rrt::OverlayPlacement spawn(size_t overlay, size_t asset, const float transform[12]) {
|
|
523
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
524
|
+
require_init();
|
|
525
|
+
return rlt::spawn(device, renderer, rrt::OverlayIndex{overlay}, rrt::AssetHandle{asset}, transform);
|
|
526
|
+
}
|
|
527
|
+
else {
|
|
528
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
void despawn(size_t overlay, const rrt::OverlayPlacement& placement) {
|
|
532
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
533
|
+
require_init();
|
|
534
|
+
rlt::despawn(device, renderer, rrt::OverlayIndex{overlay}, placement);
|
|
535
|
+
}
|
|
536
|
+
else {
|
|
537
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
// the core verbs fail fast on a placement that is not spawned; a binding throws instead
|
|
541
|
+
rrt::OverlayPlacement checked_placement(size_t overlay, const rrt::OverlayPlacement& placement) const {
|
|
542
|
+
require_init();
|
|
543
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
544
|
+
if(overlay >= SPEC::NUM_OVERLAYS || placement.first_slot + placement.num_parts > SPEC::MAX_OVERLAY_INSTANCES){
|
|
545
|
+
throw std::invalid_argument("hyperdrone: overlay or placement out of range");
|
|
546
|
+
}
|
|
547
|
+
for(size_t part = 0; part < placement.num_parts; part++){
|
|
548
|
+
if(!renderer.overlays[overlay].slots[placement.first_slot + part].active){
|
|
549
|
+
throw std::invalid_argument("hyperdrone: placement is not spawned (despawned or never spawned in this overlay)");
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
return rrt::OverlayPlacement{placement.first_slot, placement.num_parts, placement.first_part};
|
|
554
|
+
}
|
|
555
|
+
void set_transform(size_t overlay, const rrt::OverlayPlacement& placement, const float transform[12]) {
|
|
556
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
557
|
+
rlt::set_transform(device, renderer, rrt::OverlayIndex{overlay}, checked_placement(overlay, placement), transform);
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
void set_transform_pair(size_t overlay, const rrt::OverlayPlacement& placement, const float open[12], const float close[12]) {
|
|
564
|
+
if constexpr (SPEC::ENABLE_DYNAMIC_MOTION_BLUR){
|
|
565
|
+
rlt::set_transform_pair(device, renderer, rrt::OverlayIndex{overlay}, checked_placement(overlay, placement), open, close);
|
|
566
|
+
}
|
|
567
|
+
else {
|
|
568
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without dynamic motion blur (dynamic_motion_blur=False)");
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
void set_transforms(size_t overlay, const rrt::OverlayPlacement& placement, const float* poses) {
|
|
572
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
573
|
+
rlt::set_transforms(device, renderer, rrt::OverlayIndex{overlay}, checked_placement(overlay, placement), poses);
|
|
574
|
+
}
|
|
575
|
+
else {
|
|
576
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
void set_motion_transforms(size_t overlay, const rrt::OverlayPlacement& placement, const float* samples, const float* close) {
|
|
580
|
+
if constexpr (SPEC::ENABLE_DYNAMIC_MOTION_BLUR){
|
|
581
|
+
rlt::set_motion_transforms(device, renderer, rrt::OverlayIndex{overlay}, checked_placement(overlay, placement), samples, close);
|
|
582
|
+
}
|
|
583
|
+
else {
|
|
584
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without dynamic motion blur (dynamic_motion_blur=False)");
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
template <typename WRITE>
|
|
588
|
+
void for_each_active_slot(WRITE&& write){
|
|
589
|
+
for(size_t overlay = 0; overlay < SPEC::NUM_OVERLAYS; overlay++){
|
|
590
|
+
for(size_t slot = 0; slot < SPEC::MAX_OVERLAY_INSTANCES; slot++){
|
|
591
|
+
if(renderer.overlays[overlay].slots[slot].active){
|
|
592
|
+
write(overlay, slot, overlay * SPEC::MAX_OVERLAY_INSTANCES + slot);
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
void set_all_transforms(const float* poses) {
|
|
598
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
599
|
+
require_init();
|
|
600
|
+
for_each_active_slot([&](size_t overlay, size_t slot, size_t row){
|
|
601
|
+
rlt::set_transforms(device, renderer, rrt::OverlayIndex{overlay}, rrt::OverlayPlacement{slot, 1, 0}, poses + row * 12);
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
else {
|
|
605
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
void set_all_motion_transforms(const float* samples, const float* close) {
|
|
609
|
+
if constexpr (SPEC::ENABLE_DYNAMIC_MOTION_BLUR){
|
|
610
|
+
require_init();
|
|
611
|
+
constexpr size_t SLOTS = (size_t)SPEC::NUM_OVERLAYS * SPEC::MAX_OVERLAY_INSTANCES;
|
|
612
|
+
for_each_active_slot([&](size_t overlay, size_t slot, size_t row){
|
|
613
|
+
float rows[SPEC::MOTION_BLUR_SAMPLES][12];
|
|
614
|
+
for(size_t sample = 0; sample < SPEC::MOTION_BLUR_SAMPLES; sample++){
|
|
615
|
+
std::memcpy(rows[sample], samples + (sample * SLOTS + row) * 12, sizeof(rows[sample]));
|
|
616
|
+
}
|
|
617
|
+
rlt::set_motion_transforms(device, renderer, rrt::OverlayIndex{overlay}, rrt::OverlayPlacement{slot, 1, 0}, &rows[0][0], close + row * 12);
|
|
618
|
+
});
|
|
619
|
+
}
|
|
620
|
+
else {
|
|
621
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without dynamic motion blur (dynamic_motion_blur=False)");
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
625
|
+
// device-resident rows go device-to-device into the resident tensors on the render stream
|
|
626
|
+
// (sample_stride rows between the sample slabs of samples; null samples replicate poses);
|
|
627
|
+
// the rows leave the host's pending state, so a later update cannot overwrite them
|
|
628
|
+
void write_rows_device(size_t first_row, size_t count, const float* poses, const float* samples, size_t sample_stride, unsigned long long producer_stream){
|
|
629
|
+
constexpr size_t SLOTS = (size_t)SPEC::NUM_OVERLAYS * SPEC::MAX_OVERLAY_INSTANCES;
|
|
630
|
+
cudaStream_t render_stream = rlt::stream(device, renderer);
|
|
631
|
+
rrt::backends::optix::await_producer(renderer.backend->ordering_event, (cudaStream_t)producer_stream, render_stream);
|
|
632
|
+
cudaMemcpyAsync(rlt::data(rlt::transforms(device, renderer)) + first_row * 12, poses, count * 12 * sizeof(float), cudaMemcpyDeviceToDevice, render_stream);
|
|
633
|
+
for(size_t row = first_row; row < first_row + count; row++){
|
|
634
|
+
renderer.transforms_pending[row] = false;
|
|
635
|
+
}
|
|
636
|
+
if constexpr (SPEC::ENABLE_DYNAMIC_MOTION_BLUR){
|
|
637
|
+
for(size_t sample = 0; sample < SPEC::MOTION_BLUR_SAMPLES; sample++){
|
|
638
|
+
const float* source = samples == nullptr ? poses : samples + sample * sample_stride * 12;
|
|
639
|
+
cudaMemcpyAsync(rlt::data(rlt::transforms_motion(device, renderer)) + (sample * SLOTS + first_row) * 12, source, count * 12 * sizeof(float), cudaMemcpyDeviceToDevice, render_stream);
|
|
640
|
+
}
|
|
641
|
+
for(size_t row = first_row; row < first_row + count; row++){
|
|
642
|
+
renderer.transforms_motion_pending[row] = false;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
#endif
|
|
647
|
+
void set_transforms_device(size_t overlay, const rrt::OverlayPlacement& placement, const float* poses, unsigned long long producer_stream) {
|
|
648
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
649
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
650
|
+
const auto p = checked_placement(overlay, placement);
|
|
651
|
+
write_rows_device(overlay * SPEC::MAX_OVERLAY_INSTANCES + p.first_slot, p.num_parts, poses, nullptr, 0, producer_stream);
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
#endif
|
|
655
|
+
(void)overlay; (void)placement; (void)poses; (void)producer_stream;
|
|
656
|
+
throw std::runtime_error("hyperdrone: device-resident transform input requires the OptiX backend and overlays");
|
|
657
|
+
}
|
|
658
|
+
void set_motion_transforms_device(size_t overlay, const rrt::OverlayPlacement& placement, const float* samples, const float* close, unsigned long long producer_stream) {
|
|
659
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
660
|
+
if constexpr (SPEC::ENABLE_DYNAMIC_MOTION_BLUR){
|
|
661
|
+
const auto p = checked_placement(overlay, placement);
|
|
662
|
+
write_rows_device(overlay * SPEC::MAX_OVERLAY_INSTANCES + p.first_slot, p.num_parts, close, samples, p.num_parts, producer_stream);
|
|
663
|
+
return;
|
|
664
|
+
}
|
|
665
|
+
#endif
|
|
666
|
+
(void)overlay; (void)placement; (void)samples; (void)close; (void)producer_stream;
|
|
667
|
+
throw std::runtime_error("hyperdrone: device-resident motion input requires the OptiX backend and dynamic_motion_blur=True");
|
|
668
|
+
}
|
|
669
|
+
void set_all_transforms_device(const float* poses, unsigned long long producer_stream) {
|
|
670
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
671
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
672
|
+
require_init();
|
|
673
|
+
write_rows_device(0, (size_t)SPEC::NUM_OVERLAYS * SPEC::MAX_OVERLAY_INSTANCES, poses, nullptr, 0, producer_stream);
|
|
674
|
+
return;
|
|
675
|
+
}
|
|
676
|
+
#endif
|
|
677
|
+
(void)poses; (void)producer_stream;
|
|
678
|
+
throw std::runtime_error("hyperdrone: device-resident transform input requires the OptiX backend and overlays");
|
|
679
|
+
}
|
|
680
|
+
void set_all_motion_transforms_device(const float* samples, const float* close, unsigned long long producer_stream) {
|
|
681
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
682
|
+
if constexpr (SPEC::ENABLE_DYNAMIC_MOTION_BLUR){
|
|
683
|
+
require_init();
|
|
684
|
+
constexpr size_t SLOTS = (size_t)SPEC::NUM_OVERLAYS * SPEC::MAX_OVERLAY_INSTANCES;
|
|
685
|
+
write_rows_device(0, SLOTS, close, samples, SLOTS, producer_stream);
|
|
686
|
+
return;
|
|
687
|
+
}
|
|
688
|
+
#endif
|
|
689
|
+
(void)samples; (void)close; (void)producer_stream;
|
|
690
|
+
throw std::runtime_error("hyperdrone: device-resident motion input requires the OptiX backend and dynamic_motion_blur=True");
|
|
691
|
+
}
|
|
692
|
+
float* transforms_live() {
|
|
693
|
+
if constexpr (SPEC::ENABLE_OVERLAYS){
|
|
694
|
+
require_init();
|
|
695
|
+
return rlt::data(rlt::transforms(device, renderer));
|
|
696
|
+
}
|
|
697
|
+
else {
|
|
698
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without overlays");
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
float* transforms_motion_live() {
|
|
702
|
+
if constexpr (SPEC::ENABLE_DYNAMIC_MOTION_BLUR){
|
|
703
|
+
require_init();
|
|
704
|
+
return rlt::data(rlt::transforms_motion(device, renderer));
|
|
705
|
+
}
|
|
706
|
+
else {
|
|
707
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without dynamic motion blur (dynamic_motion_blur=False)");
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
unsigned long long render_stream() {
|
|
711
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
712
|
+
require_init();
|
|
713
|
+
return (unsigned long long)rlt::stream(device, renderer);
|
|
714
|
+
#else
|
|
715
|
+
return 0;
|
|
716
|
+
#endif
|
|
717
|
+
}
|
|
718
|
+
void set_motion_blur_cameras_device(const float* cameras_open, const float* cameras_close, unsigned long long producer_stream) {
|
|
719
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
720
|
+
if constexpr (SPEC::ENABLE_MOTION_BLUR){
|
|
721
|
+
require_init();
|
|
722
|
+
cudaStream_t render_stream = rlt::stream(device, renderer);
|
|
723
|
+
cudaStream_t producer = (cudaStream_t)producer_stream;
|
|
724
|
+
if(producer != nullptr && producer != render_stream){
|
|
725
|
+
cudaEvent_t cameras_ready;
|
|
726
|
+
cudaEventCreateWithFlags(&cameras_ready, cudaEventDisableTiming);
|
|
727
|
+
cudaEventRecord(cameras_ready, producer);
|
|
728
|
+
cudaStreamWaitEvent(render_stream, cameras_ready, 0);
|
|
729
|
+
cudaEventDestroy(cameras_ready);
|
|
730
|
+
}
|
|
731
|
+
const size_t bytes = sizeof(rrt::Camera<T>) * SPEC::NUM_CAMERAS;
|
|
732
|
+
cudaMemcpyAsync(rlt::data(rlt::cameras_open(device, renderer)), cameras_open, bytes, cudaMemcpyDeviceToDevice, render_stream);
|
|
733
|
+
cudaMemcpyAsync(rlt::data(rlt::cameras_close(device, renderer)), cameras_close, bytes, cudaMemcpyDeviceToDevice, render_stream);
|
|
734
|
+
}
|
|
735
|
+
else {
|
|
736
|
+
throw std::runtime_error("hyperdrone: this renderer was compiled without motion blur (motion_blur_samples <= 1)");
|
|
737
|
+
}
|
|
738
|
+
#else
|
|
739
|
+
(void)cameras_open; (void)cameras_close; (void)producer_stream;
|
|
740
|
+
throw std::runtime_error("hyperdrone: device-resident camera input is only supported on the OptiX backend");
|
|
741
|
+
#endif
|
|
742
|
+
}
|
|
743
|
+
};
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
namespace nb = nanobind;
|
|
747
|
+
using hyperdrone::Transform;
|
|
748
|
+
using hyperdrone::Vec3;
|
|
749
|
+
using hyperdrone::extract_transform;
|
|
750
|
+
using hyperdrone::make_owned_array;
|
|
751
|
+
|
|
752
|
+
NB_MODULE(HYPERDRONE_MODULE_NAME, m){
|
|
753
|
+
m.doc() = "JIT-specialized RLtools raytracer";
|
|
754
|
+
|
|
755
|
+
using Renderer = HYPERDRONE_MODULE_NAME::Renderer<HYPERDRONE_MODULE_NAME::RENDERER_SPEC>;
|
|
756
|
+
using SPEC = Renderer::SPEC;
|
|
757
|
+
auto renderer_class = nb::class_<Renderer>(m, "Renderer");
|
|
758
|
+
renderer_class
|
|
759
|
+
.def(nb::init<>())
|
|
760
|
+
.def_prop_ro("backend", [](const Renderer& self){ return std::string(self.backend()); })
|
|
761
|
+
.def("init", [](Renderer& self, rrt::Bundle<float>& bundle, const rrt::AssetPool* pool){
|
|
762
|
+
nb::gil_scoped_release release;
|
|
763
|
+
self.init(&bundle, pool);
|
|
764
|
+
}, nb::arg("scene"), nb::arg("asset_pool").none() = nb::none(), nb::keep_alive<1, 2>(), nb::keep_alive<1, 3>())
|
|
765
|
+
.def("update", &Renderer::update, nb::call_guard<nb::gil_scoped_release>())
|
|
766
|
+
.def("synchronize", &Renderer::synchronize, nb::call_guard<nb::gil_scoped_release>())
|
|
767
|
+
.def("set_cameras", [](Renderer& self, FloatArray cameras){
|
|
768
|
+
self.check_cameras_shape(cameras);
|
|
769
|
+
self.set_cameras(cameras.data());
|
|
770
|
+
}, nb::arg("cameras"))
|
|
771
|
+
.def("set_motion_blur_cameras", [](Renderer& self, FloatArray cameras_open, FloatArray cameras_close){
|
|
772
|
+
self.check_cameras_shape(cameras_open);
|
|
773
|
+
self.check_cameras_shape(cameras_close);
|
|
774
|
+
self.set_motion_blur_cameras(cameras_open.data(), cameras_close.data());
|
|
775
|
+
}, nb::arg("cameras_open"), nb::arg("cameras_close"))
|
|
776
|
+
.def("generate_cameras", [](Renderer& self, Vec3 center, float radius, Vec3 up, float fov){
|
|
777
|
+
self.generate_cameras(center.data(), radius, up.data(), fov);
|
|
778
|
+
}, nb::arg("center"), nb::arg("radius"), nb::arg("up"), nb::arg("fov"))
|
|
779
|
+
.def("generate_probe_directions", &Renderer::generate_probe_directions)
|
|
780
|
+
.def("render", &Renderer::render, nb::call_guard<nb::gil_scoped_release>())
|
|
781
|
+
.def("render_launch", &Renderer::render_launch, nb::call_guard<nb::gil_scoped_release>())
|
|
782
|
+
.def("render_sync", &Renderer::render_sync, nb::call_guard<nb::gil_scoped_release>())
|
|
783
|
+
.def("probe", &Renderer::probe, nb::call_guard<nb::gil_scoped_release>())
|
|
784
|
+
.def("probe_launch", &Renderer::probe_launch, nb::call_guard<nb::gil_scoped_release>())
|
|
785
|
+
.def("probe_sync", &Renderer::probe_sync, nb::call_guard<nb::gil_scoped_release>())
|
|
786
|
+
.def("read_frame_buffer", [](Renderer& self, nb::ndarray<uint32_t, nb::c_contig, nb::device::cpu> out){
|
|
787
|
+
size_t shape[3] = {(size_t)out.shape(0), out.ndim() > 1 ? (size_t)out.shape(1) : 0, out.ndim() > 2 ? (size_t)out.shape(2) : 0};
|
|
788
|
+
self.check_image_shape(out.ndim(), shape);
|
|
789
|
+
nb::gil_scoped_release release;
|
|
790
|
+
self.read_frame_buffer(out.data());
|
|
791
|
+
}, nb::arg("out"))
|
|
792
|
+
.def("read_depth_buffer", [](Renderer& self, nb::ndarray<float, nb::c_contig, nb::device::cpu> out){
|
|
793
|
+
size_t shape[3] = {(size_t)out.shape(0), out.ndim() > 1 ? (size_t)out.shape(1) : 0, out.ndim() > 2 ? (size_t)out.shape(2) : 0};
|
|
794
|
+
self.check_image_shape(out.ndim(), shape);
|
|
795
|
+
nb::gil_scoped_release release;
|
|
796
|
+
self.read_depth_buffer(out.data());
|
|
797
|
+
}, nb::arg("out"))
|
|
798
|
+
.def("read_segmentation_buffer", [](Renderer& self, nb::ndarray<uint32_t, nb::c_contig, nb::device::cpu> out){
|
|
799
|
+
size_t shape[3] = {(size_t)out.shape(0), out.ndim() > 1 ? (size_t)out.shape(1) : 0, out.ndim() > 2 ? (size_t)out.shape(2) : 0};
|
|
800
|
+
self.check_image_shape(out.ndim(), shape);
|
|
801
|
+
nb::gil_scoped_release release;
|
|
802
|
+
self.read_segmentation_buffer(out.data());
|
|
803
|
+
}, nb::arg("out"))
|
|
804
|
+
.def("read_collision_results", [](Renderer& self, nb::ndarray<float, nb::c_contig, nb::device::cpu> distances, nb::ndarray<int32_t, nb::c_contig, nb::device::cpu> hits){
|
|
805
|
+
const size_t expected = (size_t)SPEC::NUM_CAMERAS * HYPERDRONE_RENDER_NUM_PROBES;
|
|
806
|
+
if(distances.size() != expected || hits.size() != expected){
|
|
807
|
+
throw std::invalid_argument("hyperdrone: collision output arrays must have num_cameras * num_probes elements");
|
|
808
|
+
}
|
|
809
|
+
nb::gil_scoped_release release;
|
|
810
|
+
self.read_collision_results(distances.data(), hits.data());
|
|
811
|
+
}, nb::arg("distances"), nb::arg("hits"))
|
|
812
|
+
.def("framebuffer_device_ptr", [](Renderer& self){ return (uintptr_t)self.framebuffer_device_ptr(); })
|
|
813
|
+
.def("depthbuffer_device_ptr", [](Renderer& self){ return (uintptr_t)self.depthbuffer_device_ptr(); })
|
|
814
|
+
.def("frame_view", [](Renderer& self, bool refresh){
|
|
815
|
+
uint32_t* pointer;
|
|
816
|
+
{
|
|
817
|
+
nb::gil_scoped_release release;
|
|
818
|
+
pointer = self.frame_buffer_host(refresh);
|
|
819
|
+
}
|
|
820
|
+
return nb::ndarray<nb::numpy, uint32_t>(pointer, {SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH}, nb::find(&self));
|
|
821
|
+
}, nb::arg("refresh") = true)
|
|
822
|
+
.def("depth_view", [](Renderer& self, bool refresh){
|
|
823
|
+
float* pointer;
|
|
824
|
+
{
|
|
825
|
+
nb::gil_scoped_release release;
|
|
826
|
+
pointer = self.depth_buffer_host(refresh);
|
|
827
|
+
}
|
|
828
|
+
return nb::ndarray<nb::numpy, float>(pointer, {SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH}, nb::find(&self));
|
|
829
|
+
}, nb::arg("refresh") = true)
|
|
830
|
+
.def("segmentation_view", [](Renderer& self, bool refresh){
|
|
831
|
+
uint32_t* pointer;
|
|
832
|
+
{
|
|
833
|
+
nb::gil_scoped_release release;
|
|
834
|
+
pointer = self.segmentation_buffer_host(refresh);
|
|
835
|
+
}
|
|
836
|
+
return nb::ndarray<nb::numpy, uint32_t>(pointer, {SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH}, nb::find(&self));
|
|
837
|
+
}, nb::arg("refresh") = true)
|
|
838
|
+
.def("frame_dlpack", [](Renderer& self){
|
|
839
|
+
uint8_t* pointer = reinterpret_cast<uint8_t*>(self.frame_buffer_live());
|
|
840
|
+
return nb::ndarray<>(pointer, {SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH, 4}, nb::find(&self), {},
|
|
841
|
+
nb::dtype<uint8_t>(), self.buffer_device_type(), 0);
|
|
842
|
+
})
|
|
843
|
+
.def("frame_raw_dlpack", [](Renderer& self){
|
|
844
|
+
uint32_t* pointer = self.frame_buffer_live();
|
|
845
|
+
return nb::ndarray<>(pointer, {SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH}, nb::find(&self), {},
|
|
846
|
+
nb::dtype<uint32_t>(), self.buffer_device_type(), 0);
|
|
847
|
+
})
|
|
848
|
+
.def("depth_dlpack", [](Renderer& self){
|
|
849
|
+
float* pointer = self.depth_buffer_live();
|
|
850
|
+
return nb::ndarray<>(pointer, {SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH}, nb::find(&self), {},
|
|
851
|
+
nb::dtype<float>(), self.buffer_device_type(), 0);
|
|
852
|
+
})
|
|
853
|
+
.def("buffer_device_type", [](Renderer& self){ return self.buffer_device_type(); })
|
|
854
|
+
.def("scene_bounds", [](Renderer& self){
|
|
855
|
+
float center[3], half_extent[3], camera_radius;
|
|
856
|
+
self.scene_bounds(center, half_extent, camera_radius);
|
|
857
|
+
return nb::make_tuple(make_owned_array(center, {3}), make_owned_array(half_extent, {3}), camera_radius);
|
|
858
|
+
})
|
|
859
|
+
.def("can_attach", [](Renderer& self, size_t camera, size_t overlay){ return self.can_attach(camera, overlay); })
|
|
860
|
+
.def("attach", [](Renderer& self, size_t camera, size_t overlay){ self.attach(camera, overlay); })
|
|
861
|
+
.def("detach", [](Renderer& self, size_t camera, size_t overlay){ self.detach(camera, overlay); })
|
|
862
|
+
.def("can_spawn", [](Renderer& self, size_t overlay, size_t asset){ return self.can_spawn(overlay, asset); })
|
|
863
|
+
.def("spawn", [](Renderer& self, size_t overlay, size_t asset, Transform transform){
|
|
864
|
+
float values[12];
|
|
865
|
+
extract_transform(transform, values);
|
|
866
|
+
rrt::OverlayPlacement placement = self.spawn(overlay, asset, values);
|
|
867
|
+
return nb::make_tuple(placement.first_slot, placement.num_parts, placement.first_part);
|
|
868
|
+
}, nb::arg("overlay"), nb::arg("asset"), nb::arg("transform"))
|
|
869
|
+
.def("despawn", [](Renderer& self, size_t overlay, std::array<size_t, 3> placement){
|
|
870
|
+
self.despawn(overlay, rrt::OverlayPlacement{placement[0], placement[1], placement[2]});
|
|
871
|
+
}, nb::arg("overlay"), nb::arg("placement"))
|
|
872
|
+
.def("set_transform", [](Renderer& self, size_t overlay, std::array<size_t, 3> placement, Transform transform){
|
|
873
|
+
float values[12];
|
|
874
|
+
extract_transform(transform, values);
|
|
875
|
+
self.set_transform(overlay, rrt::OverlayPlacement{placement[0], placement[1], placement[2]}, values);
|
|
876
|
+
}, nb::arg("overlay"), nb::arg("placement"), nb::arg("transform"))
|
|
877
|
+
.def("set_transform_pair", [](Renderer& self, size_t overlay, std::array<size_t, 3> placement, Transform open, Transform close){
|
|
878
|
+
float open_values[12], close_values[12];
|
|
879
|
+
extract_transform(open, open_values);
|
|
880
|
+
extract_transform(close, close_values);
|
|
881
|
+
self.set_transform_pair(overlay, rrt::OverlayPlacement{placement[0], placement[1], placement[2]}, open_values, close_values);
|
|
882
|
+
}, nb::arg("overlay"), nb::arg("placement"), nb::arg("open"), nb::arg("close"))
|
|
883
|
+
.def("set_transforms", [](Renderer& self, size_t overlay, std::array<size_t, 3> placement, FloatArray poses){
|
|
884
|
+
self.check_rows(poses, {placement[1]}, "(num_parts, 3, 4)");
|
|
885
|
+
self.set_transforms(overlay, rrt::OverlayPlacement{placement[0], placement[1], placement[2]}, poses.data());
|
|
886
|
+
}, nb::arg("overlay"), nb::arg("placement"), nb::arg("poses"))
|
|
887
|
+
.def("set_motion_transforms", [](Renderer& self, size_t overlay, std::array<size_t, 3> placement, FloatArray samples, FloatArray close){
|
|
888
|
+
self.check_rows(samples, {SPEC::MOTION_BLUR_SAMPLES, placement[1]}, "(motion_blur_samples, num_parts, 3, 4)");
|
|
889
|
+
self.check_rows(close, {placement[1]}, "(num_parts, 3, 4)");
|
|
890
|
+
self.set_motion_transforms(overlay, rrt::OverlayPlacement{placement[0], placement[1], placement[2]}, samples.data(), close.data());
|
|
891
|
+
}, nb::arg("overlay"), nb::arg("placement"), nb::arg("samples"), nb::arg("close"))
|
|
892
|
+
.def("set_all_transforms", [](Renderer& self, FloatArray poses){
|
|
893
|
+
self.check_rows(poses, {SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES}, "(num_overlays, max_overlay_instances, 3, 4)");
|
|
894
|
+
self.set_all_transforms(poses.data());
|
|
895
|
+
}, nb::arg("poses"))
|
|
896
|
+
.def("set_all_motion_transforms", [](Renderer& self, FloatArray samples, FloatArray close){
|
|
897
|
+
self.check_rows(samples, {SPEC::MOTION_BLUR_SAMPLES, SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES}, "(motion_blur_samples, num_overlays, max_overlay_instances, 3, 4)");
|
|
898
|
+
self.check_rows(close, {SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES}, "(num_overlays, max_overlay_instances, 3, 4)");
|
|
899
|
+
self.set_all_motion_transforms(samples.data(), close.data());
|
|
900
|
+
}, nb::arg("samples"), nb::arg("close"))
|
|
901
|
+
.def("transforms_dlpack", [](Renderer& self){
|
|
902
|
+
float* pointer = self.transforms_live();
|
|
903
|
+
return nb::ndarray<>(pointer, {SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES, 3, 4}, nb::find(&self), {},
|
|
904
|
+
nb::dtype<float>(), self.buffer_device_type(), 0);
|
|
905
|
+
})
|
|
906
|
+
.def("transforms_motion_dlpack", [](Renderer& self){
|
|
907
|
+
float* pointer = self.transforms_motion_live();
|
|
908
|
+
return nb::ndarray<>(pointer, {SPEC::MOTION_BLUR_SAMPLES, SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES, 3, 4}, nb::find(&self), {},
|
|
909
|
+
nb::dtype<float>(), self.buffer_device_type(), 0);
|
|
910
|
+
})
|
|
911
|
+
.def("render_stream", [](Renderer& self){ return (uintptr_t)self.render_stream(); });
|
|
912
|
+
|
|
913
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
914
|
+
using CudaFloatArray = nb::ndarray<const float, nb::c_contig, nb::device::cuda>;
|
|
915
|
+
renderer_class
|
|
916
|
+
.def("set_transforms_device", [](Renderer& self, size_t overlay, std::array<size_t, 3> placement, CudaFloatArray poses, uintptr_t stream){
|
|
917
|
+
self.check_rows(poses, {placement[1]}, "(num_parts, 3, 4)");
|
|
918
|
+
self.set_transforms_device(overlay, rrt::OverlayPlacement{placement[0], placement[1], placement[2]}, poses.data(), stream);
|
|
919
|
+
}, nb::arg("overlay"), nb::arg("placement"), nb::arg("poses"), nb::arg("stream") = 0)
|
|
920
|
+
.def("set_motion_transforms_device", [](Renderer& self, size_t overlay, std::array<size_t, 3> placement, CudaFloatArray samples, CudaFloatArray close, uintptr_t stream){
|
|
921
|
+
self.check_rows(samples, {SPEC::MOTION_BLUR_SAMPLES, placement[1]}, "(motion_blur_samples, num_parts, 3, 4)");
|
|
922
|
+
self.check_rows(close, {placement[1]}, "(num_parts, 3, 4)");
|
|
923
|
+
self.set_motion_transforms_device(overlay, rrt::OverlayPlacement{placement[0], placement[1], placement[2]}, samples.data(), close.data(), stream);
|
|
924
|
+
}, nb::arg("overlay"), nb::arg("placement"), nb::arg("samples"), nb::arg("close"), nb::arg("stream") = 0)
|
|
925
|
+
.def("set_all_transforms_device", [](Renderer& self, CudaFloatArray poses, uintptr_t stream){
|
|
926
|
+
self.check_rows(poses, {SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES}, "(num_overlays, max_overlay_instances, 3, 4)");
|
|
927
|
+
self.set_all_transforms_device(poses.data(), stream);
|
|
928
|
+
}, nb::arg("poses"), nb::arg("stream") = 0)
|
|
929
|
+
.def("set_all_motion_transforms_device", [](Renderer& self, CudaFloatArray samples, CudaFloatArray close, uintptr_t stream){
|
|
930
|
+
self.check_rows(samples, {SPEC::MOTION_BLUR_SAMPLES, SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES}, "(motion_blur_samples, num_overlays, max_overlay_instances, 3, 4)");
|
|
931
|
+
self.check_rows(close, {SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES}, "(num_overlays, max_overlay_instances, 3, 4)");
|
|
932
|
+
self.set_all_motion_transforms_device(samples.data(), close.data(), stream);
|
|
933
|
+
}, nb::arg("samples"), nb::arg("close"), nb::arg("stream") = 0)
|
|
934
|
+
.def("set_cameras_device", [](Renderer& self, nb::ndarray<const float, nb::c_contig, nb::device::cuda> cameras, uintptr_t stream){
|
|
935
|
+
int64_t dims[3] = {0, 0, 0};
|
|
936
|
+
for(size_t dimension = 0; dimension < cameras.ndim() && dimension < 3; dimension++){
|
|
937
|
+
dims[dimension] = (int64_t)cameras.shape(dimension);
|
|
938
|
+
}
|
|
939
|
+
self.check_cameras_dims(cameras.ndim(), dims);
|
|
940
|
+
self.set_cameras_device(cameras.data(), stream);
|
|
941
|
+
}, nb::arg("cameras"), nb::arg("stream") = 0)
|
|
942
|
+
// benchmark fast path: index a pre-uploaded set without any per-call DLPack traffic
|
|
943
|
+
.def("set_cameras_from_cuda_buffer", [](Renderer& self, hyperdrone::CudaBuffer& buffer, size_t index, uintptr_t stream){
|
|
944
|
+
if(buffer.slice_elements() != (size_t)SPEC::NUM_CAMERAS * 12){
|
|
945
|
+
throw std::invalid_argument("hyperdrone: CudaBuffer slices must hold num_cameras * 12 floats");
|
|
946
|
+
}
|
|
947
|
+
self.set_cameras_device(buffer.slice_pointer(index), stream);
|
|
948
|
+
}, nb::arg("buffer"), nb::arg("index"), nb::arg("stream") = 0)
|
|
949
|
+
.def("set_motion_blur_cameras_device", [](Renderer& self, nb::ndarray<const float, nb::c_contig, nb::device::cuda> cameras_open, nb::ndarray<const float, nb::c_contig, nb::device::cuda> cameras_close, uintptr_t stream){
|
|
950
|
+
int64_t dims[3] = {0, 0, 0};
|
|
951
|
+
for(size_t dimension = 0; dimension < cameras_open.ndim() && dimension < 3; dimension++){
|
|
952
|
+
dims[dimension] = (int64_t)cameras_open.shape(dimension);
|
|
953
|
+
}
|
|
954
|
+
self.check_cameras_dims(cameras_open.ndim(), dims);
|
|
955
|
+
for(size_t dimension = 0; dimension < cameras_close.ndim() && dimension < 3; dimension++){
|
|
956
|
+
dims[dimension] = (int64_t)cameras_close.shape(dimension);
|
|
957
|
+
}
|
|
958
|
+
self.check_cameras_dims(cameras_close.ndim(), dims);
|
|
959
|
+
self.set_motion_blur_cameras_device(cameras_open.data(), cameras_close.data(), stream);
|
|
960
|
+
}, nb::arg("cameras_open"), nb::arg("cameras_close"), nb::arg("stream") = 0);
|
|
961
|
+
#endif
|
|
962
|
+
}
|