hyperdrone 0.1.0__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 +28 -0
- hyperdrone/_native/cmake/hyperdrone_jit.cmake +43 -0
- hyperdrone/_native/common/bindings.h +39 -0
- hyperdrone/_native/common/cuda_staging.h +68 -0
- hyperdrone/_native/common/jit_host.h +69 -0
- hyperdrone/_native/dynamics/CMakeLists.txt +66 -0
- hyperdrone/_native/dynamics/host.cpp +191 -0
- hyperdrone/_native/dynamics/iface.h +81 -0
- hyperdrone/_native/dynamics/impl.cpp +659 -0
- hyperdrone/_native/render/CMakeLists.txt +96 -0
- hyperdrone/_native/render/host.cpp +276 -0
- hyperdrone/_native/render/iface.h +132 -0
- hyperdrone/_native/render/impl.cpp +620 -0
- hyperdrone/_native/render/scene_bindings.cpp +279 -0
- hyperdrone/_vendor/rl-tools/CMakeLists.txt +159 -0
- hyperdrone/_vendor/rl-tools/LICENSE +21 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/all.cmake +14 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/git-diff.cmake +103 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/git-hash.cmake +13 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier1-blas.cmake +43 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier2-json-hdf5-zlib.cmake +84 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier3-tensorboard.cmake +29 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier4-cuda.cmake +33 -0
- hyperdrone/_vendor/rl-tools/cmake/autodetect/tier5-cli11.cmake +26 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/assimp_fixup.cmake +16 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/googletest.cmake +17 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/metal.cmake +27 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/mujoco.cmake +32 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/optix.cmake +17 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/raytracing_generic.cmake +4 -0
- hyperdrone/_vendor/rl-tools/cmake/optional/vulkan.cmake +6 -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/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 +946 -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 +703 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_generic.h +1334 -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 +205 -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 +411 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/devices/devices.h +92 -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 +771 -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 +112 -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 +139 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_cuda.h +382 -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 +297 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_wasm32.h +225 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/mode/mode.h +75 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/activation_functions.h +115 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/capability/capability.h +63 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/capability/persist_code.h +27 -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 +184 -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 +739 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_generic.h +1185 -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 +421 -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 +55 -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 +534 -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 +217 -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 +152 -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 +375 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/helper_operations_generic.h +158 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/layer.h +218 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/operations_generic.h +947 -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 +214 -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 +428 -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 +494 -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 +291 -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 +268 -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 +158 -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 +228 -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 +16 -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 +17 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/adam.h +120 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/operations_cuda.h +90 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/operations_generic.h +144 -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 +79 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/operations_cuda.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/operations_generic.h +102 -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 +101 -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 +61 -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 +77 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/operations_generic.h +134 -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 +71 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/operations_cuda.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/operations_generic.h +43 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/sgd.h +91 -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 +90 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/parameters.h +78 -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 +133 -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/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 +381 -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 +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/operations_generic.h +76 -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 +135 -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 +280 -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 +6 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/model.h +276 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/operations_cuda.h +165 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/operations_generic.h +571 -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 +196 -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 +256 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/operations_generic.h +564 -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 +107 -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 +16 -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 +61 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_cuda.h +164 -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 +64 -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/raytracing/README.md +149 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_cpu.h +768 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_generic.h +1173 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/context.h +177 -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 +1122 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device.h +212 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device_impl.h +934 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/operations_cuda.h +1678 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/overlay_accel.h +57 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/context.h +220 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/device_source.h +40 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/operations_cpu.h +1967 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_common.h +1986 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_mux.h +19 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/renderer.h +376 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/scene/procthor/operations_cpu.h +226 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/scene/procthor/scene.h +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/scene/scene.h +31 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/scene.h +107 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/transforms_generic.h +159 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/types.h +39 -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 +240 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/operations_cuda.h +62 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/operations_generic.h +245 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/persist.h +102 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/state.h +52 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_cuda.h +193 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_generic.h +334 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_generic_extensions.h +244 -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 +172 -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 +111 -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/on_policy_runner.h +106 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu.h +16 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_accelerate.h +28 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_mkl.h +15 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cuda.h +195 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_generic.h +197 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_generic_extensions.h +98 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_generic_per_env.h +91 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/persist.h +61 -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/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/l2f/metrics.h +266 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/multirotor.h +1083 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_cpu.h +2119 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_cuda.h +38 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/05_state_is_nan.h +126 -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 +189 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/30_sample_initial_state.h +276 -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 +625 -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 +329 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/80_abs_diff.h +290 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic.h +369 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_helper_generic.h +45 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_multitask_generic.h +72 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_multitask_generic_forward.h +26 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/default.h +202 -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_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 +90 -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_code.h +53 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/quaternion_helper.h +94 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/ui.h +180 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f_visual/multirotor_visual.h +135 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f_visual/operations_cpu.h +244 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f_visual/operations_cuda.h +180 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f_visual/operations_generic.h +149 -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 +160 -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 +37 -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 +25 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cpu.h +21 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cuda.h +25 -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 +105 -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 +149 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/typing.h +118 -0
- hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/vector_operations.h +174 -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/backends/CMakeLists.txt +9 -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 +113 -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 +815 -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 +275 -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 +865 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/device_spirv.cpp +34 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/CMakeLists.txt +205 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/README.md +281 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/benchmark.cpp +175 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/benchmark_dynamic.cpp +494 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix.cpp +1629 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_physics.cu +523 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_physics.h +37 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/CMakeLists.txt +164 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/antialiasing.cpp +213 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/drone.cpp +367 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/drone_device.cu +385 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/environment/environment.h +85 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/environment/operations_cpu.h +270 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/example.cpp +276 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/fixed_pose.cpp +218 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/interactive.cpp +866 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/make_drone_glb.py +172 -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 +1833 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/render_pose_trace_motion_blur.cpp +646 -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 +221 -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/.build-check/inference_ios.o +0 -0
- hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/.build-check/libinference_ios.a +0 -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 +456 -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 +445 -0
- hyperdrone/cuda/__init__.py +78 -0
- hyperdrone/dynamics/__init__.py +22 -0
- hyperdrone/dynamics/_component.py +40 -0
- hyperdrone/dynamics/_config.py +47 -0
- hyperdrone/dynamics/_sim.py +201 -0
- hyperdrone/env/__init__.py +15 -0
- hyperdrone/env/_sampling.py +67 -0
- hyperdrone/env/_world.py +60 -0
- hyperdrone/examples/__init__.py +11 -0
- hyperdrone/examples/benchmark.py +236 -0
- hyperdrone/examples/benchmark_minimal.py +66 -0
- hyperdrone/examples/data.py +42 -0
- hyperdrone/examples/drone_flythrough.py +142 -0
- hyperdrone/examples/render_procthor.py +41 -0
- hyperdrone/jit/__init__.py +111 -0
- hyperdrone/jit/_build.py +94 -0
- hyperdrone/jit/_lock.py +23 -0
- hyperdrone/jit/_patches.py +95 -0
- hyperdrone/jit/_toolchain.py +13 -0
- hyperdrone/jit/_workspace.py +70 -0
- hyperdrone/render/__init__.py +48 -0
- hyperdrone/render/_component.py +35 -0
- hyperdrone/render/_config.py +90 -0
- hyperdrone/render/_renderer.py +306 -0
- hyperdrone/render/_scene.py +34 -0
- hyperdrone-0.1.0.dist-info/METADATA +15 -0
- hyperdrone-0.1.0.dist-info/RECORD +660 -0
- hyperdrone-0.1.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#include "../../version.h"
|
|
2
|
+
#include "../../rl_tools.h"
|
|
3
|
+
#if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_RENDERING_RAYTRACING_OPERATIONS_CPU_MUX_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
|
|
4
|
+
#pragma once
|
|
5
|
+
#define RL_TOOLS_RENDERING_RAYTRACING_OPERATIONS_CPU_MUX_H
|
|
6
|
+
|
|
7
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_METAL)
|
|
8
|
+
#include "backends/metal/operations_cpu.h"
|
|
9
|
+
#elif defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
10
|
+
#include "backends/optix/operations_cuda.h"
|
|
11
|
+
#elif defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_VULKAN)
|
|
12
|
+
#include "backends/vulkan/operations_cpu.h"
|
|
13
|
+
#elif defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_GENERIC)
|
|
14
|
+
#include "backends/generic/operations_cpu.h"
|
|
15
|
+
#else
|
|
16
|
+
#error "RLtools raytracing: no backend configured (RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX, RL_TOOLS_RENDERING_RAYTRACING_BACKEND_METAL, RL_TOOLS_RENDERING_RAYTRACING_BACKEND_VULKAN, or RL_TOOLS_RENDERING_RAYTRACING_BACKEND_GENERIC)"
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#endif
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
#include "../../version.h"
|
|
2
|
+
#include "../../rl_tools.h"
|
|
3
|
+
#if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_RENDERING_RAYTRACING_RENDERER_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
|
|
4
|
+
#pragma once
|
|
5
|
+
#define RL_TOOLS_RENDERING_RAYTRACING_RENDERER_H
|
|
6
|
+
|
|
7
|
+
#include "types.h"
|
|
8
|
+
#include "scene.h"
|
|
9
|
+
#include "../../containers/tensor/tensor.h"
|
|
10
|
+
|
|
11
|
+
#include <vector>
|
|
12
|
+
#include <deque>
|
|
13
|
+
#include <cstdint>
|
|
14
|
+
|
|
15
|
+
RL_TOOLS_NAMESPACE_WRAPPER_START
|
|
16
|
+
namespace rl_tools {
|
|
17
|
+
namespace rendering::raytracing{
|
|
18
|
+
|
|
19
|
+
template <
|
|
20
|
+
bool T_LOAD_TEXTURES,
|
|
21
|
+
bool T_NORMAL_SHADING,
|
|
22
|
+
bool T_METALLIC_REFLECTIONS,
|
|
23
|
+
bool T_SRGB_OUTPUT,
|
|
24
|
+
bool T_CHECKER_BACKGROUND,
|
|
25
|
+
bool T_PBR_SHADING,
|
|
26
|
+
bool T_PUNCTUAL_LIGHT_SHADOWS = false
|
|
27
|
+
>
|
|
28
|
+
struct ShadingOptions{
|
|
29
|
+
static constexpr bool LOAD_TEXTURES = T_LOAD_TEXTURES;
|
|
30
|
+
static constexpr bool NORMAL_SHADING = T_NORMAL_SHADING;
|
|
31
|
+
static constexpr bool METALLIC_REFLECTIONS = T_METALLIC_REFLECTIONS;
|
|
32
|
+
static constexpr bool SRGB_OUTPUT = T_SRGB_OUTPUT;
|
|
33
|
+
static constexpr bool CHECKER_BACKGROUND = T_CHECKER_BACKGROUND;
|
|
34
|
+
static constexpr bool PBR_SHADING = T_PBR_SHADING;
|
|
35
|
+
static constexpr bool PUNCTUAL_LIGHT_SHADOWS = T_PUNCTUAL_LIGHT_SHADOWS;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
using Medium = ShadingOptions<true, true, true, true, true, false>;
|
|
39
|
+
using High = ShadingOptions<true, true, true, true, false, true>;
|
|
40
|
+
using VeryHigh = ShadingOptions<true, true, true, true, false, true, true>;
|
|
41
|
+
using Low = ShadingOptions<false, false, false, false, false, false>;
|
|
42
|
+
|
|
43
|
+
using BasicShading = Medium;
|
|
44
|
+
using HighFidelityShading = High;
|
|
45
|
+
using VeryHighFidelityShading = VeryHigh;
|
|
46
|
+
using FastFlatShading = Low;
|
|
47
|
+
|
|
48
|
+
namespace config{
|
|
49
|
+
// Fringe defaults only: the required geometry — CAM_WIDTH, CAM_HEIGHT, NUM_CAMERAS,
|
|
50
|
+
// NUM_PROBES — is deliberately absent from this base, so a missing (or misspelled)
|
|
51
|
+
// required member fails to compile instead of silently falling back to a default.
|
|
52
|
+
template <typename T_T, typename T_TI>
|
|
53
|
+
struct Default{
|
|
54
|
+
using T = T_T;
|
|
55
|
+
using TI = T_TI;
|
|
56
|
+
using SHADING = Medium;
|
|
57
|
+
static constexpr bool OUTPUT_RGB = true;
|
|
58
|
+
static constexpr bool OUTPUT_DEPTH = false;
|
|
59
|
+
// segmentation writes one uint32 instance index per pixel (miss = 0xFFFFFFFF),
|
|
60
|
+
// always single-sample from the shutter-close camera: labels cannot be averaged,
|
|
61
|
+
// so anti-aliasing and motion-blur settings do not apply to it
|
|
62
|
+
static constexpr bool OUTPUT_SEGMENTATION = false;
|
|
63
|
+
static constexpr bool SEMANTIC_SEGMENTATION = false;
|
|
64
|
+
// normals writes the world-frame (FLU) geometric unit normal of the hit surface,
|
|
65
|
+
// oriented against the ray, as float3 per pixel (miss = 0,0,0); like segmentation
|
|
66
|
+
// it is always single-sample from the shutter-close camera: unit normals cannot
|
|
67
|
+
// be averaged, so anti-aliasing and motion-blur settings do not apply to it
|
|
68
|
+
static constexpr bool OUTPUT_NORMALS = false;
|
|
69
|
+
static constexpr bool ENABLE_MOTION_BLUR = false;
|
|
70
|
+
static constexpr T_TI MOTION_BLUR_SAMPLES = 1;
|
|
71
|
+
// dynamic motion blur renders MOTION_BLUR_SAMPLES sequential passes per frame,
|
|
72
|
+
// rebuilding the overlay acceleration structures from per-sample transforms
|
|
73
|
+
// (transforms_motion) between passes and accumulating linear radiance on the
|
|
74
|
+
// device — overlays blur, not just the camera. Requires motion blur + overlays.
|
|
75
|
+
static constexpr bool ENABLE_DYNAMIC_MOTION_BLUR = false;
|
|
76
|
+
static constexpr bool ENABLE_ANTI_ALIASING = false;
|
|
77
|
+
static constexpr T_TI ANTI_ALIASING_GRID_SIZE = 1;
|
|
78
|
+
static constexpr T_TI NUM_OVERLAYS = 0;
|
|
79
|
+
static constexpr T_TI MAX_OVERLAY_INSTANCES = 0;
|
|
80
|
+
static constexpr T_TI MAX_OVERLAYS_PER_CAMERA = 0;
|
|
81
|
+
// spec-driven observation output: the RGB ray gen writes OBSERVATION_T pixels
|
|
82
|
+
// ([0,1] linear or sRGB per SHADING) directly — no format-conversion pass. The
|
|
83
|
+
// packed frame buffer remains the video/golden output.
|
|
84
|
+
static constexpr bool OUTPUT_OBSERVATION = false;
|
|
85
|
+
using OBSERVATION_T = float;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
template <typename T_CONFIG>
|
|
90
|
+
struct Specification{
|
|
91
|
+
using CONFIG = T_CONFIG;
|
|
92
|
+
using T = typename CONFIG::T;
|
|
93
|
+
using TI = typename CONFIG::TI;
|
|
94
|
+
using SHADING = typename CONFIG::SHADING;
|
|
95
|
+
static constexpr bool HAS_RGB = CONFIG::OUTPUT_RGB;
|
|
96
|
+
static constexpr bool HAS_DEPTH = CONFIG::OUTPUT_DEPTH;
|
|
97
|
+
static constexpr bool HAS_SEGMENTATION = CONFIG::OUTPUT_SEGMENTATION;
|
|
98
|
+
static constexpr bool HAS_NORMALS = CONFIG::OUTPUT_NORMALS;
|
|
99
|
+
static constexpr bool ENABLE_DEPTH = HAS_DEPTH;
|
|
100
|
+
static constexpr bool ENABLE_RGB = HAS_RGB;
|
|
101
|
+
static constexpr TI CAM_WIDTH = CONFIG::CAM_WIDTH;
|
|
102
|
+
static constexpr TI CAM_HEIGHT = CONFIG::CAM_HEIGHT;
|
|
103
|
+
static constexpr TI NUM_CAMERAS = CONFIG::NUM_CAMERAS;
|
|
104
|
+
static constexpr TI NUM_PROBES = CONFIG::NUM_PROBES;
|
|
105
|
+
static_assert(CAM_WIDTH > 0 && CAM_HEIGHT > 0 && NUM_CAMERAS > 0, "camera geometry must be nonzero");
|
|
106
|
+
static_assert(HAS_RGB || HAS_DEPTH || HAS_SEGMENTATION || HAS_NORMALS || NUM_PROBES > 0, "the renderer must produce at least one output (an image target or collision probes)");
|
|
107
|
+
static constexpr TI MOTION_BLUR_SAMPLES = CONFIG::MOTION_BLUR_SAMPLES;
|
|
108
|
+
static constexpr bool ENABLE_MOTION_BLUR = CONFIG::ENABLE_MOTION_BLUR && MOTION_BLUR_SAMPLES > 1;
|
|
109
|
+
static_assert(MOTION_BLUR_SAMPLES >= 1, "MOTION_BLUR_SAMPLES must be at least 1");
|
|
110
|
+
static_assert(!ENABLE_MOTION_BLUR || MOTION_BLUR_SAMPLES == 2 || MOTION_BLUR_SAMPLES == 4 || MOTION_BLUR_SAMPLES == 8 || MOTION_BLUR_SAMPLES == 16 || MOTION_BLUR_SAMPLES == 32, "MOTION_BLUR_SAMPLES must be one of 2, 4, 8, 16, or 32");
|
|
111
|
+
static constexpr TI ANTI_ALIASING_GRID_SIZE = CONFIG::ANTI_ALIASING_GRID_SIZE;
|
|
112
|
+
static constexpr bool ENABLE_ANTI_ALIASING = CONFIG::ENABLE_ANTI_ALIASING && ANTI_ALIASING_GRID_SIZE > 1;
|
|
113
|
+
static constexpr TI ANTI_ALIASING_SAMPLES = ENABLE_ANTI_ALIASING ? ANTI_ALIASING_GRID_SIZE * ANTI_ALIASING_GRID_SIZE : 1;
|
|
114
|
+
static constexpr TI RGB_SAMPLES = (ENABLE_MOTION_BLUR ? MOTION_BLUR_SAMPLES : 1) * ANTI_ALIASING_SAMPLES;
|
|
115
|
+
static constexpr TI DEPTH_SAMPLES = RGB_SAMPLES;
|
|
116
|
+
static_assert(ANTI_ALIASING_GRID_SIZE >= 1, "ANTI_ALIASING_GRID_SIZE must be at least 1");
|
|
117
|
+
static_assert(!ENABLE_ANTI_ALIASING || ANTI_ALIASING_GRID_SIZE == 2 || ANTI_ALIASING_GRID_SIZE == 3 || ANTI_ALIASING_GRID_SIZE == 4, "ANTI_ALIASING_GRID_SIZE must be one of 2, 3, or 4");
|
|
118
|
+
static constexpr TI GRID_COLS = [](){
|
|
119
|
+
TI cols = 1;
|
|
120
|
+
while(cols * cols < NUM_CAMERAS) cols++;
|
|
121
|
+
return cols;
|
|
122
|
+
}();
|
|
123
|
+
static constexpr TI GRID_ROWS = (NUM_CAMERAS + GRID_COLS - 1) / GRID_COLS;
|
|
124
|
+
static constexpr TI FB_WIDTH = GRID_COLS * CAM_WIDTH;
|
|
125
|
+
static constexpr TI FB_HEIGHT = GRID_ROWS * CAM_HEIGHT;
|
|
126
|
+
static constexpr TI CAM_PIXELS = CAM_WIDTH * CAM_HEIGHT;
|
|
127
|
+
static constexpr T BENCHMARK_SECONDS = 10.0;
|
|
128
|
+
static constexpr T COS_FOVY = 1.3962634015954636;
|
|
129
|
+
// dynamic overlays: per-camera dynamic content composed onto the static shared world
|
|
130
|
+
static constexpr TI NUM_OVERLAYS = CONFIG::NUM_OVERLAYS;
|
|
131
|
+
static constexpr TI MAX_OVERLAY_INSTANCES = CONFIG::MAX_OVERLAY_INSTANCES;
|
|
132
|
+
static constexpr TI MAX_OVERLAYS_PER_CAMERA = CONFIG::MAX_OVERLAYS_PER_CAMERA;
|
|
133
|
+
static constexpr bool ENABLE_OVERLAYS = NUM_OVERLAYS > 0 && MAX_OVERLAY_INSTANCES > 0 && MAX_OVERLAYS_PER_CAMERA > 0;
|
|
134
|
+
static constexpr bool SEMANTIC_SEGMENTATION = CONFIG::SEMANTIC_SEGMENTATION; // segmentation output carries Object::segmentation_class instead of the instance id
|
|
135
|
+
static_assert(!SEMANTIC_SEGMENTATION || HAS_SEGMENTATION, "SEMANTIC_SEGMENTATION requires OUTPUT_SEGMENTATION");
|
|
136
|
+
static_assert(ENABLE_OVERLAYS || (NUM_OVERLAYS == 0 && MAX_OVERLAY_INSTANCES == 0 && MAX_OVERLAYS_PER_CAMERA == 0), "overlay constants must be all zero (disabled) or all nonzero");
|
|
137
|
+
static constexpr bool ENABLE_DYNAMIC_MOTION_BLUR = CONFIG::ENABLE_DYNAMIC_MOTION_BLUR && ENABLE_MOTION_BLUR && ENABLE_OVERLAYS;
|
|
138
|
+
static_assert(!CONFIG::ENABLE_DYNAMIC_MOTION_BLUR || (ENABLE_MOTION_BLUR && ENABLE_OVERLAYS), "ENABLE_DYNAMIC_MOTION_BLUR requires ENABLE_MOTION_BLUR (MOTION_BLUR_SAMPLES > 1) and overlays");
|
|
139
|
+
static constexpr bool HAS_OBSERVATION = CONFIG::OUTPUT_OBSERVATION;
|
|
140
|
+
using OBSERVATION_T = typename CONFIG::OBSERVATION_T;
|
|
141
|
+
static constexpr TI OBSERVATION_CHANNELS = 3;
|
|
142
|
+
static_assert(!HAS_OBSERVATION || HAS_RGB, "OUTPUT_OBSERVATION requires OUTPUT_RGB (the RGB ray gen writes it)");
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
namespace backends {
|
|
146
|
+
struct None {};
|
|
147
|
+
struct Generic {};
|
|
148
|
+
struct Optix {};
|
|
149
|
+
struct Metal {};
|
|
150
|
+
struct Vulkan {};
|
|
151
|
+
|
|
152
|
+
template <typename T_BACKEND>
|
|
153
|
+
struct Name;
|
|
154
|
+
template <> struct Name<None> { static constexpr const char* VALUE = "none"; };
|
|
155
|
+
template <> struct Name<Generic> { static constexpr const char* VALUE = "generic"; };
|
|
156
|
+
template <> struct Name<Optix> { static constexpr const char* VALUE = "optix"; };
|
|
157
|
+
template <> struct Name<Metal> { static constexpr const char* VALUE = "metal"; };
|
|
158
|
+
template <> struct Name<Vulkan> { static constexpr const char* VALUE = "vulkan"; };
|
|
159
|
+
|
|
160
|
+
template <typename T_BACKEND>
|
|
161
|
+
constexpr const char* name(){
|
|
162
|
+
return Name<T_BACKEND>::VALUE;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
#if defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_METAL)
|
|
166
|
+
using Default = Metal;
|
|
167
|
+
#elif defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_OPTIX)
|
|
168
|
+
using Default = Optix;
|
|
169
|
+
#elif defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_VULKAN)
|
|
170
|
+
using Default = Vulkan;
|
|
171
|
+
#elif defined(RL_TOOLS_RENDERING_RAYTRACING_BACKEND_GENERIC)
|
|
172
|
+
using Default = Generic;
|
|
173
|
+
#else
|
|
174
|
+
using Default = None;
|
|
175
|
+
#endif
|
|
176
|
+
|
|
177
|
+
template <typename T_BACKEND, typename T_SPEC>
|
|
178
|
+
struct RendererState;
|
|
179
|
+
|
|
180
|
+
template <typename T_BACKEND, typename T_SPEC>
|
|
181
|
+
struct LibraryState;
|
|
182
|
+
|
|
183
|
+
template <typename T_BACKEND, typename T_SPEC>
|
|
184
|
+
struct SceneState;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// shared scene store: renderers malloc'd against a library share one backend context and
|
|
188
|
+
// one geometry/texture/BLAS build per unique scene — init(device, renderer, library,
|
|
189
|
+
// path) deduplicates by file content hash and returns the unique-scene index, so callers
|
|
190
|
+
// key their own per-scene data off it. The library owns the host scenes its builds
|
|
191
|
+
// reference (deque: stable addresses). On backends without cross-renderer sharing
|
|
192
|
+
// (generic/Metal/Vulkan) each renderer still builds its own device copy — the caller
|
|
193
|
+
// code is uniform, the sharing is a backend property.
|
|
194
|
+
template <typename T_SPEC, typename T_BACKEND = backends::Default>
|
|
195
|
+
struct AssetLibrary {
|
|
196
|
+
using SPEC = T_SPEC;
|
|
197
|
+
using BACKEND = T_BACKEND;
|
|
198
|
+
using TI = typename SPEC::TI;
|
|
199
|
+
using BACKEND_STATE = backends::LibraryState<BACKEND, SPEC>;
|
|
200
|
+
using SCENE_STATE = backends::SceneState<BACKEND, SPEC>;
|
|
201
|
+
BACKEND_STATE* backend = nullptr;
|
|
202
|
+
std::deque<Scene> scenes;
|
|
203
|
+
std::deque<SCENE_STATE*> assets;
|
|
204
|
+
std::vector<uint64_t> hashes;
|
|
205
|
+
AssetPool pool;
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
template <typename T_SPEC, bool T_ENABLE_MOTION_BLUR>
|
|
209
|
+
struct MotionBlurRendererStorage {};
|
|
210
|
+
|
|
211
|
+
template <typename T_SPEC>
|
|
212
|
+
struct MotionBlurRendererStorage<T_SPEC, true> {
|
|
213
|
+
using SPEC = T_SPEC;
|
|
214
|
+
using T = typename SPEC::T;
|
|
215
|
+
using TI = typename SPEC::TI;
|
|
216
|
+
using CAMERA_TENSOR_SPEC = tensor::Specification<Camera<T>, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS>, true>;
|
|
217
|
+
Tensor<CAMERA_TENSOR_SPEC> cameras_open;
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
template <typename T_SPEC, bool T_HAS_RGB>
|
|
221
|
+
struct RGBRendererStorage {};
|
|
222
|
+
|
|
223
|
+
template <typename T_SPEC>
|
|
224
|
+
struct RGBRendererStorage<T_SPEC, true> {
|
|
225
|
+
using SPEC = T_SPEC;
|
|
226
|
+
using TI = typename SPEC::TI;
|
|
227
|
+
using FB_TENSOR_SPEC = tensor::Specification<uint32_t, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH>, true>;
|
|
228
|
+
Tensor<FB_TENSOR_SPEC> frame_buffer;
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
template <typename T_SPEC, bool T_HAS_DEPTH>
|
|
232
|
+
struct DepthRendererStorage {};
|
|
233
|
+
|
|
234
|
+
template <typename T_SPEC>
|
|
235
|
+
struct DepthRendererStorage<T_SPEC, true> {
|
|
236
|
+
using SPEC = T_SPEC;
|
|
237
|
+
using T = typename SPEC::T;
|
|
238
|
+
using TI = typename SPEC::TI;
|
|
239
|
+
using DEPTH_TENSOR_SPEC = tensor::Specification<float, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH>, true>;
|
|
240
|
+
Tensor<DEPTH_TENSOR_SPEC> depth_buffer;
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
template <typename T_SPEC, bool T_HAS_SEGMENTATION>
|
|
244
|
+
struct SegmentationRendererStorage {};
|
|
245
|
+
|
|
246
|
+
template <typename T_SPEC>
|
|
247
|
+
struct SegmentationRendererStorage<T_SPEC, true> {
|
|
248
|
+
using SPEC = T_SPEC;
|
|
249
|
+
using TI = typename SPEC::TI;
|
|
250
|
+
using SEGMENTATION_TENSOR_SPEC = tensor::Specification<uint32_t, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH>, true>;
|
|
251
|
+
Tensor<SEGMENTATION_TENSOR_SPEC> segmentation_buffer;
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
template <typename T_SPEC, bool T_HAS_NORMALS>
|
|
255
|
+
struct NormalsRendererStorage {};
|
|
256
|
+
|
|
257
|
+
template <typename T_SPEC>
|
|
258
|
+
struct NormalsRendererStorage<T_SPEC, true> {
|
|
259
|
+
using SPEC = T_SPEC;
|
|
260
|
+
using TI = typename SPEC::TI;
|
|
261
|
+
using NORMALS_TENSOR_SPEC = tensor::Specification<float, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH, 3>, true>;
|
|
262
|
+
Tensor<NORMALS_TENSOR_SPEC> normals_buffer;
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
template <typename T_SPEC, bool T_HAS_OBSERVATION>
|
|
266
|
+
struct ObservationRendererStorage {};
|
|
267
|
+
|
|
268
|
+
template <typename T_SPEC>
|
|
269
|
+
struct ObservationRendererStorage<T_SPEC, true> {
|
|
270
|
+
using SPEC = T_SPEC;
|
|
271
|
+
using TI = typename SPEC::TI;
|
|
272
|
+
using OBSERVATION_TENSOR_SPEC = tensor::Specification<typename SPEC::OBSERVATION_T, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH, SPEC::OBSERVATION_CHANNELS>, true>;
|
|
273
|
+
Tensor<OBSERVATION_TENSOR_SPEC> observation;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
template <typename T_SPEC, bool T_ENABLE_OVERLAYS>
|
|
277
|
+
struct OverlayRendererStorage {};
|
|
278
|
+
|
|
279
|
+
template <typename T_SPEC>
|
|
280
|
+
struct OverlayRendererStorage<T_SPEC, true> {
|
|
281
|
+
using SPEC = T_SPEC;
|
|
282
|
+
using TI = typename SPEC::TI;
|
|
283
|
+
static constexpr TI INVALID_OVERLAY = ~(TI)0;
|
|
284
|
+
|
|
285
|
+
struct OverlaySlot {
|
|
286
|
+
TI object = 0; // global object index (scene objects + pool objects)
|
|
287
|
+
TI pose_slot = 0; // root slot of the owning placement; the root's transforms entry moves the whole placement
|
|
288
|
+
float part_local[12]; // static attachment (part -> assembly), captured at spawn
|
|
289
|
+
float transform_entry[12]; // host mirror of the transforms-tensor entry (root: pose, non-root: articulation in the part frame)
|
|
290
|
+
bool active = false;
|
|
291
|
+
};
|
|
292
|
+
struct OverlayState {
|
|
293
|
+
OverlaySlot slots[SPEC::MAX_OVERLAY_INSTANCES];
|
|
294
|
+
bool dirty = false;
|
|
295
|
+
};
|
|
296
|
+
// pool assemblies flattened at init so spawn needs no pool access in the hot path
|
|
297
|
+
struct AssetRecord {
|
|
298
|
+
TI first_part; // into asset_part_objects/asset_part_transforms
|
|
299
|
+
TI num_parts;
|
|
300
|
+
};
|
|
301
|
+
OverlayState overlays[SPEC::NUM_OVERLAYS];
|
|
302
|
+
// dynamic transform input consumed by update(): entry [o][s] is the placement pose at
|
|
303
|
+
// its root slot and a part-frame articulation elsewhere (world = pose ∘ part_local ∘
|
|
304
|
+
// articulation). Backend-native residency (device memory on OptiX) — access via
|
|
305
|
+
// transforms(device, renderer); host verbs stage through the slot mirrors instead.
|
|
306
|
+
using TRANSFORMS_TENSOR_SPEC = tensor::Specification<float, TI, tensor::Shape<TI, SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES, 12>, true>;
|
|
307
|
+
Tensor<TRANSFORMS_TENSOR_SPEC> transforms;
|
|
308
|
+
TI attachments[SPEC::NUM_CAMERAS * SPEC::MAX_OVERLAYS_PER_CAMERA];
|
|
309
|
+
bool attachments_dirty = false;
|
|
310
|
+
// the flattened pool tables live on the renderer (not in backend state) because the
|
|
311
|
+
// backend-independent host verbs (spawn, set_transform) consume them
|
|
312
|
+
std::vector<AssetRecord> assets;
|
|
313
|
+
std::vector<TI> asset_part_objects; // global object index per part
|
|
314
|
+
std::vector<float> asset_part_transforms; // 12 per part, assembly-local
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
template <typename T_SPEC, bool T_ENABLE_DYNAMIC_MOTION_BLUR>
|
|
318
|
+
struct DynamicMotionBlurRendererStorage {};
|
|
319
|
+
|
|
320
|
+
template <typename T_SPEC>
|
|
321
|
+
struct DynamicMotionBlurRendererStorage<T_SPEC, true> {
|
|
322
|
+
using SPEC = T_SPEC;
|
|
323
|
+
using TI = typename SPEC::TI;
|
|
324
|
+
// per-sample overlay transform input consumed by the dynamic-motion-blur render loop:
|
|
325
|
+
// sample-major so slab s (base + s * NUM_OVERLAYS * MAX_OVERLAY_INSTANCES * 12) has
|
|
326
|
+
// the exact layout of the transforms tensor and feeds the same build path. Row
|
|
327
|
+
// semantics match transforms (root: pose, non-root: part-frame articulation).
|
|
328
|
+
using TRANSFORMS_MOTION_TENSOR_SPEC = tensor::Specification<float, TI, tensor::Shape<TI, SPEC::MOTION_BLUR_SAMPLES, SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES, 12>, true>;
|
|
329
|
+
Tensor<TRANSFORMS_MOTION_TENSOR_SPEC> transforms_motion;
|
|
330
|
+
// device-producer input: shutter-open (index 0) and shutter-close (index 1) entries
|
|
331
|
+
// per slot, expanded into transforms_motion (and the close state into transforms) by
|
|
332
|
+
// expand_motion_transforms — on OptiX both the producer write and the expansion stay
|
|
333
|
+
// on the device, so a sim kernel can drive dynamic blur with no host data path
|
|
334
|
+
using TRANSFORMS_PAIR_TENSOR_SPEC = tensor::Specification<float, TI, tensor::Shape<TI, 2, SPEC::NUM_OVERLAYS, SPEC::MAX_OVERLAY_INSTANCES, 12>, true>;
|
|
335
|
+
Tensor<TRANSFORMS_PAIR_TENSOR_SPEC> transforms_pair;
|
|
336
|
+
// host mirror of transforms_motion for the verb path (the tensor is device-resident
|
|
337
|
+
// on OptiX); staged per dirty overlay, same ownership contract as transform_entry
|
|
338
|
+
std::vector<float> transforms_motion_staging;
|
|
339
|
+
bool transforms_motion_dirty[SPEC::NUM_OVERLAYS] = {};
|
|
340
|
+
// linear-radiance accumulators, resolved into the packed frame buffer / depth buffer
|
|
341
|
+
// after the last sample pass; allocated only for the enabled outputs
|
|
342
|
+
using RGB_ACCUMULATOR_TENSOR_SPEC = tensor::Specification<float, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH, 3>, true>;
|
|
343
|
+
Tensor<RGB_ACCUMULATOR_TENSOR_SPEC> rgb_accumulator;
|
|
344
|
+
using DEPTH_ACCUMULATOR_TENSOR_SPEC = tensor::Specification<float, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS, SPEC::CAM_HEIGHT, SPEC::CAM_WIDTH>, true>;
|
|
345
|
+
Tensor<DEPTH_ACCUMULATOR_TENSOR_SPEC> depth_accumulator;
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
template <typename T_SPEC, typename T_BACKEND = backends::Default>
|
|
349
|
+
struct Renderer: MotionBlurRendererStorage<T_SPEC, T_SPEC::ENABLE_MOTION_BLUR>, RGBRendererStorage<T_SPEC, T_SPEC::HAS_RGB>, DepthRendererStorage<T_SPEC, T_SPEC::HAS_DEPTH>, SegmentationRendererStorage<T_SPEC, T_SPEC::HAS_SEGMENTATION>, NormalsRendererStorage<T_SPEC, T_SPEC::HAS_NORMALS>, ObservationRendererStorage<T_SPEC, T_SPEC::HAS_OBSERVATION>, OverlayRendererStorage<T_SPEC, T_SPEC::ENABLE_OVERLAYS>, DynamicMotionBlurRendererStorage<T_SPEC, T_SPEC::ENABLE_DYNAMIC_MOTION_BLUR>{
|
|
350
|
+
using SPEC = T_SPEC;
|
|
351
|
+
using BACKEND = T_BACKEND;
|
|
352
|
+
using BACKEND_STATE = backends::RendererState<BACKEND, SPEC>;
|
|
353
|
+
using T = typename SPEC::T;
|
|
354
|
+
using TI = typename SPEC::TI;
|
|
355
|
+
|
|
356
|
+
// camera input consumed directly by render/probe: backend-native residency (device
|
|
357
|
+
// memory on OptiX, host on generic, shared/mapped on Metal/Vulkan) — access via
|
|
358
|
+
// cameras(device, renderer); under motion blur this is the shutter-close camera and
|
|
359
|
+
// cameras_open holds the shutter-open pose (see cameras_open/cameras_close accessors)
|
|
360
|
+
using CAMERA_TENSOR_SPEC = tensor::Specification<Camera<T>, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS>, true>;
|
|
361
|
+
Tensor<CAMERA_TENSOR_SPEC> cameras;
|
|
362
|
+
|
|
363
|
+
using COLLISION_TENSOR_SPEC = tensor::Specification<CollisionResult, TI, tensor::Shape<TI, SPEC::NUM_CAMERAS, SPEC::NUM_PROBES>, true>;
|
|
364
|
+
Tensor<COLLISION_TENSOR_SPEC> collision_results;
|
|
365
|
+
|
|
366
|
+
T scene_center[3] = {0, 0, 0};
|
|
367
|
+
T scene_half_extent[3] = {0, 0, 0};
|
|
368
|
+
T camera_radius = 0;
|
|
369
|
+
|
|
370
|
+
BACKEND_STATE* backend = nullptr;
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
RL_TOOLS_NAMESPACE_WRAPPER_END
|
|
375
|
+
|
|
376
|
+
#endif
|
hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/scene/procthor/operations_cpu.h
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
#include "../../../../version.h"
|
|
2
|
+
#include "../../../../rl_tools.h"
|
|
3
|
+
#if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_RENDERING_RAYTRACING_SCENE_PROCTHOR_OPERATIONS_CPU_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
|
|
4
|
+
#pragma once
|
|
5
|
+
#define RL_TOOLS_RENDERING_RAYTRACING_SCENE_PROCTHOR_OPERATIONS_CPU_H
|
|
6
|
+
|
|
7
|
+
#include "scene.h"
|
|
8
|
+
#include "../../renderer.h"
|
|
9
|
+
#include "../../operations_cpu_mux.h"
|
|
10
|
+
|
|
11
|
+
#include <array>
|
|
12
|
+
#include <cmath>
|
|
13
|
+
#include <cstring>
|
|
14
|
+
#include <vector>
|
|
15
|
+
#include <algorithm>
|
|
16
|
+
#include <limits>
|
|
17
|
+
|
|
18
|
+
RL_TOOLS_NAMESPACE_WRAPPER_START
|
|
19
|
+
namespace rl_tools::rendering::raytracing::scene::procthor {
|
|
20
|
+
template <typename T, typename TI>
|
|
21
|
+
RL_TOOLS_FUNCTION_PLACEMENT T radical_inverse(TI n, TI base) {
|
|
22
|
+
T inv_base = static_cast<T>(1) / static_cast<T>(base);
|
|
23
|
+
T inv = inv_base;
|
|
24
|
+
T result = static_cast<T>(0);
|
|
25
|
+
while (n > 0) {
|
|
26
|
+
const TI digit = n % base;
|
|
27
|
+
result += static_cast<T>(digit) * inv;
|
|
28
|
+
inv *= inv_base;
|
|
29
|
+
n /= base;
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
template <typename T>
|
|
35
|
+
RL_TOOLS_FUNCTION_PLACEMENT T frac(T x) {
|
|
36
|
+
return x - std::floor(x);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
template <typename DEVICE, typename SCENE_SPEC, typename RENDERER_SPEC, typename BACKEND>
|
|
40
|
+
void precompute_indoor_positions(DEVICE& device, Scene<SCENE_SPEC>& scene, rendering::raytracing::Renderer<RENDERER_SPEC, BACKEND>& renderer, typename SCENE_SPEC::T fov, typename SCENE_SPEC::T aspect) {
|
|
41
|
+
using T = typename SCENE_SPEC::T;
|
|
42
|
+
using TI = typename SCENE_SPEC::TI;
|
|
43
|
+
constexpr TI NUM_CAMERAS = RENDERER_SPEC::NUM_CAMERAS;
|
|
44
|
+
constexpr TI NUM_PROBES = RENDERER_SPEC::NUM_PROBES;
|
|
45
|
+
|
|
46
|
+
scene.config.scene_center[0] = renderer.scene_center[0];
|
|
47
|
+
scene.config.scene_center[1] = renderer.scene_center[1];
|
|
48
|
+
scene.config.scene_center[2] = renderer.scene_center[2];
|
|
49
|
+
scene.config.scene_radius = renderer.camera_radius;
|
|
50
|
+
|
|
51
|
+
const T center[3] = {renderer.scene_center[0], renderer.scene_center[1], renderer.scene_center[2]};
|
|
52
|
+
const T half_extent[3] = {renderer.scene_half_extent[0], renderer.scene_half_extent[1], renderer.scene_half_extent[2]};
|
|
53
|
+
|
|
54
|
+
RL_TOOLS_RENDERING_RAYTRACING_LOG("precompute_indoor_positions: center=[" << center[0] << "," << center[1] << "," << center[2] << "] half_extent=[" << half_extent[0] << "," << half_extent[1] << "," << half_extent[2] << "]");
|
|
55
|
+
utils::assert_exit(device, data(collision_results(device, renderer)) != nullptr, "precompute_indoor_positions: collision results buffer is null");
|
|
56
|
+
|
|
57
|
+
struct Candidate {
|
|
58
|
+
IndoorPosition<T> position;
|
|
59
|
+
T score;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
constexpr T PI = static_cast<T>(3.14159265358979323846);
|
|
63
|
+
constexpr T MIN_CLEARANCE = static_cast<T>(1.0);
|
|
64
|
+
constexpr TI MAX_TOTAL_TESTED = 4096;
|
|
65
|
+
constexpr TI MAX_BATCHES = (MAX_TOTAL_TESTED + NUM_CAMERAS - 1) / NUM_CAMERAS;
|
|
66
|
+
constexpr TI MIN_REQUIRED_POSITIONS = 50;
|
|
67
|
+
const T max_half = std::max({half_extent[0], half_extent[1], half_extent[2]});
|
|
68
|
+
const T max_dist = max_half > static_cast<T>(1)
|
|
69
|
+
? static_cast<T>(2) * max_half
|
|
70
|
+
: static_cast<T>(20);
|
|
71
|
+
const T look_ahead = static_cast<T>(1);
|
|
72
|
+
const T search_half_extent[3] = {
|
|
73
|
+
std::max(static_cast<T>(0), half_extent[0] - MIN_CLEARANCE),
|
|
74
|
+
std::max(static_cast<T>(0), half_extent[1] - MIN_CLEARANCE),
|
|
75
|
+
std::max(static_cast<T>(0), half_extent[2] - MIN_CLEARANCE)
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
std::vector<Candidate> candidates;
|
|
79
|
+
candidates.reserve(static_cast<size_t>(MAX_BATCHES) * static_cast<size_t>(NUM_CAMERAS));
|
|
80
|
+
|
|
81
|
+
std::array<IndoorPosition<T>, NUM_CAMERAS> batch_positions{};
|
|
82
|
+
std::vector<rendering::raytracing::Camera<T>> camera_staging(NUM_CAMERAS);
|
|
83
|
+
TI total_tested = 0, no_hits = 0, failed_hit_ratio = 0, failed_avg_dist = 0, failed_min_dist = 0;
|
|
84
|
+
T best_min_hit_dist = 0;
|
|
85
|
+
|
|
86
|
+
for (TI batch_i = 0; batch_i < MAX_BATCHES && candidates.size() < MIN_REQUIRED_POSITIONS; batch_i++) {
|
|
87
|
+
for (TI camera_i = 0; camera_i < NUM_CAMERAS; camera_i++) {
|
|
88
|
+
const TI candidate_i = batch_i * NUM_CAMERAS + camera_i + 1;
|
|
89
|
+
const T hx = radical_inverse<T>(candidate_i, static_cast<TI>(2));
|
|
90
|
+
const T hy = radical_inverse<T>(candidate_i, static_cast<TI>(3));
|
|
91
|
+
const T hz = radical_inverse<T>(candidate_i, static_cast<TI>(5));
|
|
92
|
+
const T hw = radical_inverse<T>(candidate_i, static_cast<TI>(7));
|
|
93
|
+
|
|
94
|
+
const T yaw = static_cast<T>(2) * PI * hw;
|
|
95
|
+
|
|
96
|
+
auto& pos = batch_positions[camera_i];
|
|
97
|
+
pos.position[0] = center[0] + (hx * static_cast<T>(2) - static_cast<T>(1)) * search_half_extent[0];
|
|
98
|
+
pos.position[1] = center[1] + (hy * static_cast<T>(2) - static_cast<T>(1)) * search_half_extent[1];
|
|
99
|
+
pos.position[2] = center[2] + (hz * static_cast<T>(2) - static_cast<T>(1)) * search_half_extent[2];
|
|
100
|
+
pos.yaw = yaw;
|
|
101
|
+
pos.score = static_cast<T>(0);
|
|
102
|
+
|
|
103
|
+
const T cam_position[3] = {pos.position[0], pos.position[1], pos.position[2]};
|
|
104
|
+
const T cam_look_at[3] = {
|
|
105
|
+
pos.position[0] + look_ahead * std::cos(pos.yaw),
|
|
106
|
+
pos.position[1] + look_ahead * std::sin(pos.yaw),
|
|
107
|
+
pos.position[2]
|
|
108
|
+
};
|
|
109
|
+
const T cam_up[3] = {0, 0, 1};
|
|
110
|
+
camera_staging[camera_i] = make_camera_data(cam_position, cam_look_at, cam_up, fov, aspect);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
copy_to_renderer(device, renderer, camera_staging.data(), data(cameras(device, renderer)), NUM_CAMERAS);
|
|
114
|
+
probe(device, renderer);
|
|
115
|
+
|
|
116
|
+
std::vector<rendering::raytracing::CollisionResult> probe_staging((size_t)NUM_CAMERAS * NUM_PROBES);
|
|
117
|
+
copy_from_renderer(device, renderer, data(collision_results(device, renderer)), probe_staging.data(), probe_staging.size());
|
|
118
|
+
const rendering::raytracing::CollisionResult* probe_results = probe_staging.data();
|
|
119
|
+
for (TI camera_i = 0; camera_i < NUM_CAMERAS; camera_i++) {
|
|
120
|
+
const rendering::raytracing::CollisionResult* camera_probes = probe_results + static_cast<size_t>(camera_i) * static_cast<size_t>(NUM_PROBES);
|
|
121
|
+
TI hit_count = 0;
|
|
122
|
+
TI very_near_hit_count = 0;
|
|
123
|
+
// finite sentinel: infinity() is undefined behavior under -ffast-math and breaks the min tracking on Apple clang
|
|
124
|
+
T min_hit_dist = std::numeric_limits<T>::max();
|
|
125
|
+
T sum_hit_dist = static_cast<T>(0);
|
|
126
|
+
|
|
127
|
+
for (TI probe_i = 0; probe_i < NUM_PROBES; probe_i++) {
|
|
128
|
+
const rendering::raytracing::CollisionResult& probe = camera_probes[probe_i];
|
|
129
|
+
if (probe.hit) {
|
|
130
|
+
const T dist = static_cast<T>(probe.distance);
|
|
131
|
+
hit_count++;
|
|
132
|
+
sum_hit_dist += dist;
|
|
133
|
+
if (dist < min_hit_dist) {
|
|
134
|
+
min_hit_dist = dist;
|
|
135
|
+
}
|
|
136
|
+
if (dist < static_cast<T>(0.25)) {
|
|
137
|
+
very_near_hit_count++;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
total_tested++;
|
|
143
|
+
if (hit_count == 0) {
|
|
144
|
+
no_hits++;
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const T hit_ratio = static_cast<T>(hit_count) / static_cast<T>(NUM_PROBES);
|
|
149
|
+
const T avg_hit_dist = sum_hit_dist / static_cast<T>(hit_count);
|
|
150
|
+
const T avg_dist_norm = avg_hit_dist / max_dist;
|
|
151
|
+
const T near_ratio = static_cast<T>(very_near_hit_count) / static_cast<T>(NUM_PROBES);
|
|
152
|
+
const T forward_dist = static_cast<T>(camera_probes[0].distance);
|
|
153
|
+
const bool forward_open = camera_probes[0].hit && forward_dist > static_cast<T>(0.6) && forward_dist < static_cast<T>(6.0);
|
|
154
|
+
|
|
155
|
+
const T score =
|
|
156
|
+
static_cast<T>(2.0) * hit_ratio
|
|
157
|
+
- static_cast<T>(1.1) * avg_dist_norm
|
|
158
|
+
- static_cast<T>(0.8) * near_ratio
|
|
159
|
+
+ (forward_open ? static_cast<T>(0.15) : static_cast<T>(0));
|
|
160
|
+
|
|
161
|
+
if(hit_ratio <= static_cast<T>(0.72)) failed_hit_ratio++;
|
|
162
|
+
else if(avg_dist_norm >= static_cast<T>(0.45)) failed_avg_dist++;
|
|
163
|
+
else if(min_hit_dist <= MIN_CLEARANCE){ failed_min_dist++; if(min_hit_dist > best_min_hit_dist) best_min_hit_dist = min_hit_dist; }
|
|
164
|
+
|
|
165
|
+
const bool indoor_like =
|
|
166
|
+
hit_ratio > static_cast<T>(0.72) &&
|
|
167
|
+
avg_dist_norm < static_cast<T>(0.45) &&
|
|
168
|
+
min_hit_dist > MIN_CLEARANCE;
|
|
169
|
+
|
|
170
|
+
if (indoor_like) {
|
|
171
|
+
auto pos = batch_positions[camera_i];
|
|
172
|
+
pos.score = score;
|
|
173
|
+
candidates.push_back({pos, score});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
std::sort(candidates.begin(), candidates.end(), [](const Candidate& a, const Candidate& b) {
|
|
179
|
+
return a.score > b.score;
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
const TI take_n = std::min(static_cast<TI>(candidates.size()), SCENE_SPEC::MAX_INDOOR_POSITIONS);
|
|
183
|
+
for (TI i = 0; i < take_n; i++) {
|
|
184
|
+
scene.indoor_positions[i] = candidates[i].position;
|
|
185
|
+
}
|
|
186
|
+
scene.num_indoor_positions = take_n;
|
|
187
|
+
|
|
188
|
+
RL_TOOLS_RENDERING_RAYTRACING_LOG("precompute_indoor_positions: tested=" << total_tested << " no_hits=" << no_hits << " failed_hit_ratio=" << failed_hit_ratio << " failed_avg_dist=" << failed_avg_dist << " failed_min_dist=" << failed_min_dist << " (best_min_hit=" << best_min_hit_dist << ") accepted=" << scene.num_indoor_positions);
|
|
189
|
+
utils::assert_exit(device, scene.num_indoor_positions > 0, "precompute_indoor_positions: no valid indoor positions found");
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
template <typename DEVICE, typename SCENE_SPEC, typename RNG>
|
|
193
|
+
RL_TOOLS_FUNCTION_PLACEMENT IndoorPosition<typename SCENE_SPEC::T> sample_indoor_position(DEVICE& device, const Scene<SCENE_SPEC>& scene, RNG& rng) {
|
|
194
|
+
using TI = typename SCENE_SPEC::TI;
|
|
195
|
+
if (scene.num_indoor_positions == 0) {
|
|
196
|
+
return {};
|
|
197
|
+
}
|
|
198
|
+
const TI index = random::uniform_int_distribution(device.random, static_cast<TI>(0), static_cast<TI>(scene.num_indoor_positions - 1), rng);
|
|
199
|
+
return scene.indoor_positions[index];
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
template <typename DEVICE, typename RENDERER_SPEC, typename BACKEND>
|
|
203
|
+
RL_TOOLS_FUNCTION_PLACEMENT typename RENDERER_SPEC::T evaluate_clearance(DEVICE& device, rendering::raytracing::Renderer<RENDERER_SPEC, BACKEND>& renderer, typename RENDERER_SPEC::TI camera_index) {
|
|
204
|
+
using T = typename RENDERER_SPEC::T;
|
|
205
|
+
constexpr auto NUM_PROBES = RENDERER_SPEC::NUM_PROBES;
|
|
206
|
+
if (data(renderer.collision_results) == nullptr) {
|
|
207
|
+
return std::numeric_limits<T>::max();
|
|
208
|
+
}
|
|
209
|
+
std::vector<rendering::raytracing::CollisionResult> probe_staging(NUM_PROBES);
|
|
210
|
+
copy_from_renderer(device, renderer, data(renderer.collision_results) + (size_t)camera_index * NUM_PROBES, probe_staging.data(), NUM_PROBES);
|
|
211
|
+
const rendering::raytracing::CollisionResult* camera_probes = probe_staging.data();
|
|
212
|
+
T min_dist = std::numeric_limits<T>::max();
|
|
213
|
+
for (typename RENDERER_SPEC::TI probe_i = 0; probe_i < NUM_PROBES; probe_i++) {
|
|
214
|
+
if (camera_probes[probe_i].hit) {
|
|
215
|
+
T dist = static_cast<T>(camera_probes[probe_i].distance);
|
|
216
|
+
if (dist < min_dist) {
|
|
217
|
+
min_dist = dist;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return min_dist;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
RL_TOOLS_NAMESPACE_WRAPPER_END
|
|
225
|
+
|
|
226
|
+
#endif
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#include "../../../../version.h"
|
|
2
|
+
#include "../../../../rl_tools.h"
|
|
3
|
+
#if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_RENDERING_RAYTRACING_SCENE_PROCTHOR_SCENE_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
|
|
4
|
+
#pragma once
|
|
5
|
+
#define RL_TOOLS_RENDERING_RAYTRACING_SCENE_PROCTHOR_SCENE_H
|
|
6
|
+
|
|
7
|
+
#include "../scene.h"
|
|
8
|
+
|
|
9
|
+
RL_TOOLS_NAMESPACE_WRAPPER_START
|
|
10
|
+
namespace rl_tools::rendering::raytracing::scene::procthor {
|
|
11
|
+
template <typename T_SPEC>
|
|
12
|
+
struct Scene {
|
|
13
|
+
using SPEC = T_SPEC;
|
|
14
|
+
using T = typename SPEC::T;
|
|
15
|
+
using TI = typename SPEC::TI;
|
|
16
|
+
|
|
17
|
+
IndoorPosition<T> indoor_positions[SPEC::MAX_INDOOR_POSITIONS];
|
|
18
|
+
TI num_indoor_positions = 0;
|
|
19
|
+
|
|
20
|
+
SceneConfig<T> config;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
RL_TOOLS_NAMESPACE_WRAPPER_END
|
|
24
|
+
|
|
25
|
+
#endif
|