From af72d5d74a45824370d197e7017a4e1ef1d1cba9 Mon Sep 17 00:00:00 2001 From: zrezke Date: Tue, 16 May 2023 10:16:57 +0200 Subject: [PATCH 1/8] Rename rerun py library to depthai_viewer --- ARCHITECTURE.md | 4 +- Cargo.lock | 1196 ++++++++--------- README.md | 8 +- crates/re_viewer/src/app.rs | 4 +- design/blueprint_store.md | 10 +- examples/python/api_demo/main.py | 160 +-- examples/python/arkitscenes/main.py | 36 +- examples/python/car/main.py | 22 +- examples/python/clock/main.py | 26 +- examples/python/colmap/main.py | 26 +- examples/python/deep_sdf/main.py | 56 +- examples/python/dicom/main.py | 10 +- examples/python/dna/main.py | 20 +- examples/python/minimal/main.py | 6 +- examples/python/mp_pose/main.py | 34 +- examples/python/multiprocessing/main.py | 14 +- examples/python/multithreading/main.py | 10 +- examples/python/notebook/README.md | 2 +- examples/python/notebook/cube.ipynb | 538 ++++---- examples/python/nyud/main.py | 20 +- examples/python/objectron/main.py | 32 +- examples/python/opencv_canny/main.py | 18 +- examples/python/plots/main.py | 26 +- examples/python/raw_mesh/main.py | 14 +- examples/python/ros/main.py | 34 +- examples/python/ros/rerun_urdf.py | 6 +- examples/python/segment_anything/main.py | 24 +- .../stable_diffusion/huggingface_pipeline.py | 52 +- examples/python/stable_diffusion/main.py | 8 +- examples/python/text_logging/main.py | 14 +- examples/python/tracking_hf_opencv/main.py | 38 +- rerun_py/README.md | 4 +- .../{rerun => depthai_viewer}/__init__.py | 4 +- rerun_py/pyproject.toml | 5 +- .../{rerun => depthai_viewer}/__init__.py | 46 +- .../{rerun => depthai_viewer}/__main__.py | 2 +- .../_backend}/.gitignore | 0 .../_backend}/README.md | 0 .../_backend/__init__.py} | 0 .../_backend}/classification_labels.py | 0 .../_backend}/config_api.py | 6 +- .../_backend}/depth.py | 0 .../_backend}/device_configuration.py | 2 +- .../_backend/main.py} | 19 +- .../_backend}/pyproject.toml | 0 .../_backend}/sdk_callbacks.py | 50 +- .../_backend}/store.py | 4 +- .../_backend}/topic.py | 0 .../color_conversion.py | 0 .../components/__init__.py | 2 +- .../components/annotation.py | 2 +- .../components/arrow.py | 4 +- .../components/box.py | 2 +- .../components/color.py | 4 +- .../components/imu.py | 6 +- .../components/instance.py | 2 +- .../components/label.py | 2 +- .../components/linestrip.py | 2 +- .../components/point.py | 2 +- .../components/quaternion.py | 2 +- .../components/radius.py | 2 +- .../components/rect2d.py | 2 +- .../components/scalar.py | 2 +- .../components/tensor.py | 4 +- .../components/text_entry.py | 2 +- .../components/vec.py | 2 +- .../components/xlink_stats.py | 2 +- .../{rerun => depthai_viewer}/log/__init__.py | 2 +- .../log/annotation.py | 6 +- .../{rerun => depthai_viewer}/log/arrow.py | 18 +- .../log/bounding_box.py | 26 +- .../{rerun => depthai_viewer}/log/camera.py | 4 +- .../log/error_utils.py | 6 +- .../log/extension_components.py | 12 +- .../{rerun => depthai_viewer}/log/file.py | 4 +- .../{rerun => depthai_viewer}/log/image.py | 8 +- .../{rerun => depthai_viewer}/log/imu.py | 6 +- .../{rerun => depthai_viewer}/log/lines.py | 16 +- .../log/log_decorator.py | 8 +- .../{rerun => depthai_viewer}/log/mesh.py | 6 +- .../log/pipeline_graph.py | 18 +- .../{rerun => depthai_viewer}/log/points.py | 22 +- .../{rerun => depthai_viewer}/log/rects.py | 20 +- .../{rerun => depthai_viewer}/log/scalar.py | 18 +- .../{rerun => depthai_viewer}/log/tensor.py | 12 +- .../{rerun => depthai_viewer}/log/text.py | 18 +- .../log/text_internal.py | 10 +- .../log/transform.py | 8 +- .../log/xlink_stats.py | 6 +- rerun_py/rerun_sdk/depthai_viewer/py.typed | 0 .../{rerun => depthai_viewer}/recording.py | 4 +- .../script_helpers.py | 20 +- .../depthai_viewer_backend/__init__.py | 3 - rerun_py/rerun_sdk/rerun_demo/__init__.py | 6 +- rerun_py/rerun_sdk/rerun_demo/__main__.py | 16 +- rerun_py/rerun_sdk/rerun_demo/data.py | 2 +- rerun_py/tests/unit/api_tests.py | 10 +- rerun_py/tests/unit/test_color_conversion.py | 2 +- 98 files changed, 1453 insertions(+), 1520 deletions(-) rename rerun_py/{rerun => depthai_viewer}/__init__.py (89%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/__init__.py (91%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/__main__.py (74%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/.gitignore (100%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/README.md (100%) rename rerun_py/rerun_sdk/{rerun/py.typed => depthai_viewer/_backend/__init__.py} (100%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/classification_labels.py (100%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/config_api.py (97%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/depth.py (100%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/device_configuration.py (99%) rename rerun_py/rerun_sdk/{depthai_viewer_backend/back.py => depthai_viewer/_backend/main.py} (96%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/pyproject.toml (100%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/sdk_callbacks.py (75%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/store.py (94%) rename rerun_py/rerun_sdk/{depthai_viewer_backend => depthai_viewer/_backend}/topic.py (100%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/color_conversion.py (100%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/__init__.py (98%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/annotation.py (94%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/arrow.py (88%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/box.py (90%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/color.py (84%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/imu.py (85%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/instance.py (91%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/label.py (89%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/linestrip.py (96%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/point.py (95%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/quaternion.py (90%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/radius.py (89%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/rect2d.py (97%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/scalar.py (94%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/tensor.py (97%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/text_entry.py (92%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/vec.py (94%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/components/xlink_stats.py (90%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/__init__.py (98%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/annotation.py (97%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/arrow.py (83%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/bounding_box.py (81%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/camera.py (94%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/error_utils.py (87%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/extension_components.py (92%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/file.py (96%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/image.py (96%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/imu.py (92%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/lines.py (92%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/log_decorator.py (86%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/mesh.py (97%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/pipeline_graph.py (73%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/points.py (93%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/rects.py (91%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/scalar.py (90%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/tensor.py (91%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/text.py (87%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/text_internal.py (90%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/transform.py (96%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/log/xlink_stats.py (80%) create mode 100644 rerun_py/rerun_sdk/depthai_viewer/py.typed rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/recording.py (97%) rename rerun_py/rerun_sdk/{rerun => depthai_viewer}/script_helpers.py (85%) delete mode 100644 rerun_py/rerun_sdk/depthai_viewer_backend/__init__.py diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 31fb2a572c63..cd2e4c7115e3 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -22,10 +22,10 @@ The logging data can be written to disk as `.rrd` files, or transmitted over TCP The Rerun Viewer is where log data is visualized. It is usually run as a native app, but can also be compiled to WebAssembly (Wasm) and run in a browser. #### Native viewer -The easiest way to launch the viewer is directly from the logging API with `rr.init("my_app", spawn=True)`. However, the standalone viewer can also be run from the command line, for example to view an `.rrd` file: `rerun mydata.rrd`. +The easiest way to launch the viewer is directly from the logging API with `viewer.init("my_app", spawn=True)`. However, the standalone viewer can also be run from the command line, for example to view an `.rrd` file: `rerun mydata.rrd`. #### Web viewer -You can try running the viewer in a browser using `rr.serve()` in python, or using `rerun --web-viewer mydata.rrd`. +You can try running the viewer in a browser using `viewer.serve()` in python, or using `rerun --web-viewer mydata.rrd`. The web viewer consists of just a few small files - a thin `.html`, a `.wasm` blob, and an auto-generated `.js` bridge for the wasm. These files are served using the [`re_web_viewer_server`](https://github.com/rerun-io/rerun/tree/latest/crates/re_web_viewer_server) crate. diff --git a/Cargo.lock b/Cargo.lock index 917b7a481972..681b3ab79782 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "ab_glyph" -version = "0.2.20" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe21446ad43aa56417a767f3e2f3d7c4ca522904de1dd640529a76e9c5c3b33c" +checksum = "4dcdbc68024b653943864d436fe8a24b028095bc1cf91a8926f8241e4aaffe59" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -14,9 +14,9 @@ dependencies = [ [[package]] name = "ab_glyph_rasterizer" -version = "0.1.8" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" +checksum = "330223a1aecc308757b9926e9391c9b47f8ef2dbd8aea9df88312aea18c5e8d6" [[package]] name = "accesskit" @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.19.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" dependencies = [ "gimli", ] @@ -56,9 +56,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "bf6ccdb167abbf410dcb915cabd428929d7f6a04980b54a11f26a39f1c7f7107" dependencies = [ "cfg-if", "const-random", @@ -79,9 +79,9 @@ dependencies = [ [[package]] name = "android-activity" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c77a0045eda8b888c76ea473c2b0515ba6f471d318f8927c5c72240937035a6" +checksum = "4165a1aef703232031b40a6e8908c2f9e314d495f11aa7f98db75d39a497cc6a" dependencies = [ "android-properties", "bitflags 1.3.2", @@ -116,58 +116,18 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" -[[package]] -name = "anstream" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-wincon", - "concolor-override", - "concolor-query", - "is-terminal", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" - -[[package]] -name = "anstyle-parse" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-wincon" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa" -dependencies = [ - "anstyle", - "windows-sys 0.45.0", -] - [[package]] name = "anyhow" -version = "1.0.70" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" [[package]] name = "api_demo" version = "0.6.0-alpha.0" dependencies = [ "anyhow", - "clap 4.2.1", + "clap 4.1.4", "depthai-viewer", "glam", "itertools", @@ -210,9 +170,9 @@ checksum = "bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76" [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" [[package]] name = "arrayvec" @@ -236,7 +196,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a4c5b03335bc1cb0fd9f5297f8fd3bbfd6fb04f3cb0bc7d6c91b7128cb8336a" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "arrow-format", "bytemuck", "chrono", @@ -276,7 +236,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -367,7 +327,7 @@ dependencies = [ "log", "parking", "polling", - "rustix", + "rustix 0.37.3", "slab", "socket2", "waker-fn", @@ -375,11 +335,12 @@ dependencies = [ [[package]] name = "async-lock" -version = "2.7.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" dependencies = [ "event-listener", + "futures-lite", ] [[package]] @@ -390,7 +351,7 @@ checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -421,41 +382,40 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.4" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad445822218ce64be7a341abfb0b1ea43b5c23aa83902542a4542e78309d8e5e" +checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" dependencies = [ "async-stream-impl", "futures-core", - "pin-project-lite", ] [[package]] name = "async-stream-impl" -version = "0.3.4" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4655ae1a7b0cdf149156f780c5bf3f1352bc53cbd9e0a361a7ef7b22947e965" +checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] name = "async-task" -version = "4.4.0" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" +checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] @@ -466,9 +426,9 @@ checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" [[package]] name = "atomic_refcell" -version = "0.1.9" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "857253367827bd9d0fd973f0ef15506a96e79e41b0ad7aa691203a4e3214f6c8" +checksum = "73b5e5f48b927f04e952dedc932f31995a65a0bf65ec971c74436e51bf6e970d" [[package]] name = "atty" @@ -495,9 +455,9 @@ checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" dependencies = [ "addr2line", "cc", @@ -556,9 +516,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.1.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c70beb79cbb5ce9c4f8e20849978f34225931f665bb49efa6982875a4d5facb3" +checksum = "24a6904aef64d73cf10ab17ebace7befb918b82164785cb89907993be7f83813" [[package]] name = "block" @@ -568,9 +528,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "block-buffer" -version = "0.10.4" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] @@ -611,28 +571,28 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" [[package]] name = "bytemuck" -version = "1.13.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.4.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192" +checksum = "5fe233b960f12f8007e3db2d136e3cb1c291bfd7396e384ee76025fc1a3932b4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] @@ -643,18 +603,18 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" [[package]] name = "calloop" -version = "0.10.5" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192" +checksum = "595eb0438b3c6d262395fe30e6de9a61beb57ea56290b00a07f227fe6e20cbf2" dependencies = [ "log", - "nix 0.25.1", + "nix 0.24.2", "slotmap", "thiserror", "vec_map", @@ -662,9 +622,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" +checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e" dependencies = [ "serde", ] @@ -692,9 +652,9 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.15.3" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" +checksum = "982a0cf6a99c350d7246035613882e376d58cebe571785abc5da4f648d53ac0a" dependencies = [ "camino", "cargo-platform", @@ -712,9 +672,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.79" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" dependencies = [ "jobserver", ] @@ -739,15 +699,15 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" dependencies = [ "iana-time-zone", "js-sys", "num-integer", "num-traits", - "time 0.1.45", + "time 0.1.44", "wasm-bindgen", "winapi", ] @@ -793,38 +753,30 @@ dependencies = [ [[package]] name = "clap" -version = "4.2.1" +version = "4.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046ae530c528f252094e4a77886ee1374437744b2bff1497aa898bbddbbb29b3" +checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76" dependencies = [ - "clap_builder", + "bitflags 1.3.2", "clap_derive", + "clap_lex 0.3.0", + "is-terminal", "once_cell", -] - -[[package]] -name = "clap_builder" -version = "4.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223163f58c9a40c3b0a43e1c4b50a9ce09f007ea2cb1ec258a687945b4b7929f" -dependencies = [ - "anstream", - "anstyle", - "bitflags 1.3.2", - "clap_lex 0.4.1", "strsim", + "termcolor", ] [[package]] name = "clap_derive" -version = "4.2.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" +checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" dependencies = [ - "heck 0.4.1", + "heck 0.4.0", + "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] @@ -838,9 +790,12 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.4.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" +checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +dependencies = [ + "os_str_bytes", +] [[package]] name = "clean-path" @@ -850,9 +805,9 @@ checksum = "aaa6b4b263a5d737e9bf6b7c09b72c41a5480aec4d7219af827f6564e950b6a5" [[package]] name = "clipboard-win" -version = "4.5.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219" dependencies = [ "error-code", "str-buf", @@ -877,9 +832,9 @@ dependencies = [ [[package]] name = "cocoa-foundation" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" dependencies = [ "bitflags 1.3.2", "block", @@ -945,40 +900,26 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "concolor-override" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f" - -[[package]] -name = "concolor-query" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf" -dependencies = [ - "windows-sys 0.45.0", -] - [[package]] name = "concurrent-queue" -version = "2.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" +checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b" dependencies = [ "crossbeam-utils", ] [[package]] name = "console" -version = "0.15.5" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" +checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c" dependencies = [ "encode_unicode", "lazy_static", "libc", - "windows-sys 0.42.0", + "terminal_size", + "winapi", ] [[package]] @@ -1056,9 +997,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.6" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -1124,9 +1065,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1134,9 +1075,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -1145,14 +1086,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.14" +version = "0.9.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.8.0", + "memoffset 0.7.1", "scopeguard", ] @@ -1168,9 +1109,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ "cfg-if", ] @@ -1223,24 +1164,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] name = "ctrlc" -version = "3.2.5" +version = "3.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbcf33c2a618cbe41ee43ae6e9f2e48368cd9f9db2896f10167d8d762679f639" +checksum = "b37feaa84e6861e00a1f5e5aa8da3ee56d605c9992d33e082786754828e20865" dependencies = [ - "nix 0.26.2", - "windows-sys 0.45.0", + "nix 0.24.2", + "winapi", ] [[package]] name = "cxx" -version = "1.0.94" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453" dependencies = [ "cc", "cxxbridge-flags", @@ -1250,9 +1191,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.94" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0" dependencies = [ "cc", "codespan-reporting", @@ -1260,24 +1201,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] name = "cxxbridge-flags" -version = "1.0.94" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" +checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71" [[package]] name = "cxxbridge-macro" -version = "1.0.94" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] @@ -1292,9 +1233,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.4" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" dependencies = [ "darling_core", "darling_macro", @@ -1302,26 +1243,26 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -1330,7 +1271,7 @@ version = "0.6.0-alpha.0" dependencies = [ "anyhow", "backtrace", - "clap 4.2.1", + "clap 4.1.4", "ctrlc", "document-features", "itertools", @@ -1364,14 +1305,14 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] name = "devserver_lib" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf215dbb8cb1409cca7645aaed35f9e39fb0a21855bba1ac48bc0334903bf66" +checksum = "8fb4b71acc1405be2431a93892a79a0d82ed5ba6885649ddbdfc62caa4d67b1c" [[package]] name = "digest" @@ -1450,9 +1391,9 @@ dependencies = [ [[package]] name = "document-features" -version = "0.2.7" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e493c573fce17f00dcab13b6ac057994f3ce17d1af4dc39bfd482b83c6eb6157" +checksum = "c3267e1ade4f1f6ddd35fed44a04b6514e244ffeda90c6a14a9ee30f9c9fd7a1" dependencies = [ "litrs", ] @@ -1465,9 +1406,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dyn-clone" -version = "1.0.11" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" +checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" [[package]] name = "ecolor" @@ -1515,7 +1456,7 @@ version = "0.21.0" source = "git+https://github.com/emilk/egui?rev=f76eefb98d23cbf71989255aafe75a07d343f6ed#f76eefb98d23cbf71989255aafe75a07d343f6ed" dependencies = [ "accesskit", - "ahash 0.8.3", + "ahash 0.8.2", "epaint", "log", "nohash-hasher", @@ -1557,9 +1498,9 @@ dependencies = [ [[package]] name = "egui_dock" -version = "0.4.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be7e6eb63cb936413bd2a4f54be4a9ef53a48252f25864f5f946d4954d7332bd" +checksum = "6f86bdfe987f753ffcdf896932f09babfc63580b21e1899c304166f0befc85c8" dependencies = [ "egui", "serde", @@ -1606,9 +1547,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "emath" @@ -1643,18 +1584,18 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 2.0.15", ] [[package]] name = "enumn" -version = "0.1.8" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76" +checksum = "e88bcb3a067a6555d577aba299e75eff9942da276e6506fc6274327daa026132" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] @@ -1675,7 +1616,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -1697,7 +1638,7 @@ version = "0.21.0" source = "git+https://github.com/emilk/egui?rev=f76eefb98d23cbf71989255aafe75a07d343f6ed#f76eefb98d23cbf71989255aafe75a07d343f6ed" dependencies = [ "ab_glyph", - "ahash 0.8.3", + "ahash 0.8.2", "atomic_refcell", "bytemuck", "ecolor", @@ -1718,10 +1659,21 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 1.0.109", + "syn 1.0.103", "synstructure", ] +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + [[package]] name = "errno" version = "0.3.0" @@ -1786,30 +1738,30 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.9.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] [[package]] name = "filetime" -version = "0.2.20" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" +checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" dependencies = [ "cfg-if", "libc", "redox_syscall 0.2.16", - "windows-sys 0.45.0", + "windows-sys 0.42.0", ] [[package]] name = "fixed" -version = "1.23.1" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79386fdcec5e0fde91b1a6a5bcd89677d1f9304f7f986b154a1b9109038854d9" +checksum = "418922d2c280b8c68f82699494cc8c48f392233233a9a8b9a48a57a36c0ad0ef" dependencies = [ "az", "bytemuck", @@ -1826,9 +1778,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ "crc32fast", "miniz_oxide", @@ -1881,9 +1833,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.28" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" dependencies = [ "futures-channel", "futures-core", @@ -1896,9 +1848,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" dependencies = [ "futures-core", "futures-sink", @@ -1906,15 +1858,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" dependencies = [ "futures-core", "futures-task", @@ -1923,9 +1875,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" [[package]] name = "futures-lite" @@ -1944,32 +1896,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" dependencies = [ "futures-channel", "futures-core", @@ -1985,9 +1937,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -2018,9 +1970,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.2" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" [[package]] name = "glam" @@ -2086,7 +2038,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -2130,7 +2082,7 @@ dependencies = [ "log", "thiserror", "winapi", - "windows 0.44.0", + "windows", ] [[package]] @@ -2155,9 +2107,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.18" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" dependencies = [ "bytes", "fnv", @@ -2206,11 +2158,11 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "rayon", ] @@ -2240,9 +2192,9 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "hermit-abi" @@ -2262,12 +2214,6 @@ dependencies = [ "libc", ] -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" - [[package]] name = "hex" version = "0.4.3" @@ -2282,9 +2228,9 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] name = "http" -version = "0.2.9" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", @@ -2322,9 +2268,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.26" +version = "0.14.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" dependencies = [ "bytes", "futures-channel", @@ -2346,16 +2292,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.54" +version = "0.1.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows 0.46.0", + "winapi", ] [[package]] @@ -2392,9 +2338,9 @@ dependencies = [ [[package]] name = "image" -version = "0.24.6" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" +checksum = "69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945" dependencies = [ "bytemuck", "byteorder", @@ -2414,9 +2360,9 @@ checksum = "d9f1a0777d972970f204fdf8ef319f1f4f8459131636d7e3c96c5d59570d0fa6" [[package]] name = "indexmap" -version = "1.9.3" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown 0.12.3", @@ -2424,9 +2370,9 @@ dependencies = [ [[package]] name = "indoc" -version = "1.0.9" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" +checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3" [[package]] name = "inflections" @@ -2456,9 +2402,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.29.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a28d25139df397cbca21408bb742cf6837e04cdbebf1b07b760caf971d6a972" +checksum = "e48b08a091dfe5b09a6a9688c468fdd5b4396e92ce09e2eb932f0884b02788a4" dependencies = [ "console", "lazy_static", @@ -2481,25 +2427,24 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.9" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" +checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" dependencies = [ - "hermit-abi 0.3.1", "libc", - "windows-sys 0.45.0", + "windows-sys 0.42.0", ] [[package]] name = "is-terminal" -version = "0.4.6" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8" +checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi 0.2.6", "io-lifetimes", - "rustix", - "windows-sys 0.45.0", + "rustix 0.36.7", + "windows-sys 0.42.0", ] [[package]] @@ -2513,24 +2458,22 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "jni" -version = "0.21.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" dependencies = [ "cesu8", - "cfg-if", "combine", "jni-sys", "log", "thiserror", "walkdir", - "windows-sys 0.45.0", ] [[package]] @@ -2541,9 +2484,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" dependencies = [ "libc", ] @@ -2681,9 +2624,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.140" +version = "0.2.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" [[package]] name = "libloading" @@ -2703,9 +2646,9 @@ checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libmimalloc-sys" -version = "0.1.30" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8c7cbf8b89019683667e347572e6d55a7df7ea36b0c4ce69961b0cde67b174" +checksum = "04d1c67deb83e6b75fa4fe3309e09cfeade12e7721d95322af500d3814ea60c9" dependencies = [ "cc", "libc", @@ -2713,9 +2656,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.8" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" dependencies = [ "cc", ] @@ -2728,9 +2671,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.3.1" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + +[[package]] +name = "linux-raw-sys" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" +checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d" [[package]] name = "litrs" @@ -2769,9 +2718,9 @@ dependencies = [ [[package]] name = "macaw" -version = "0.18.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed1f4d97d94b7d276711c5b2a74f91c2a90ab532198683bb648240ddc0488cf7" +checksum = "8f5e66b08df1bc3a0249cadf7f2802ea7c09dc906af44c62b2889d721df1e252" dependencies = [ "glam", "num-traits", @@ -2804,9 +2753,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memmap2" -version = "0.5.10" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" dependencies = [ "libc", ] @@ -2820,6 +2769,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.8.0" @@ -2831,9 +2789,9 @@ dependencies = [ [[package]] name = "memory-stats" -version = "1.1.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f79cf9964c5c9545493acda1263f1912f8d2c56c8a2ffee2606cb960acaacc" +checksum = "5d3f458a3076e337e027943b8cb5f4f72a6651714f9258fc7dcd3ae3b51f0276" dependencies = [ "libc", "winapi", @@ -2855,9 +2813,9 @@ dependencies = [ [[package]] name = "mimalloc" -version = "0.1.34" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcb174b18635f7561a0c6c9fc2ce57218ac7523cf72c50af80e2d79ab8f3ba1" +checksum = "9b2374e2999959a7b583e1811a1ddbf1d3a4b9496eceb9746f1192a59d871eca" dependencies = [ "libmimalloc-sys", ] @@ -2880,16 +2838,16 @@ name = "minimal_options" version = "0.6.0-alpha.0" dependencies = [ "anyhow", - "clap 4.2.1", + "clap 4.1.4", "depthai-viewer", "glam", ] [[package]] name = "miniz_oxide" -version = "0.6.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -2902,14 +2860,14 @@ checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" [[package]] name = "mio" -version = "0.8.6" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.45.0", + "windows-sys 0.42.0", ] [[package]] @@ -2935,7 +2893,7 @@ checksum = "a8a3e2bde382ebf960c1f3e79689fa5941625fe9bf694a1cb64af3e85faff3af" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -3031,9 +2989,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.24.3" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ "bitflags 1.3.2", "cfg-if", @@ -3041,31 +2999,6 @@ dependencies = [ "memoffset 0.6.5", ] -[[package]] -name = "nix" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "libc", - "memoffset 0.6.5", -] - -[[package]] -name = "nix" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", - "static_assertions", -] - [[package]] name = "nohash-hasher" version = "0.2.0" @@ -3074,9 +3007,9 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "7.1.3" +version = "7.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" dependencies = [ "memchr", "minimal-lexical", @@ -3084,9 +3017,9 @@ dependencies = [ [[package]] name = "notify" -version = "5.1.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ea850aa68a06e48fdb069c0ec44d0d64c8dbffa49bf3b6f7f0a901fdea1ba9" +checksum = "ed2c66da08abae1c024c01d635253e402341b4060a12e99b31c7594063bf490a" dependencies = [ "bitflags 1.3.2", "crossbeam-channel", @@ -3097,7 +3030,7 @@ dependencies = [ "libc", "mio", "walkdir", - "windows-sys 0.42.0", + "winapi", ] [[package]] @@ -3136,9 +3069,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" dependencies = [ "num-traits", ] @@ -3151,7 +3084,7 @@ checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -3199,33 +3132,33 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.1.19", "libc", ] [[package]] name = "num_enum" -version = "0.5.11" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.11" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -3273,9 +3206,9 @@ checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" [[package]] name = "objc2" -version = "0.3.0-beta.3.patch-leaks.2" +version = "0.3.0-beta.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d9bb2ee6b71d02b1b3554ed600d267ee9a2796acc9fa43fb7748e13fe072dd" +checksum = "fe31e5425d3d0b89a15982c024392815da40689aceb34bad364d58732bcfd649" dependencies = [ "block2", "objc-sys", @@ -3311,9 +3244,9 @@ dependencies = [ [[package]] name = "object" -version = "0.30.3" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" dependencies = [ "memchr", ] @@ -3323,7 +3256,7 @@ name = "objectron" version = "0.6.0-alpha.0" dependencies = [ "anyhow", - "clap 4.2.1", + "clap 4.1.4", "depthai-viewer", "glam", "prost", @@ -3332,9 +3265,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.1" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" [[package]] name = "oorandom" @@ -3344,9 +3277,9 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "orbclient" -version = "0.3.43" +version = "0.3.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "974465c5e83cf9df05c1e4137b271d29035c902e39e5ad4c1939837e22160af8" +checksum = "ba683f1641c11041c59d5d93689187abcab3c1349dc6d9d70c550c9f9360802f" dependencies = [ "cfg-if", "redox_syscall 0.2.16", @@ -3356,9 +3289,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "3.6.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13a384337e997e6860ffbaa83708b2ef329fd8c54cb67a5f64d421e0f943254f" +checksum = "d84eb1409416d254e4a9c8fa56cc24701755025b458f0fcd8e59e1f5f40c23bf" dependencies = [ "num-traits", ] @@ -3375,15 +3308,15 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.5.0" +version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" [[package]] name = "owned_ttf_parser" -version = "0.18.1" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25e9fb15717794fae58ab55c26e044103aad13186fbb625893f9a3bbcc24228" +checksum = "18904d3c65493a9f0d7542293d1a7f69bfdc309a6b9ef4f46dc3e58b0577edc5" dependencies = [ "ttf-parser", ] @@ -3412,7 +3345,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.7", + "parking_lot_core 0.9.4", ] [[package]] @@ -3431,9 +3364,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.7" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" dependencies = [ "backtrace", "cfg-if", @@ -3442,14 +3375,14 @@ dependencies = [ "redox_syscall 0.2.16", "smallvec", "thread-id", - "windows-sys 0.45.0", + "windows-sys 0.42.0", ] [[package]] name = "paste" -version = "1.0.12" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" [[package]] name = "pathdiff" @@ -3465,9 +3398,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "petgraph" -version = "0.6.3" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" dependencies = [ "fixedbitset", "indexmap", @@ -3536,9 +3469,9 @@ dependencies = [ [[package]] name = "png" -version = "0.17.7" +version = "0.17.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" +checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -3548,29 +3481,29 @@ dependencies = [ [[package]] name = "polars-arrow" -version = "0.27.2" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e57a7b929edf6c73475dbc3f63d35152f14f4a9455476acc6127d770daa0f6" +checksum = "38fad08b4d4d3e21e8935d5d3d4dfcbb5ca65ffc5fa19364c254751bc1d62f93" dependencies = [ "arrow2", - "hashbrown 0.13.2", + "hashbrown 0.13.1", "num", "thiserror", ] [[package]] name = "polars-core" -version = "0.27.2" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a440cd53916f1a87fac1fda36cd7cc2d226247b4d4570d96242da5fa7f07b2a" +checksum = "2256086865cfa7db31af5e66a088f0089bff1ba9692f7195d1661497cebdca05" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "anyhow", "arrow2", "bitflags 1.3.2", "chrono", "comfy-table 6.1.4", - "hashbrown 0.13.2", + "hashbrown 0.13.1", "indexmap", "num", "once_cell", @@ -3586,9 +3519,9 @@ dependencies = [ [[package]] name = "polars-ops" -version = "0.27.2" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36638340fd9f4377dab11f307877ebb5bdac3bc9b25ea32a771584de76e5280a" +checksum = "31168b91a6edddb8dc4dcc4b53af15e9ffefc23f0bff054c1975423e01f3ae15" dependencies = [ "arrow2", "polars-arrow", @@ -3598,9 +3531,9 @@ dependencies = [ [[package]] name = "polars-utils" -version = "0.27.2" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a741a3325c544c97c7a9ff57d857f089b60041bd92b06c41582df6940ffaa05b" +checksum = "bda7fb126f8c77d0a106620fd525bc4fdd1c7e32cb100aa9a82ba3f7c969485a" dependencies = [ "once_cell", "rayon", @@ -3617,18 +3550,16 @@ dependencies = [ [[package]] name = "polling" -version = "2.6.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa" +checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" dependencies = [ "autocfg", - "bitflags 1.3.2", "cfg-if", - "concurrent-queue", "libc", "log", - "pin-project-lite", - "windows-sys 0.45.0", + "wepoll-ffi", + "windows-sys 0.42.0", ] [[package]] @@ -3645,22 +3576,23 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" dependencies = [ "proc-macro2", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" dependencies = [ "once_cell", - "toml_edit", + "thiserror", + "toml", ] [[package]] @@ -3672,7 +3604,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", "version_check", ] @@ -3695,9 +3627,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.54" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] @@ -3710,9 +3642,9 @@ checksum = "74605f360ce573babfe43964cbe520294dcb081afbf8c108fc6e23036b4da2df" [[package]] name = "prost" -version = "0.11.8" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48e50df39172a3e7eb17e14642445da64996989bc212b583015435d39a58537" +checksum = "21dc42e00223fc37204bd4aa177e69420c604ca4a183209a8f9de30c6d934698" dependencies = [ "bytes", "prost-derive", @@ -3720,12 +3652,12 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.8" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c828f93f5ca4826f97fedcbd3f9a536c16b12cff3dbbb4a007f932bbad95b12" +checksum = "a3f8ad728fb08fe212df3c05169e940fbb6d9d16a877ddde14644a983ba2012e" dependencies = [ "bytes", - "heck 0.4.1", + "heck 0.4.0", "itertools", "lazy_static", "log", @@ -3735,43 +3667,43 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 1.0.109", + "syn 1.0.103", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.11.8" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b" +checksum = "8bda8c0881ea9f722eb9629376db3d0b903b462477c1aafcb0566610ac28ac5d" dependencies = [ "anyhow", "itertools", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] name = "prost-types" -version = "0.11.8" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379119666929a1afd7a043aa6cf96fa67a6dce9af60c88095a4686dbce4c9c88" +checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788" dependencies = [ + "bytes", "prost", ] [[package]] name = "puffin" -version = "0.14.3" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b2c7a01f569fb03e2ff1f5376537f294001447bd23ce75ca51054fcd223fe4" +checksum = "796a1b7d7d0ec984dde24615178cbd14dc697ea4cdcddfd1fee9a5f87135f9e8" dependencies = [ "anyhow", "bincode", "byteorder", - "instant", "once_cell", "parking_lot 0.12.1", "ruzstd", @@ -3781,9 +3713,9 @@ dependencies = [ [[package]] name = "puffin_http" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0248f6b7425d45ac24cecefc9272d679b8fc18e82c5d3777e90146eb9a9f85" +checksum = "77dae1a51a8887f161ae17809ec4159bb3fbc8be60d12947039fa063cf211f1b" dependencies = [ "anyhow", "crossbeam-channel", @@ -3793,9 +3725,9 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.18.2" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb848f80438f926a9ebddf0a539ed6065434fd7aae03a89312a9821f81b8501" +checksum = "ccd4149c8c3975099622b4e1962dac27565cf5663b76452c3e2b66e0b6824277" dependencies = [ "cfg-if", "indoc", @@ -3830,14 +3762,14 @@ checksum = "be72d4cd43a27530306bd0d20d3932182fbdd072c6b98d3638bc37efb9d559dd" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] name = "pyo3-build-config" -version = "0.18.2" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98a42e7f42e917ce6664c832d5eee481ad514c98250c49e0b03b20593e2c7ed0" +checksum = "9cd09fe469834db21ee60e0051030339e5d361293d8cb5ec02facf7fdcf52dbf" dependencies = [ "once_cell", "target-lexicon", @@ -3845,9 +3777,9 @@ dependencies = [ [[package]] name = "pyo3-ffi" -version = "0.18.2" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0707f0ab26826fe4ccd59b69106e9df5e12d097457c7b8f9c0fd1d2743eec4d" +checksum = "0c427c9a96b9c5b12156dbc11f76b14f49e9aae8905ca783ea87c249044ef137" dependencies = [ "libc", "pyo3-build-config", @@ -3855,25 +3787,25 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.18.2" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978d18e61465ecd389e1f235ff5a467146dc4e3c3968b90d274fe73a5dd4a438" +checksum = "16b822bbba9d60630a44d2109bc410489bb2f439b33e3a14ddeb8a40b378a7c4" dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] name = "pyo3-macros-backend" -version = "0.18.2" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e0e1128f85ce3fca66e435e08aa2089a2689c1c48ce97803e13f63124058462" +checksum = "84ae898104f7c99db06231160770f3e40dad6eb9021daddc0fedfa3e41dff10a" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -3927,9 +3859,9 @@ dependencies = [ [[package]] name = "range-alloc" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" +checksum = "63e935c45e09cc6dcf00d2f0b2d630a58f4095320223d47fc68918722f0538b6" [[package]] name = "raw-window-handle" @@ -3943,7 +3875,7 @@ version = "0.6.0-alpha.0" dependencies = [ "anyhow", "bytes", - "clap 4.2.1", + "clap 4.1.4", "depthai-viewer", "gltf", "mimalloc", @@ -4002,7 +3934,7 @@ dependencies = [ name = "re_arrow_store" version = "0.6.0-alpha.0" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "anyhow", "arrow2", "arrow2_convert", @@ -4048,7 +3980,7 @@ dependencies = [ name = "re_data_store" version = "0.6.0-alpha.0" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "criterion", "document-features", "itertools", @@ -4137,7 +4069,7 @@ dependencies = [ name = "re_log_types" version = "0.6.0-alpha.0" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "array-init", "arrow2", "arrow2_convert", @@ -4175,7 +4107,7 @@ dependencies = [ name = "re_memory" version = "0.6.0-alpha.0" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "backtrace", "emath", "instant", @@ -4213,7 +4145,7 @@ dependencies = [ name = "re_renderer" version = "0.6.0-alpha.0" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "anyhow", "arrow2", "async-executor", @@ -4286,7 +4218,7 @@ dependencies = [ name = "re_sdk_comms" version = "0.6.0-alpha.0" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "anyhow", "bincode", "crossbeam", @@ -4310,7 +4242,7 @@ dependencies = [ name = "re_string_interner" version = "0.6.0-alpha.0" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "nohash-hasher", "once_cell", "parking_lot 0.12.1", @@ -4321,7 +4253,7 @@ dependencies = [ name = "re_tensor_ops" version = "0.6.0-alpha.0" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "ndarray", "re_log_types", "serde", @@ -4363,7 +4295,7 @@ dependencies = [ name = "re_viewer" version = "0.6.0-alpha.0" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.2", "anyhow", "arboard", "async-std", @@ -4477,9 +4409,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "fb02a9aee8e8c7ad8d86890f1e16b49e0bbbffc9961ff3788c31d57c98bcbf03" dependencies = [ "bitflags 1.3.2", ] @@ -4497,9 +4429,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.3" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" +checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" dependencies = [ "aho-corasick", "memchr", @@ -4508,9 +4440,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.29" +version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" [[package]] name = "renderdoc-sys" @@ -4571,7 +4503,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows 0.44.0", + "windows", ] [[package]] @@ -4633,9 +4565,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.22" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a36c42d1873f9a77c53bde094f9664d9891bc604a45b4798fd2c389ed12e5b" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" [[package]] name = "rustc-hash" @@ -4654,23 +4586,37 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.5" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" +dependencies = [ + "bitflags 1.3.2", + "errno 0.2.8", + "io-lifetimes", + "libc", + "linux-raw-sys 0.1.4", + "windows-sys 0.42.0", +] + +[[package]] +name = "rustix" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e78cc525325c06b4a7ff02db283472f3c042b7ff0c391f96c6d5ac6f4f91b75" +checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" dependencies = [ "bitflags 1.3.2", - "errno", + "errno 0.3.0", "io-lifetimes", "libc", - "linux-raw-sys", + "linux-raw-sys 0.3.0", "windows-sys 0.45.0", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" dependencies = [ "log", "ring", @@ -4680,15 +4626,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" [[package]] name = "ruzstd" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a15e661f0f9dac21f3494fe5d23a6338c0ac116a2d22c2b63010acd89467ffe" +checksum = "ffae8df4aa221781b715c27bbed0fac16b6f1e2643efb7af8a24dfc78d444493" dependencies = [ "byteorder", "thiserror", @@ -4697,9 +4643,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "safemem" @@ -4730,9 +4676,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.5" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" [[package]] name = "sct" @@ -4759,47 +4705,47 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.159" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" +checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.9" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.159" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] name = "serde_json" -version = "1.0.95" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" +checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" dependencies = [ "itoa", "ryu", @@ -4808,29 +4754,29 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.12" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" +checksum = "395627de918015623b32e7669714206363a7fc00382bf477e72c1f7533e8eafc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] name = "serde_test" -version = "1.0.159" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f259aa64e48efaf5a4fea11f97cacb109f7fc3ae9db7244cbb40c01c7faf42bc" +checksum = "3434c4787dcd7c8c0837ffbb01e6e34091f8983b2df9655e66393a867f99f7aa" dependencies = [ "serde", ] [[package]] name = "sha-1" -version = "0.10.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ "cfg-if", "cpufeatures", @@ -4865,9 +4811,9 @@ dependencies = [ [[package]] name = "signal-hook" -version = "0.3.15" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" dependencies = [ "libc", "signal-hook-registry", @@ -4886,9 +4832,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" dependencies = [ "libc", ] @@ -4907,9 +4853,9 @@ checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" dependencies = [ "autocfg", ] @@ -4956,7 +4902,7 @@ dependencies = [ "lazy_static", "log", "memmap2", - "nix 0.24.3", + "nix 0.24.2", "pkg-config", "wayland-client", "wayland-cursor", @@ -4975,9 +4921,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi", @@ -5054,7 +5000,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -5063,11 +5009,11 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck 0.4.1", + "heck 0.4.0", "proc-macro2", "quote", "rustversion", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -5078,9 +5024,9 @@ checksum = "fa7986063f7c0ab374407e586d7048a3d5aac94f103f751088bf398e07cd5400" [[package]] name = "syn" -version = "1.0.109" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" dependencies = [ "proc-macro2", "quote", @@ -5089,9 +5035,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.12" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79d9531f94112cfc3e4c8f5f02cb2b58f72c97b7efd85f70203cc6d8efda5927" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" dependencies = [ "proc-macro2", "quote", @@ -5106,15 +5052,15 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", "unicode-xid", ] [[package]] name = "sysinfo" -version = "0.28.4" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2f3ca6693feb29a89724516f016488e9aafc7f37264f898593ee4b942f31b" +checksum = "f69e0d827cce279e61c2f3399eb789271a8f136d8245edef70f06e3c9601a670" dependencies = [ "cfg-if", "core-foundation-sys", @@ -5126,32 +5072,42 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" +checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d" [[package]] name = "tempfile" -version = "3.5.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" dependencies = [ "cfg-if", "fastrand", - "redox_syscall 0.3.5", - "rustix", - "windows-sys 0.45.0", + "redox_syscall 0.2.16", + "rustix 0.36.7", + "windows-sys 0.42.0", ] [[package]] name = "termcolor" -version = "1.2.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "test_image_memory" version = "0.6.0-alpha.0" @@ -5169,22 +5125,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] @@ -5200,9 +5156,9 @@ dependencies = [ [[package]] name = "tiff" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471" +checksum = "f17def29300a156c19ae30814710d9c63cd50288a49c6fd3a10ccfbe4cf886fd" dependencies = [ "flate2", "jpeg-decoder", @@ -5211,9 +5167,9 @@ dependencies = [ [[package]] name = "time" -version = "0.1.45" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", @@ -5259,9 +5215,9 @@ dependencies = [ [[package]] name = "tiny-skia" -version = "0.8.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfef3412c6975196fdfac41ef232f910be2bb37b9dd3313a49a1a6bc815a5bdb" +checksum = "0ae12c22601b6853f4d93abb178e13bf0e1cc8e2454100c85d4d3a59ac71b3f7" dependencies = [ "arrayref", "arrayvec", @@ -5273,9 +5229,9 @@ dependencies = [ [[package]] name = "tiny-skia-path" -version = "0.8.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b5edac058fc98f51c935daea4d805b695b38e2f151241cad125ade2a2ac20d" +checksum = "bd665853ce64402daabef6edda442dbb4f8ee93ea80957b66ba1af419f11a104" dependencies = [ "arrayref", "bytemuck", @@ -5303,28 +5259,29 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tobj" -version = "3.2.4" +version = "3.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d0bde887a49e2e09f30ba3b454cdba3fbc971703e436c527f9f69a035b45b9b" +checksum = "deacee3abcc4fd8ff3f0f7c08d4583ab51753ed1d5a3acacd6d5773f640c27d6" dependencies = [ - "ahash 0.8.3", + "ahash 0.7.6", ] [[package]] name = "tokio" -version = "1.27.0" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" +checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" dependencies = [ "autocfg", "bytes", "libc", + "memchr", "mio", "num_cpus", "pin-project-lite", @@ -5335,13 +5292,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.0.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" +checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 1.0.103", ] [[package]] @@ -5373,9 +5330,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.7" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" dependencies = [ "bytes", "futures-core", @@ -5386,20 +5343,12 @@ dependencies = [ ] [[package]] -name = "toml_datetime" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" - -[[package]] -name = "toml_edit" -version = "0.19.8" +name = "toml" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" dependencies = [ - "indexmap", - "toml_datetime", - "winnow", + "serde", ] [[package]] @@ -5429,7 +5378,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -5443,15 +5392,15 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "ttf-parser" -version = "0.18.1" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633" +checksum = "375812fa44dab6df41c195cd2f7fecb488f6c09fbaafb62807488cefab642bff" [[package]] name = "tungstenite" @@ -5496,9 +5445,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "uds_windows" @@ -5512,15 +5461,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" [[package]] name = "unicode-normalization" @@ -5533,9 +5482,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" [[package]] name = "unicode-width" @@ -5551,9 +5500,9 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "unindent" -version = "0.1.11" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" +checksum = "58ee9362deb4a96cef4d437d1ad49cffc9b9e92d202b6995674e928ce684f112" [[package]] name = "untrusted" @@ -5602,17 +5551,11 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - [[package]] name = "uuid" -version = "1.3.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" dependencies = [ "getrandom", "serde", @@ -5655,11 +5598,12 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", + "winapi", "winapi-util", ] @@ -5686,7 +5630,7 @@ dependencies = [ "heck 0.3.3", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -5732,7 +5676,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", "wasm-bindgen-shared", ] @@ -5801,7 +5745,7 @@ checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5900,7 +5844,7 @@ dependencies = [ "bitflags 1.3.2", "downcast-rs", "libc", - "nix 0.24.3", + "nix 0.24.2", "scoped-tls", "wayland-commons", "wayland-scanner", @@ -5913,7 +5857,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" dependencies = [ - "nix 0.24.3", + "nix 0.24.2", "once_cell", "smallvec", "wayland-sys", @@ -5925,7 +5869,7 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" dependencies = [ - "nix 0.24.3", + "nix 0.24.2", "wayland-client", "xcursor", ] @@ -5976,9 +5920,9 @@ dependencies = [ [[package]] name = "webbrowser" -version = "0.8.8" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579cc485bd5ce5bfa0d738e4921dd0b956eca9800be1fd2e5257ebe95bc4617e" +checksum = "769f1a8831de12cad7bd6f9693b15b1432d93a151557810f617f626af823acae" dependencies = [ "core-foundation", "dirs", @@ -6003,9 +5947,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.6" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" dependencies = [ "webpki", ] @@ -6016,6 +5960,15 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" +[[package]] +name = "wepoll-ffi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" +dependencies = [ + "cc", +] + [[package]] name = "wgpu" version = "0.16.0" @@ -6046,7 +5999,7 @@ source = "git+https://github.com/rerun-io/wgpu?rev=de497aeda152a3515bac5eb4bf1b1 dependencies = [ "arrayvec", "bit-vec", - "bitflags 2.1.0", + "bitflags 2.2.1", "codespan-reporting", "log", "naga", @@ -6070,7 +6023,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.1.0", + "bitflags 2.2.1", "block", "core-graphics-types", "d3d12", @@ -6107,7 +6060,7 @@ name = "wgpu-types" version = "0.16.0" source = "git+https://github.com/rerun-io/wgpu?rev=de497aeda152a3515bac5eb4bf1b17f1757b9dac#de497aeda152a3515bac5eb4bf1b17f1757b9dac" dependencies = [ - "bitflags 2.1.0", + "bitflags 2.2.1", "js-sys", "web-sys", ] @@ -6178,15 +6131,6 @@ dependencies = [ "windows-targets", ] -[[package]] -name = "windows" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" -dependencies = [ - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.42.0" @@ -6213,9 +6157,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -6228,51 +6172,51 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "winit" -version = "0.28.3" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f504e8c117b9015f618774f8d58cd4781f5a479bc41079c064f974cbb253874" +checksum = "0c4755d4ba0e3d30fc7beef2095e246b1e6a6fad0717608bcb87a2df4b003bcf" dependencies = [ "android-activity", "bitflags 1.3.2", @@ -6290,7 +6234,7 @@ dependencies = [ "orbclient", "percent-encoding", "raw-window-handle", - "redox_syscall 0.3.5", + "redox_syscall 0.3.4", "sctk-adwaita", "smithay-client-toolkit", "wasm-bindgen", @@ -6303,15 +6247,6 @@ dependencies = [ "x11-dl", ] -[[package]] -name = "winnow" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" -dependencies = [ - "memchr", -] - [[package]] name = "wit-parser" version = "0.2.0" @@ -6378,12 +6313,12 @@ dependencies = [ [[package]] name = "x11-dl" -version = "2.21.0" +version = "2.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +checksum = "0c83627bc137605acc00bb399c7b908ef460b621fc37c953db2b09f88c449ea6" dependencies = [ + "lazy_static", "libc", - "once_cell", "pkg-config", ] @@ -6394,7 +6329,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" dependencies = [ "gethostname", - "nix 0.24.3", + "nix 0.24.2", "winapi", "winapi-wsapoll", "x11rb-protocol", @@ -6406,7 +6341,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" dependencies = [ - "nix 0.24.3", + "nix 0.24.2", ] [[package]] @@ -6489,7 +6424,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 1.0.109", + "syn 1.0.103", ] [[package]] @@ -6505,9 +6440,9 @@ dependencies = [ [[package]] name = "zip" -version = "0.6.4" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef" +checksum = "537ce7411d25e54e8ae21a7ce0b15840e7bfcff15b51d697ec3266cc76bdf080" dependencies = [ "byteorder", "crc32fast", @@ -6536,13 +6471,12 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.7+zstd.1.5.4" +version = "2.0.3+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5" +checksum = "44ccf97612ac95f3ccb89b2d7346b345e52f1c3019be4984f0455fb4ba991f8a" dependencies = [ "cc", "libc", - "pkg-config", ] [[package]] @@ -6568,7 +6502,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", "zvariant_utils", ] @@ -6580,5 +6514,5 @@ checksum = "53b22993dbc4d128a17a3b6c92f1c63872dd67198537ee728d8b5d7c40640a8b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.103", ] diff --git a/README.md b/README.md index ee844ca6a8bf..69788eb69ebd 100644 --- a/README.md +++ b/README.md @@ -19,11 +19,11 @@ Use one of our logging APIs (Python or Rust) to log rich data, such as images an ```py import rerun as rr -rr.init("my_app", spawn = True) # Spawn a Rerun Viewer and stream log events to it +viewer.init("my_app", spawn = True) # Spawn a Rerun Viewer and stream log events to it -rr.log_image("rgb_image", image) -rr.log_points("points", positions) -rr.log_rect("car", bbox) +viewer.log_image("rgb_image", image) +viewer.log_points("points", positions) +viewer.log_rect("car", bbox) … ``` diff --git a/crates/re_viewer/src/app.rs b/crates/re_viewer/src/app.rs index 61dc09c461e1..40eff6fd4ba8 100644 --- a/crates/re_viewer/src/app.rs +++ b/crates/re_viewer/src/app.rs @@ -110,7 +110,7 @@ impl App { fn spawn_backend() -> Option { // TODO(filip): Is there some way I can know for sure where depthai_viewer_backend is? let backend_handle = match std::process::Command::new("python") - .args(["-m", "depthai_viewer_backend"]) + .args(["-m", "depthai_viewer._backend.main"]) .spawn() { Ok(child) => { @@ -120,7 +120,7 @@ impl App { Err(err) => { eprintln!("Failed to start depthai viewer: {err}"); match std::process::Command::new("python3") - .args(["-m", "depthai_viewer_backend"]) + .args(["-m", "depthai_viewer._backend.main"]) .spawn() { Ok(child) => { diff --git a/design/blueprint_store.md b/design/blueprint_store.md index 18e95fc450c6..e4a0738d3633 100644 --- a/design/blueprint_store.md +++ b/design/blueprint_store.md @@ -36,11 +36,11 @@ The user save the data store and blueprint store to separate files. Something like this is very low-level, and not very ergonomic: ```py -rr.ui_log("top_bar", [("visible", false)]) -space_view_bpid = rr.ui_new_space_view("My 3D view") -data_bpid = rr.new_data_blueprint("world/points") -rr.ui_log(space_view_bpid, [("category", "3d"), ("children", [data_bpid])]) -rr.ui_log("viewport", [("children", [space_view_bpid])]) +viewer.ui_log("top_bar", [("visible", false)]) +space_view_bpid = viewer.ui_new_space_view("My 3D view") +data_bpid = viewer.new_data_blueprint("world/points") +viewer.ui_log(space_view_bpid, [("category", "3d"), ("children", [data_bpid])]) +viewer.ui_log("viewport", [("children", [space_view_bpid])]) ``` Adding high-level helpers on top of this is very desirable, but a lot of work. diff --git a/examples/python/api_demo/main.py b/examples/python/api_demo/main.py index eb79c9928d14..51fc7de9c7e1 100755 --- a/examples/python/api_demo/main.py +++ b/examples/python/api_demo/main.py @@ -16,62 +16,62 @@ import cv2 import numpy as np -import rerun as rr +import depthai_viewer as viewer from scipy.spatial.transform import Rotation def run_segmentation() -> None: - rr.set_time_seconds("sim_time", 1) + viewer.set_time_seconds("sim_time", 1) # Log an image before we have set up our labels segmentation_img = np.zeros([128, 128], dtype="uint8") segmentation_img[10:20, 30:50] = 13 segmentation_img[80:100, 60:80] = 42 segmentation_img[20:50, 90:110] = 99 - rr.log_segmentation_image("seg_demo/img", segmentation_img) + viewer.log_segmentation_image("seg_demo/img", segmentation_img) # Log a bunch of classified 2D points - rr.log_point("seg_demo/single_point", np.array([64, 64]), class_id=13) - rr.log_point("seg_demo/single_point_labeled", np.array([90, 50]), class_id=13, label="labeled point") - rr.log_points("seg_demo/several_points0", np.array([[20, 50], [100, 70], [60, 30]]), class_ids=42) - rr.log_points( + viewer.log_point("seg_demo/single_point", np.array([64, 64]), class_id=13) + viewer.log_point("seg_demo/single_point_labeled", np.array([90, 50]), class_id=13, label="labeled point") + viewer.log_points("seg_demo/several_points0", np.array([[20, 50], [100, 70], [60, 30]]), class_ids=42) + viewer.log_points( "seg_demo/several_points1", np.array([[40, 50], [120, 70], [80, 30]]), class_ids=np.array([13, 42, 99], dtype=np.uint8), ) - rr.log_points( + viewer.log_points( "seg_demo/many points", np.array([[100 + (int(i / 5)) * 2, 100 + (i % 5) * 2] for i in range(25)]), class_ids=np.array([42], dtype=np.uint8), ) - rr.log_text_entry("logs/seg_demo_log", "default colored rects, default colored points, a single point has a label") + viewer.log_text_entry("logs/seg_demo_log", "default colored rects, default colored points, a single point has a label") # Log an initial segmentation map with arbitrary colors - rr.set_time_seconds("sim_time", 2) - rr.log_annotation_context("seg_demo", [(13, "label1"), (42, "label2"), (99, "label3")], timeless=False) - rr.log_text_entry( + viewer.set_time_seconds("sim_time", 2) + viewer.log_annotation_context("seg_demo", [(13, "label1"), (42, "label2"), (99, "label3")], timeless=False) + viewer.log_text_entry( "logs/seg_demo_log", "default colored rects, default colored points, " "all points except the bottom right clusters have labels", ) # Log an updated segmentation map with specific colors - rr.set_time_seconds("sim_time", 3) - rr.log_annotation_context( + viewer.set_time_seconds("sim_time", 3) + viewer.log_annotation_context( "seg_demo", [(13, "label1", (255, 0, 0)), (42, "label2", (0, 255, 0)), (99, "label3", (0, 0, 255))], timeless=False, ) - rr.log_text_entry("logs/seg_demo_log", "points/rects with user specified colors") + viewer.log_text_entry("logs/seg_demo_log", "points/rects with user specified colors") # Log with a mixture of set and unset colors / labels - rr.set_time_seconds("sim_time", 4) - rr.log_annotation_context( + viewer.set_time_seconds("sim_time", 4) + viewer.log_annotation_context( "seg_demo", - [rr.AnnotationInfo(13, color=(255, 0, 0)), (42, "label2", (0, 255, 0)), rr.AnnotationInfo(99, label="label3")], + [viewer.AnnotationInfo(13, color=(255, 0, 0)), (42, "label2", (0, 255, 0)), viewer.AnnotationInfo(99, label="label3")], timeless=False, ) - rr.log_text_entry("logs/seg_demo_log", "label1 disappears and everything with label3 is now default colored again") + viewer.log_text_entry("logs/seg_demo_log", "label1 disappears and everything with label3 is now default colored again") def run_2d_lines() -> None: @@ -79,27 +79,27 @@ def run_2d_lines() -> None: T = np.linspace(0, 5, 100) for n in range(2, len(T)): - rr.set_time_seconds("sim_time", T[n]) + viewer.set_time_seconds("sim_time", T[n]) t = T[:n] x = np.cos(t * 5) * t y = np.sin(t * 5) * t pts = np.vstack([x, y]).T - rr.log_line_strip("2d_lines/spiral", positions=pts) + viewer.log_line_strip("2d_lines/spiral", positions=pts) def run_3d_points() -> None: import random - rr.set_time_seconds("sim_time", 1) - rr.log_point("3d_points/single_point_unlabeled", np.array([10.0, 0.0, 0.0])) - rr.log_point("3d_points/single_point_labeled", np.array([0.0, 0.0, 0.0]), label="labeled point") - rr.log_points( + viewer.set_time_seconds("sim_time", 1) + viewer.log_point("3d_points/single_point_unlabeled", np.array([10.0, 0.0, 0.0])) + viewer.log_point("3d_points/single_point_labeled", np.array([0.0, 0.0, 0.0]), label="labeled point") + viewer.log_points( "3d_points/spiral_small", np.array([[math.sin(i * 0.2) * 5, math.cos(i * 0.2) * 5 + 10.0, i * 4.0 - 5.0] for i in range(9)]), labels=[str(i) for i in range(9)], radii=np.linspace(0.1, 2.0, num=9), ) - rr.log_points( + viewer.log_points( "3d_points/spiral_big", np.array([[math.sin(i * 0.2) * 5, math.cos(i * 0.2) * 5 - 10.0, i * 0.4 - 5.0] for i in range(100)]), labels=[str(i) for i in range(100)], @@ -108,7 +108,7 @@ def run_3d_points() -> None: def raw_mesh() -> None: - rr.log_mesh( + viewer.log_mesh( "mesh_demo/triangle", positions=[[0, 0, 0], [0, 0.7, 0], [1.0, 0.0, 0]], vertex_colors=[[255, 0, 0], [0, 255, 0], [0, 0, 255]], @@ -118,51 +118,51 @@ def raw_mesh() -> None: def run_rects() -> None: import random - rr.set_time_seconds("sim_time", 1) + viewer.set_time_seconds("sim_time", 1) # Add an image img = np.zeros([1024, 1024, 3], dtype="uint8") img[:, :] = (128, 128, 128) - rr.log_image("rects_demo/img", img) + viewer.log_image("rects_demo/img", img) # 20 random rectangles - rr.set_time_seconds("sim_time", 2) + viewer.set_time_seconds("sim_time", 2) rects_xy = np.random.rand(20, 2) * 1024 rects_wh = np.random.rand(20, 2) * (1024 - rects_xy + 1) rects = np.hstack((rects_xy, rects_wh)) colors = np.array([[random.randrange(255) for _ in range(3)] for _ in range(20)]) - rr.log_rects("rects_demo/rects", rects, colors=colors, rect_format=rr.RectFormat.XYWH) + viewer.log_rects("rects_demo/rects", rects, colors=colors, rect_format=viewer.RectFormat.XYWH) # Clear the rectangles by logging an empty set - rr.set_time_seconds("sim_time", 3) - rr.log_rects("rects_demo/rects", []) + viewer.set_time_seconds("sim_time", 3) + viewer.log_rects("rects_demo/rects", []) def run_text_logs() -> None: - rr.log_text_entry("logs", "Text with explicitly set color", color=[255, 215, 0], timeless=True) - rr.log_text_entry("logs", "this entry has loglevel TRACE", level=rr.LogLevel.TRACE) + viewer.log_text_entry("logs", "Text with explicitly set color", color=[255, 215, 0], timeless=True) + viewer.log_text_entry("logs", "this entry has loglevel TRACE", level=viewer.LogLevel.TRACE) - logging.getLogger().addHandler(rr.LoggingHandler("logs/handler")) + logging.getLogger().addHandler(viewer.LoggingHandler("logs/handler")) logging.getLogger().setLevel(-1) logging.info("This log got added through a `LoggingHandler`") def run_log_cleared() -> None: - rr.set_time_seconds("sim_time", 1) - rr.log_rect("null_demo/rect/0", [5, 5, 4, 4], label="Rect1", color=(255, 0, 0)) - rr.log_rect("null_demo/rect/1", [10, 5, 4, 4], label="Rect2", color=(0, 255, 0)) - rr.set_time_seconds("sim_time", 2) - rr.log_cleared("null_demo/rect/0") - rr.set_time_seconds("sim_time", 3) - rr.log_cleared("null_demo/rect", recursive=True) - rr.set_time_seconds("sim_time", 4) - rr.log_rect("null_demo/rect/0", [5, 5, 4, 4]) - rr.set_time_seconds("sim_time", 5) - rr.log_rect("null_demo/rect/1", [10, 5, 4, 4]) + viewer.set_time_seconds("sim_time", 1) + viewer.log_rect("null_demo/rect/0", [5, 5, 4, 4], label="Rect1", color=(255, 0, 0)) + viewer.log_rect("null_demo/rect/1", [10, 5, 4, 4], label="Rect2", color=(0, 255, 0)) + viewer.set_time_seconds("sim_time", 2) + viewer.log_cleared("null_demo/rect/0") + viewer.set_time_seconds("sim_time", 3) + viewer.log_cleared("null_demo/rect", recursive=True) + viewer.set_time_seconds("sim_time", 4) + viewer.log_rect("null_demo/rect/0", [5, 5, 4, 4]) + viewer.set_time_seconds("sim_time", 5) + viewer.log_rect("null_demo/rect/1", [10, 5, 4, 4]) def transforms_rigid_3d() -> None: - rr.set_time_seconds("sim_time", 0) + viewer.set_time_seconds("sim_time", 0) sun_to_planet_distance = 6.0 planet_to_moon_distance = 3.0 @@ -170,22 +170,22 @@ def transforms_rigid_3d() -> None: rotation_speed_moon = 5.0 # Planetary motion is typically in the XY plane. - rr.log_view_coordinates("transforms3d", up="+Z", timeless=True) - rr.log_view_coordinates("transforms3d/sun", up="+Z", timeless=True) - rr.log_view_coordinates("transforms3d/sun/planet", up="+Z", timeless=True) - rr.log_view_coordinates("transforms3d/sun/planet/moon", up="+Z", timeless=True) + viewer.log_view_coordinates("transforms3d", up="+Z", timeless=True) + viewer.log_view_coordinates("transforms3d/sun", up="+Z", timeless=True) + viewer.log_view_coordinates("transforms3d/sun/planet", up="+Z", timeless=True) + viewer.log_view_coordinates("transforms3d/sun/planet/moon", up="+Z", timeless=True) # All are in the center of their own space: - rr.log_point("transforms3d/sun", [0.0, 0.0, 0.0], radius=1.0, color=[255, 200, 10]) - rr.log_point("transforms3d/sun/planet", [0.0, 0.0, 0.0], radius=0.4, color=[40, 80, 200]) - rr.log_point("transforms3d/sun/planet/moon", [0.0, 0.0, 0.0], radius=0.15, color=[180, 180, 180]) + viewer.log_point("transforms3d/sun", [0.0, 0.0, 0.0], radius=1.0, color=[255, 200, 10]) + viewer.log_point("transforms3d/sun/planet", [0.0, 0.0, 0.0], radius=0.4, color=[40, 80, 200]) + viewer.log_point("transforms3d/sun/planet/moon", [0.0, 0.0, 0.0], radius=0.15, color=[180, 180, 180]) # "dust" around the "planet" (and inside, don't care) # distribution is quadratically higher in the middle radii = np.random.rand(200) * planet_to_moon_distance * 0.5 angles = np.random.rand(200) * math.tau height = np.power(np.random.rand(200), 0.2) * 0.5 - 0.5 - rr.log_points( + viewer.log_points( "transforms3d/sun/planet/dust", np.array([np.sin(angles) * radii, np.cos(angles) * radii, height]).transpose(), colors=[80, 80, 80], @@ -195,11 +195,11 @@ def transforms_rigid_3d() -> None: # paths where the planet & moon move angles = np.arange(0.0, 1.01, 0.01) * math.tau circle = np.array([np.sin(angles), np.cos(angles), angles * 0.0]).transpose() - rr.log_line_strip( + viewer.log_line_strip( "transforms3d/sun/planet_path", circle * sun_to_planet_distance, ) - rr.log_line_strip( + viewer.log_line_strip( "transforms3d/sun/planet/moon_path", circle * planet_to_moon_distance, ) @@ -207,10 +207,10 @@ def transforms_rigid_3d() -> None: # movement via transforms for i in range(0, 6 * 120): time = i / 120.0 - rr.set_time_seconds("sim_time", time) + viewer.set_time_seconds("sim_time", time) rotation_q = [0, 0, 0, 1] - rr.log_rigid3( + viewer.log_rigid3( "transforms3d/sun/planet", parent_from_child=( [ @@ -221,7 +221,7 @@ def transforms_rigid_3d() -> None: Rotation.from_euler("x", 20, degrees=True).as_quat(), ), ) - rr.log_rigid3( + viewer.log_rigid3( "transforms3d/sun/planet/moon", child_from_parent=( [ @@ -235,8 +235,8 @@ def transforms_rigid_3d() -> None: def run_bounding_box() -> None: - rr.set_time_seconds("sim_time", 0) - rr.log_obb( + viewer.set_time_seconds("sim_time", 0) + viewer.log_obb( "bbox_demo/bbox", half_size=[1.0, 0.5, 0.25], position=np.array([0.0, 0.0, 0.0]), @@ -246,8 +246,8 @@ def run_bounding_box() -> None: label="box/t0", ) - rr.set_time_seconds("sim_time", 1) - rr.log_obb( + viewer.set_time_seconds("sim_time", 1) + viewer.log_obb( "bbox_demo/bbox", half_size=[1.0, 0.5, 0.25], position=np.array([1.0, 0.0, 0.0]), @@ -259,19 +259,19 @@ def run_bounding_box() -> None: def run_extension_component() -> None: - rr.set_time_seconds("sim_time", 0) + viewer.set_time_seconds("sim_time", 0) # Hack to establish 2d view bounds - rr.log_rect("extension_components", [0, 0, 128, 128]) + viewer.log_rect("extension_components", [0, 0, 128, 128]) # Single point - rr.log_point("extension_components/point", np.array([64, 64]), color=(255, 0, 0)) + viewer.log_point("extension_components/point", np.array([64, 64]), color=(255, 0, 0)) # Separate extension component - rr.log_extension_components("extension_components/point", {"confidence": 0.9}) + viewer.log_extension_components("extension_components/point", {"confidence": 0.9}) # Batch points with extension # Note: each extension component must either be length 1 (a splat) or the same length as the batch - rr.set_time_seconds("sim_time", 1) - rr.log_points( + viewer.set_time_seconds("sim_time", 1) + viewer.log_points( "extension_components/points", np.array([[32, 32], [32, 96], [96, 32], [96, 96]]), colors=(0, 255, 0), @@ -286,11 +286,11 @@ def run_image_tensors() -> None: img_bgra = cv2.imread(img_path, cv2.IMREAD_UNCHANGED) img_rgba = cv2.cvtColor(img_bgra, cv2.COLOR_BGRA2RGBA) - rr.log_image("img_rgba", img_rgba) + viewer.log_image("img_rgba", img_rgba) img_rgb = cv2.cvtColor(img_rgba, cv2.COLOR_RGBA2RGB) - rr.log_image("img_rgb", img_rgb) + viewer.log_image("img_rgb", img_rgb) img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY) - rr.log_image("img_gray", img_gray) + viewer.log_image("img_gray", img_gray) dtypes = [ "uint8", @@ -307,9 +307,9 @@ def run_image_tensors() -> None: ] for dtype in dtypes: - rr.log_image(f"img_rgba_{dtype}", img_rgba.astype(dtype)) - rr.log_image(f"img_rgb_{dtype}", img_rgb.astype(dtype)) - rr.log_image(f"img_gray_{dtype}", img_gray.astype(dtype)) + viewer.log_image(f"img_rgba_{dtype}", img_rgba.astype(dtype)) + viewer.log_image(f"img_rgb_{dtype}", img_rgb.astype(dtype)) + viewer.log_image(f"img_gray_{dtype}", img_gray.astype(dtype)) def main() -> None: @@ -332,11 +332,11 @@ def main() -> None: "--demo", type=str, default="most", help="What demo to run", choices=["most", "all"] + list(demos.keys()) ) - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "api_demo") + viewer.script_setup(args, "api_demo") if args.demo in ["most", "all"]: print(f"Running {args.demo} demos…") @@ -351,7 +351,7 @@ def main() -> None: demo = demos[args.demo] demo() - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/arkitscenes/main.py b/examples/python/arkitscenes/main.py index 28b2f1a0c02b..ce685828cfe2 100755 --- a/examples/python/arkitscenes/main.py +++ b/examples/python/arkitscenes/main.py @@ -9,7 +9,7 @@ import matplotlib.pyplot as plt import numpy as np import numpy.typing as npt -import rerun as rr +import depthai_viewer as viewer import trimesh from download_dataset import AVAILABLE_RECORDINGS, ensure_recording_available from scipy.spatial.transform import Rotation as R @@ -68,7 +68,7 @@ def log_annotated_bboxes(annotation: Dict[str, Any]) -> Tuple[npt.NDArray[np.flo rot = R.from_matrix(rotation).inv() - rr.log_obb( + viewer.log_obb( f"world/annotations/box-{uid}-{label}", half_size=half_size, position=centroid, @@ -135,7 +135,7 @@ def log_line_segments(entity_path: str, bboxes_2d_filtered: npt.NDArray[np.float # log centroid and add label so that object label is visible in the 2d view if valid_points.size > 0: centroid = valid_points.mean(axis=0) - rr.log_point(f"{entity_path}/centroid", centroid, color=color, label=label) + viewer.log_point(f"{entity_path}/centroid", centroid, color=color, label=label) else: pass @@ -160,7 +160,7 @@ def log_line_segments(entity_path: str, bboxes_2d_filtered: npt.NDArray[np.float bboxes_2d_filtered[3], bboxes_2d_filtered[7] ], dtype=np.float32) - rr.log_line_segments(entity_path, segments, color=color) + viewer.log_line_segments(entity_path, segments, color=color) def project_3d_bboxes_to_2d_keypoints( @@ -244,18 +244,18 @@ def log_camera( # Project 3D bounding boxes into 2D image bboxes_2d = project_3d_bboxes_to_2d_keypoints(bboxes, camera_from_world, intrinsic, img_width=w, img_height=h) # clear previous centroid labels - rr.log_cleared(f"{entity_id}/bbox-2d-segments", recursive=True) + viewer.log_cleared(f"{entity_id}/bbox-2d-segments", recursive=True) # Log line segments for each bounding box in the image for i, (label, bbox_2d) in enumerate(zip(bbox_labels, bboxes_2d)): log_line_segments(f"{entity_id}/bbox-2d-segments/{label}", bbox_2d.reshape(-1, 2), colors[i], label) - rr.log_rigid3( + viewer.log_rigid3( # pathlib makes it easy to get the parent, but log_rigid requires a string str(PosixPath(entity_id).parent), child_from_parent=camera_from_world, xyz="RDF", # X=Right, Y=Down, Z=Forward ) - rr.log_pinhole(f"{entity_id}", child_from_parent=intrinsic, width=w, height=h) + viewer.log_pinhole(f"{entity_id}", child_from_parent=intrinsic, width=w, height=h) def read_camera_from_world(traj_string: str) -> Tuple[str, Tuple[npt.NDArray[np.float64], npt.NDArray[np.float64]]]: @@ -344,13 +344,13 @@ def log_arkit(recording_path: Path, include_highres: bool) -> None: timestamp = f"{round(float(timestamp), 3):.3f}" camera_from_world_dict[timestamp] = camera_from_world - rr.log_view_coordinates("world", up="+Z", right_handed=True, timeless=True) + viewer.log_view_coordinates("world", up="+Z", right_handed=True, timeless=True) ply_path = recording_path / f"{recording_path.stem}_3dod_mesh.ply" print(f"Loading {ply_path}…") assert os.path.isfile(ply_path), f"Failed to find {ply_path}" mesh_ply = trimesh.load(str(ply_path)) - rr.log_mesh( + viewer.log_mesh( "world/mesh", positions=mesh_ply.vertices, indices=mesh_ply.faces, @@ -369,7 +369,7 @@ def log_arkit(recording_path: Path, include_highres: bool) -> None: print("Processing frames…") for frame_timestamp in tqdm(lowres_frame_ids): # frame_id is equivalent to timestamp - rr.set_time_seconds("time", float(frame_timestamp)) + viewer.set_time_seconds("time", float(frame_timestamp)) # load the lowres image and depth bgr = cv2.imread(f"{lowres_image_dir}/{video_id}_{frame_timestamp}.png") rgb = cv2.cvtColor(bgr, cv2.COLOR_BGR2RGB) @@ -390,12 +390,12 @@ def log_arkit(recording_path: Path, include_highres: bool) -> None: colors_list, ) - rr.log_image(f"{lowres_posed_entity_id}/rgb", rgb) - rr.log_depth_image(f"{lowres_posed_entity_id}/depth", depth, meter=1000) + viewer.log_image(f"{lowres_posed_entity_id}/rgb", rgb) + viewer.log_depth_image(f"{lowres_posed_entity_id}/depth", depth, meter=1000) # log the high res camera if high_res_exists: - rr.set_time_seconds("time high resolution", float(frame_timestamp)) + viewer.set_time_seconds("time high resolution", float(frame_timestamp)) # only low res camera has a trajectory, high res does not so need to find the closest low res frame id closest_lowres_frame_id = find_closest_frame_id(frame_timestamp, camera_from_world_dict) highres_intri_path = intrinsics_dir / f"{video_id}_{frame_timestamp}.pincam" @@ -414,8 +414,8 @@ def log_arkit(recording_path: Path, include_highres: bool) -> None: highres_depth = cv2.imread(f"{depth_dir}/{video_id}_{frame_timestamp}.png", cv2.IMREAD_ANYDEPTH) highres_rgb = cv2.cvtColor(highres_bgr, cv2.COLOR_BGR2RGB) - rr.log_image(f"{highres_entity_id}/rgb", highres_rgb) - rr.log_depth_image(f"{highres_entity_id}/depth", highres_depth, meter=1000) + viewer.log_image(f"{highres_entity_id}/rgb", highres_rgb) + viewer.log_depth_image(f"{highres_entity_id}/depth", highres_depth, meter=1000) def main() -> None: @@ -432,15 +432,15 @@ def main() -> None: action="store_true", help="Include the high resolution camera and depth images", ) - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "arkitscenes") + viewer.script_setup(args, "arkitscenes") recording_path = ensure_recording_available(args.video_id, args.include_highres) log_arkit(recording_path, args.include_highres) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/car/main.py b/examples/python/car/main.py index a86bf23c70ec..314d0bf9ed1d 100755 --- a/examples/python/car/main.py +++ b/examples/python/car/main.py @@ -8,7 +8,7 @@ import cv2 import numpy as np import numpy.typing as npt -import rerun as rr +import depthai_viewer as viewer def log_car_data() -> None: @@ -16,22 +16,22 @@ def log_car_data() -> None: NUM_FRAMES = 40 # Set our preferred up-axis on the space that we will log the points to: - rr.log_view_coordinates("world", up="-Y", timeless=True) + viewer.log_view_coordinates("world", up="-Y", timeless=True) for sample in generate_car_data(num_frames=NUM_FRAMES): # This will assign logged entities a timeline called `frame_nr`. # In the viewer you can select how to view entities - by frame_nr or the built-in `log_time`. - rr.set_time_sequence("frame_nr", sample.frame_idx) + viewer.set_time_sequence("frame_nr", sample.frame_idx) # Log the camera pose: - rr.log_rigid3( + viewer.log_rigid3( "world/camera", parent_from_child=(sample.camera.position, sample.camera.rotation_q), xyz="RDF", # X=Right, Y=Down, Z=Forward ) # Log the camera projection matrix: - rr.log_pinhole( + viewer.log_pinhole( "world/camera/image", child_from_parent=sample.camera.intrinsics, width=sample.camera.resolution[0], @@ -39,14 +39,14 @@ def log_car_data() -> None: ) # We log the rgb image to the image-space of the camera: - rr.log_image("world/camera/image/rgb", sample.rgb_image) + viewer.log_image("world/camera/image/rgb", sample.rgb_image) # Same with the bounding box: ((car_x, car_y), (car_w, car_h)) = sample.car_bbox - rr.log_rect("world/camera/image/bbox", [car_x, car_y, car_w, car_h], label="A car", color=(0, 128, 255)) + viewer.log_rect("world/camera/image/bbox", [car_x, car_y, car_w, car_h], label="A car", color=(0, 128, 255)) # The depth image is in millimeters, so we set meter=1000 - rr.log_depth_image("world/camera/image/depth", sample.depth_image_mm, meter=1000) + viewer.log_depth_image("world/camera/image/depth", sample.depth_image_mm, meter=1000) class DummyCar: @@ -254,13 +254,13 @@ def generate_car_data(num_frames: int) -> Iterator[SampleFrame]: def main() -> None: parser = argparse.ArgumentParser(description="Logs rich data using the Rerun SDK.") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "car") + viewer.script_setup(args, "car") log_car_data() - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/clock/main.py b/examples/python/clock/main.py index 4501a0ad23db..d708fb1fdfc1 100755 --- a/examples/python/clock/main.py +++ b/examples/python/clock/main.py @@ -11,7 +11,7 @@ from typing import Final, Tuple import numpy as np -import rerun as rr +import depthai_viewer as viewer LENGTH_S: Final = 20.0 LENGTH_M: Final = 10.0 @@ -30,9 +30,9 @@ def rotate(angle: float, len: float) -> Tuple[float, float, float]: 0.0, ) - rr.log_view_coordinates("world", up="+Y", timeless=True) + viewer.log_view_coordinates("world", up="+Y", timeless=True) - rr.log_obb( + viewer.log_obb( "world/frame", half_size=[LENGTH_S, LENGTH_S, 1.0], position=[0.0, 0.0, 0.0], @@ -43,25 +43,25 @@ def rotate(angle: float, len: float) -> Tuple[float, float, float]: for step in range(steps): t_secs = step - rr.set_time_seconds("sim_time", t_secs) + viewer.set_time_seconds("sim_time", t_secs) scaled_s = (t_secs % 60) / 60.0 point_s = np.array(rotate(math.tau * scaled_s, LENGTH_S)) color_s = (int(255 - (scaled_s * 255)), int(scaled_s * 255), 0, 128) - rr.log_point("world/seconds_pt", position=point_s, color=color_s) - rr.log_arrow("world/seconds_hand", origin=[0.0, 0.0, 0.0], vector=point_s, color=color_s, width_scale=WIDTH_S) + viewer.log_point("world/seconds_pt", position=point_s, color=color_s) + viewer.log_arrow("world/seconds_hand", origin=[0.0, 0.0, 0.0], vector=point_s, color=color_s, width_scale=WIDTH_S) scaled_m = (t_secs % 3600) / 3600.0 point_m = np.array(rotate(math.tau * scaled_m, LENGTH_M)) color_m = (int(255 - (scaled_m * 255)), int(scaled_m * 255), 128, 128) - rr.log_point("world/minutes_pt", position=point_m, color=color_m) - rr.log_arrow("world/minutes_hand", origin=[0.0, 0.0, 0.0], vector=point_m, color=color_m, width_scale=WIDTH_M) + viewer.log_point("world/minutes_pt", position=point_m, color=color_m) + viewer.log_arrow("world/minutes_hand", origin=[0.0, 0.0, 0.0], vector=point_m, color=color_m, width_scale=WIDTH_M) scaled_h = (t_secs % 43200) / 43200.0 point_h = np.array(rotate(math.tau * scaled_h, LENGTH_H)) color_h = (int(255 - (scaled_h * 255)), int(scaled_h * 255), 255, 255) - rr.log_point("world/hours_pt", position=point_h, color=color_h) - rr.log_arrow("world/hours_hand", origin=[0.0, 0.0, 0.0], vector=point_h, color=color_h, width_scale=WIDTH_M) + viewer.log_point("world/hours_pt", position=point_h, color=color_h) + viewer.log_arrow("world/hours_hand", origin=[0.0, 0.0, 0.0], vector=point_h, color=color_h, width_scale=WIDTH_M) if __name__ == "__main__": @@ -69,10 +69,10 @@ def rotate(angle: float, len: float) -> Tuple[float, float, float]: description="An example visualizing an analog clock is built with Rerun Arrow3D primitives." ) parser.add_argument("--steps", type=int, default=10_000, help="The number of time steps to log") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "clock") + viewer.script_setup(args, "clock") log_clock(args.steps) - rr.script_teardown(args) + viewer.script_teardown(args) diff --git a/examples/python/colmap/main.py b/examples/python/colmap/main.py index 832d68f89346..b1d2b6fe6565 100755 --- a/examples/python/colmap/main.py +++ b/examples/python/colmap/main.py @@ -12,7 +12,7 @@ import numpy as np import numpy.typing as npt import requests -import rerun as rr +import depthai_viewer as viewer from read_write_model import Camera, read_model from tqdm import tqdm @@ -99,7 +99,7 @@ def read_and_log_sparse_reconstruction( # Filter out noisy points points3D = {id: point for id, point in points3D.items() if point.rgb.any() and len(point.image_ids) > 4} - rr.log_view_coordinates("/", up="-Y", timeless=True) + viewer.log_view_coordinates("/", up="-Y", timeless=True) # Iterate through images (video frames) logging data related to each frame. for image in sorted(images.values(), key=lambda im: im.name): # type: ignore[no-any-return] @@ -134,24 +134,24 @@ def read_and_log_sparse_reconstruction( if resize: visible_xys *= scale_factor - rr.set_time_sequence("frame", frame_idx) + viewer.set_time_sequence("frame", frame_idx) points = [point.xyz for point in visible_xyzs] point_colors = [point.rgb for point in visible_xyzs] point_errors = [point.error for point in visible_xyzs] - rr.log_scalar("plot/avg_reproj_err", np.mean(point_errors), color=[240, 45, 58]) + viewer.log_scalar("plot/avg_reproj_err", np.mean(point_errors), color=[240, 45, 58]) - rr.log_points("points", points, colors=point_colors, ext={"error": point_errors}) + viewer.log_points("points", points, colors=point_colors, ext={"error": point_errors}) - rr.log_rigid3( + viewer.log_rigid3( "camera", child_from_parent=camera_from_world, xyz="RDF", # X=Right, Y=Down, Z=Forward ) # Log camera intrinsics - rr.log_pinhole( + viewer.log_pinhole( "camera/image", child_from_parent=intrinsics, width=camera.width, @@ -163,11 +163,11 @@ def read_and_log_sparse_reconstruction( img = cv2.resize(img, resize) jpeg_quality = [int(cv2.IMWRITE_JPEG_QUALITY), 75] _, encimg = cv2.imencode(".jpg", img, jpeg_quality) - rr.log_image_file("camera/image", img_bytes=encimg) + viewer.log_image_file("camera/image", img_bytes=encimg) else: - rr.log_image_file("camera/image", img_path=dataset_path / "images" / image.name) + viewer.log_image_file("camera/image", img_path=dataset_path / "images" / image.name) - rr.log_points("camera/image/keypoints", visible_xys, colors=[34, 138, 167]) + viewer.log_points("camera/image/keypoints", visible_xys, colors=[34, 138, 167]) def main() -> None: @@ -181,17 +181,17 @@ def main() -> None: help="Which dataset to download", ) parser.add_argument("--resize", action="store", help="Target resolution to resize images") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] if args.resize: args.resize = tuple(int(x) for x in args.resize.split("x")) - rr.script_setup(args, "colmap") + viewer.script_setup(args, "colmap") dataset_path = get_downloaded_dataset_path(args.dataset) read_and_log_sparse_reconstruction(dataset_path, filter_output=not args.unfiltered, resize=args.resize) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/deep_sdf/main.py b/examples/python/deep_sdf/main.py index 94a3fea77595..c859117a4fbe 100755 --- a/examples/python/deep_sdf/main.py +++ b/examples/python/deep_sdf/main.py @@ -37,7 +37,7 @@ import mesh_to_sdf import numpy as np import numpy.typing as npt -import rerun as rr +import depthai_viewer as viewer import trimesh from download_dataset import AVAILABLE_MESHES, ensure_mesh_downloaded from trimesh import Trimesh @@ -53,7 +53,7 @@ def wrapper(*args, **kwargs): # type: ignore[no-untyped-def] now = timer() result = func(*args, **kwargs) elapsed_ms = (timer() - now) * 1_000.0 - rr.log_text_entry(objpath, f"execution took {elapsed_ms:.1f}ms", level=level) + viewer.log_text_entry(objpath, f"execution took {elapsed_ms:.1f}ms", level=level) return result return wrapper @@ -62,13 +62,13 @@ def wrapper(*args, **kwargs): # type: ignore[no-untyped-def] # TODO(cmc): This really should be the job of the SDK. -def get_mesh_format(mesh: Trimesh) -> rr.MeshFormat: +def get_mesh_format(mesh: Trimesh) -> viewer.MeshFormat: ext = Path(mesh.metadata["file_name"]).suffix.lower() try: return { - ".glb": rr.MeshFormat.GLB, + ".glb": viewer.MeshFormat.GLB, # ".gltf": MeshFormat.GLTF, - ".obj": rr.MeshFormat.OBJ, + ".obj": viewer.MeshFormat.OBJ, }[ext] except Exception: raise ValueError(f"unknown file extension: {ext}") @@ -80,21 +80,21 @@ def read_mesh(path: Path) -> Trimesh: return cast(Trimesh, mesh) -@log_timing_decorator("global/voxel_sdf", rr.LogLevel.DEBUG) # type: ignore[misc] +@log_timing_decorator("global/voxel_sdf", viewer.LogLevel.DEBUG) # type: ignore[misc] def compute_voxel_sdf(mesh: Trimesh, resolution: int) -> npt.NDArray[np.float32]: print("computing voxel-based SDF") voxvol = np.array(mesh_to_sdf.mesh_to_voxels(mesh, voxel_resolution=resolution), dtype=np.float32) return voxvol -@log_timing_decorator("global/sample_sdf", rr.LogLevel.DEBUG) # type: ignore[misc] +@log_timing_decorator("global/sample_sdf", viewer.LogLevel.DEBUG) # type: ignore[misc] def compute_sample_sdf(mesh: Trimesh, num_points: int) -> Tuple[npt.NDArray[np.float32], npt.NDArray[np.float32]]: print("computing sample-based SDF") points, sdf, _ = mesh_to_sdf.sample_sdf_near_surface(mesh, number_of_points=num_points, return_gradients=True) return (points, sdf) -@log_timing_decorator("global/log_mesh", rr.LogLevel.DEBUG) # type: ignore[misc] +@log_timing_decorator("global/log_mesh", viewer.LogLevel.DEBUG) # type: ignore[misc] def log_mesh(path: Path, mesh: Trimesh) -> None: # Internally, `mesh_to_sdf` will normalize everything to a unit sphere centered around the # center of mass. @@ -107,7 +107,7 @@ def log_mesh(path: Path, mesh: Trimesh) -> None: with open(path, mode="rb") as file: scale = bs2.scale / bs1.scale center = bs2.center - bs1.center * scale - rr.log_mesh_file( + viewer.log_mesh_file( "world/mesh", mesh_format, file.read(), @@ -116,27 +116,27 @@ def log_mesh(path: Path, mesh: Trimesh) -> None: def log_sampled_sdf(points: npt.NDArray[np.float32], sdf: npt.NDArray[np.float32]) -> None: - # rr.log_view_coordinates("world", up="+Y", timeless=True # TODO(cmc): depends on the mesh really - rr.log_annotation_context("world/sdf", [(0, "inside", (255, 0, 0)), (1, "outside", (0, 255, 0))], timeless=False) - rr.log_points("world/sdf/points", points, class_ids=np.array(sdf > 0, dtype=np.uint8)) + # viewer.log_view_coordinates("world", up="+Y", timeless=True # TODO(cmc): depends on the mesh really + viewer.log_annotation_context("world/sdf", [(0, "inside", (255, 0, 0)), (1, "outside", (0, 255, 0))], timeless=False) + viewer.log_points("world/sdf/points", points, class_ids=np.array(sdf > 0, dtype=np.uint8)) outside = points[sdf > 0] - rr.log_text_entry( + viewer.log_text_entry( "world/sdf/inside/logs", f"{len(points) - len(outside)} points inside ({len(points)} total)", - level=rr.LogLevel.TRACE, + level=viewer.LogLevel.TRACE, ) - rr.log_text_entry( - "world/sdf/outside/logs", f"{len(outside)} points outside ({len(points)} total)", level=rr.LogLevel.TRACE + viewer.log_text_entry( + "world/sdf/outside/logs", f"{len(outside)} points outside ({len(points)} total)", level=viewer.LogLevel.TRACE ) def log_volumetric_sdf(voxvol: npt.NDArray[np.float32]) -> None: names = ["width", "height", "depth"] - rr.log_tensor("tensor", voxvol, names=names) + viewer.log_tensor("tensor", voxvol, names=names) -@log_timing_decorator("global/log_mesh", rr.LogLevel.DEBUG) # type: ignore[misc] +@log_timing_decorator("global/log_mesh", viewer.LogLevel.DEBUG) # type: ignore[misc] def compute_and_log_volumetric_sdf(mesh_path: Path, mesh: Trimesh, resolution: int) -> None: os.makedirs(CACHE_DIR, exist_ok=True) basename = os.path.basename(mesh_path) @@ -144,7 +144,7 @@ def compute_and_log_volumetric_sdf(mesh_path: Path, mesh: Trimesh, resolution: i try: with open(voxvol_path, "rb") as f: voxvol = np.load(voxvol_path) - rr.log_text_entry("global", "loading volumetric SDF from cache") + viewer.log_text_entry("global", "loading volumetric SDF from cache") except Exception: voxvol = compute_voxel_sdf(mesh, resolution) @@ -152,10 +152,10 @@ def compute_and_log_volumetric_sdf(mesh_path: Path, mesh: Trimesh, resolution: i with open(voxvol_path, "wb+") as f: np.save(f, voxvol) - rr.log_text_entry("global", "writing volumetric SDF to cache", level=rr.LogLevel.DEBUG) + viewer.log_text_entry("global", "writing volumetric SDF to cache", level=viewer.LogLevel.DEBUG) -@log_timing_decorator("global/log_mesh", rr.LogLevel.DEBUG) # type: ignore[misc] +@log_timing_decorator("global/log_mesh", viewer.LogLevel.DEBUG) # type: ignore[misc] def compute_and_log_sample_sdf(mesh_path: Path, mesh: Trimesh, num_points: int) -> None: basename = os.path.basename(mesh_path) points_path = f"{CACHE_DIR}/{basename}.points.{num_points}.npy" @@ -165,10 +165,10 @@ def compute_and_log_sample_sdf(mesh_path: Path, mesh: Trimesh, num_points: int) try: with open(sdf_path, "rb") as f: sdf = np.load(sdf_path) - rr.log_text_entry("global", "loading sampled SDF from cache") + viewer.log_text_entry("global", "loading sampled SDF from cache") with open(points_path, "rb") as f: points = np.load(points_path) - rr.log_text_entry("global", "loading point cloud from cache") + viewer.log_text_entry("global", "loading point cloud from cache") except Exception: (points, sdf) = compute_sample_sdf(mesh, num_points) @@ -177,10 +177,10 @@ def compute_and_log_sample_sdf(mesh_path: Path, mesh: Trimesh, num_points: int) with open(points_path, "wb+") as f: np.save(f, points) - rr.log_text_entry("global", "writing sampled SDF to cache", level=rr.LogLevel.DEBUG) + viewer.log_text_entry("global", "writing sampled SDF to cache", level=viewer.LogLevel.DEBUG) with open(sdf_path, "wb+") as f: np.save(f, sdf) - rr.log_text_entry("global", "writing point cloud to cache", level=rr.LogLevel.DEBUG) + viewer.log_text_entry("global", "writing point cloud to cache", level=viewer.LogLevel.DEBUG) def main() -> None: @@ -203,11 +203,11 @@ def main() -> None: type=Path, help="Path to a mesh to analyze. If set, overrides the `--mesh` argument.", ) - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "deep_sdf") + viewer.script_setup(args, "deep_sdf") mesh_path = args.mesh_path if mesh_path is None: @@ -218,7 +218,7 @@ def main() -> None: compute_and_log_volumetric_sdf(mesh_path, mesh, args.resolution) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/dicom/main.py b/examples/python/dicom/main.py index 892b43b39434..bbde82eaf261 100755 --- a/examples/python/dicom/main.py +++ b/examples/python/dicom/main.py @@ -20,7 +20,7 @@ import numpy.typing as npt import pydicom as dicom import requests -import rerun as rr +import depthai_viewer as viewer DATASET_DIR: Final = Path(os.path.dirname(__file__)) / "dataset" DATASET_URL: Final = "https://storage.googleapis.com/rerun-example-datasets/dicom.zip" @@ -51,7 +51,7 @@ def read_and_log_dicom_dataset(dicom_files: Iterable[Path]) -> None: # the data is i16, but in range [0, 536]. voxels_volume_u16: npt.NDArray[np.uint16] = np.require(voxels_volume, np.uint16) - rr.log_tensor( + viewer.log_tensor( "tensor", voxels_volume_u16, names=["right", "back", "up"], @@ -73,10 +73,10 @@ def ensure_dataset_downloaded() -> Iterable[Path]: if __name__ == "__main__": parser = argparse.ArgumentParser(description="Logs rich data using the Rerun SDK.") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "dicom") + viewer.script_setup(args, "dicom") dicom_files = ensure_dataset_downloaded() read_and_log_dicom_dataset(dicom_files) - rr.script_teardown(args) + viewer.script_teardown(args) diff --git a/examples/python/dna/main.py b/examples/python/dna/main.py index a2d6603fc7bf..7a3101c34b66 100755 --- a/examples/python/dna/main.py +++ b/examples/python/dna/main.py @@ -9,7 +9,7 @@ from math import tau import numpy as np -import rerun as rr +import depthai_viewer as viewer from rerun_demo.data import build_color_spiral from rerun_demo.util import bounce_lerp, interleave from scipy.spatial.transform import Rotation @@ -17,33 +17,33 @@ _, unknown = __import__("argparse").ArgumentParser().parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] -rr.init("DNA Abacus") +viewer.init("DNA Abacus") -rr.spawn() -rr.set_time_seconds("stable_time", 0) +viewer.spawn() +viewer.set_time_seconds("stable_time", 0) NUM_POINTS = 100 # points and colors are both np.array((NUM_POINTS, 3)) points1, colors1 = build_color_spiral(NUM_POINTS) points2, colors2 = build_color_spiral(NUM_POINTS, angular_offset=tau * 0.5) -rr.log_points("dna/structure/left", points1, colors=colors1, radii=0.08) -rr.log_points("dna/structure/right", points2, colors=colors2, radii=0.08) +viewer.log_points("dna/structure/left", points1, colors=colors1, radii=0.08) +viewer.log_points("dna/structure/right", points2, colors=colors2, radii=0.08) points = interleave(points1, points2) -rr.log_line_segments("dna/structure/scaffolding", points, color=[128, 128, 128]) +viewer.log_line_segments("dna/structure/scaffolding", points, color=[128, 128, 128]) time_offsets = np.random.rand(NUM_POINTS) for i in range(400): time = i * 0.01 - rr.set_time_seconds("stable_time", time) + viewer.set_time_seconds("stable_time", time) times = np.repeat(time, NUM_POINTS) + time_offsets beads = [bounce_lerp(points1[n], points2[n], times[n]) for n in range(NUM_POINTS)] colors = [[int(bounce_lerp(80, 230, times[n] * 2))] for n in range(NUM_POINTS)] - rr.log_points("dna/structure/scaffolding/beads", beads, radii=0.06, colors=np.repeat(colors, 3, axis=-1)) + viewer.log_points("dna/structure/scaffolding/beads", beads, radii=0.06, colors=np.repeat(colors, 3, axis=-1)) - rr.log_rigid3( + viewer.log_rigid3( "dna/structure", parent_from_child=( [0, 0, 0], diff --git a/examples/python/minimal/main.py b/examples/python/minimal/main.py index 92e45a01b000..e8a975adaea7 100755 --- a/examples/python/minimal/main.py +++ b/examples/python/minimal/main.py @@ -4,14 +4,14 @@ import numpy as np -import rerun as rr +import depthai_viewer as viewer _, unknown = __import__("argparse").ArgumentParser().parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] -rr.spawn() +viewer.spawn() positions = np.vstack([xyz.ravel() for xyz in np.mgrid[3 * [slice(-5, 5, 10j)]]]).T colors = np.vstack([rgb.ravel() for rgb in np.mgrid[3 * [slice(0, 255, 10j)]]]).astype(np.uint8).T -rr.log_points("my_points", positions=positions, colors=colors) +viewer.log_points("my_points", positions=positions, colors=colors) diff --git a/examples/python/mp_pose/main.py b/examples/python/mp_pose/main.py index 89de0eb97f59..8ac874372b27 100755 --- a/examples/python/mp_pose/main.py +++ b/examples/python/mp_pose/main.py @@ -13,7 +13,7 @@ import numpy as np import numpy.typing as npt import requests -import rerun as rr +import depthai_viewer as viewer EXAMPLE_DIR: Final = Path(os.path.dirname(__file__)) DATASET_DIR: Final = EXAMPLE_DIR / "dataset" / "pose_movement" @@ -23,39 +23,39 @@ def track_pose(video_path: str, segment: bool) -> None: mp_pose = mp.solutions.pose - rr.log_annotation_context( + viewer.log_annotation_context( "/", - rr.ClassDescription( - info=rr.AnnotationInfo(label="Person"), - keypoint_annotations=[rr.AnnotationInfo(id=lm.value, label=lm.name) for lm in mp_pose.PoseLandmark], + viewer.ClassDescription( + info=viewer.AnnotationInfo(label="Person"), + keypoint_annotations=[viewer.AnnotationInfo(id=lm.value, label=lm.name) for lm in mp_pose.PoseLandmark], keypoint_connections=mp_pose.POSE_CONNECTIONS, ), ) # Use a separate annotation context for the segmentation mask. - rr.log_annotation_context( + viewer.log_annotation_context( "video/mask", - [rr.AnnotationInfo(id=0, label="Background"), rr.AnnotationInfo(id=1, label="Person", color=(0, 0, 0))], + [viewer.AnnotationInfo(id=0, label="Background"), viewer.AnnotationInfo(id=1, label="Person", color=(0, 0, 0))], ) - rr.log_view_coordinates("person", up="-Y", timeless=True) + viewer.log_view_coordinates("person", up="-Y", timeless=True) with closing(VideoSource(video_path)) as video_source, mp_pose.Pose(enable_segmentation=segment) as pose: for bgr_frame in video_source.stream_bgr(): rgb = cv.cvtColor(bgr_frame.data, cv.COLOR_BGR2RGB) - rr.set_time_seconds("time", bgr_frame.time) - rr.set_time_sequence("frame_idx", bgr_frame.idx) - rr.log_image("video/rgb", rgb) + viewer.set_time_seconds("time", bgr_frame.time) + viewer.set_time_sequence("frame_idx", bgr_frame.idx) + viewer.log_image("video/rgb", rgb) results = pose.process(rgb) h, w, _ = rgb.shape landmark_positions_2d = read_landmark_positions_2d(results, w, h) - rr.log_points("video/pose/points", landmark_positions_2d, keypoint_ids=mp_pose.PoseLandmark) + viewer.log_points("video/pose/points", landmark_positions_2d, keypoint_ids=mp_pose.PoseLandmark) landmark_positions_3d = read_landmark_positions_3d(results) - rr.log_points("person/pose/points", landmark_positions_3d, keypoint_ids=mp_pose.PoseLandmark) + viewer.log_points("person/pose/points", landmark_positions_3d, keypoint_ids=mp_pose.PoseLandmark) segmentation_mask = results.segmentation_mask if segmentation_mask is not None: - rr.log_segmentation_image("video/mask", segmentation_mask) + viewer.log_segmentation_image("video/mask", segmentation_mask) def read_landmark_positions_2d( @@ -148,11 +148,11 @@ def main() -> None: parser.add_argument("--dataset_dir", type=Path, default=DATASET_DIR, help="Directory to save example videos to.") parser.add_argument("--video_path", type=str, default="", help="Full path to video to run on. Overrides `--video`.") parser.add_argument("--no-segment", action="store_true", help="Don't run person segmentation.") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "mp_pose") + viewer.script_setup(args, "mp_pose") video_path = args.video_path # type: str if not video_path: @@ -160,7 +160,7 @@ def main() -> None: track_pose(video_path, segment=not args.no_segment) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/multiprocessing/main.py b/examples/python/multiprocessing/main.py index 4c849bdbf8b0..f007627e0baf 100755 --- a/examples/python/multiprocessing/main.py +++ b/examples/python/multiprocessing/main.py @@ -7,20 +7,20 @@ import os import threading -import rerun as rr +import depthai_viewer as viewer def task(title: str) -> None: # All processes spawned with `multiprocessing` will automatically # be assigned the same default recording_id. # We just need to connect each process to the the rerun viewer: - rr.connect() + viewer.connect() - rr.log_text_entry( + viewer.log_text_entry( "log", - text=f"Logging from pid={os.getpid()}, thread={threading.get_ident()} using the rerun recording id {rr.get_recording_id()}", # noqa: E501 line too long + text=f"Logging from pid={os.getpid()}, thread={threading.get_ident()} using the rerun recording id {viewer.get_recording_id()}", # noqa: E501 line too long ) - rr.log_rect(title, [10, 20, 30, 40], label=title) + viewer.log_rect(title, [10, 20, 30, 40], label=title) def main() -> None: @@ -28,8 +28,8 @@ def main() -> None: args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.init("multiprocessing") - rr.spawn(connect=False) # this is the viewer that each process will connect to + viewer.init("multiprocessing") + viewer.spawn(connect=False) # this is the viewer that each process will connect to task("main_task") diff --git a/examples/python/multithreading/main.py b/examples/python/multithreading/main.py index 61244e1722b3..8102112b4b42 100755 --- a/examples/python/multithreading/main.py +++ b/examples/python/multithreading/main.py @@ -8,7 +8,7 @@ import numpy as np import numpy.typing as npt -import rerun as rr +import depthai_viewer as viewer def rect_logger(path: str, color: npt.NDArray[np.float32]) -> None: @@ -16,16 +16,16 @@ def rect_logger(path: str, color: npt.NDArray[np.float32]) -> None: rects_xy = np.random.rand(5, 2) * 1024 rects_wh = np.random.rand(5, 2) * (1024 - rects_xy + 1) rects = np.hstack((rects_xy, rects_wh)) - rr.log_rects(path, rects, colors=color, rect_format=rr.RectFormat.XYWH) + viewer.log_rects(path, rects, colors=color, rect_format=viewer.RectFormat.XYWH) def main() -> None: parser = argparse.ArgumentParser(description="Logs rich data using the Rerun SDK.") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "multithreading") + viewer.script_setup(args, "multithreading") threads = [] for i in range(10): @@ -38,7 +38,7 @@ def main() -> None: for t in threads: t.join() - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/notebook/README.md b/examples/python/notebook/README.md index c06eb6293921..a7b7ac56e514 100644 --- a/examples/python/notebook/README.md +++ b/examples/python/notebook/README.md @@ -7,7 +7,7 @@ or [VSCode](https://code.visualstudio.com/blogs/2021/08/05/notebooks). In order to show a rerun viewer inline within the notebook you need to use a special in-memory recording: ``` -rec = rr.memory_recording() +rec = viewer.memory_recording() ``` After creating this recording all the normal rerun commands will work as expected and log diff --git a/examples/python/notebook/cube.ipynb b/examples/python/notebook/cube.ipynb index ba5f4d9585b7..b9d47a7ddf57 100644 --- a/examples/python/notebook/cube.ipynb +++ b/examples/python/notebook/cube.ipynb @@ -1,272 +1,272 @@ { - "cells": [ - { - "cell_type": "markdown", - "id": "b31c0a84", - "metadata": {}, - "source": [ - "## Rerun imports and initialization" - ] + "cells": [ + { + "cell_type": "markdown", + "id": "b31c0a84", + "metadata": {}, + "source": [ + "## Rerun imports and initialization" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1076c3a0", + "metadata": {}, + "outputs": [], + "source": [ + "from collections import namedtuple\n", + "from math import cos, sin, tau\n", + "import math\n", + "\n", + "import numpy as np\n", + "\n", + "import rerun as rr\n", + "\n", + "viewer.init(\"cube\")" + ] + }, + { + "cell_type": "markdown", + "id": "f3c194db", + "metadata": {}, + "source": [ + "## Optional: start a local web-viewer server\n", + "\n", + "By default, Rerun will use a copy of the viewer hosted at [https://app.rerun.io](https://app.rerun.io).\n", + "This is generally preferable as it will work more seamlessly even if you\n", + "are connected to a notebook instance on a remote machine. However there\n", + "are some cases where this won't work such as running from source, or\n", + "using your notebook in an offline environment.\n", + "\n", + "In these cases you can start a local viewer server by uncommenting the following\n", + "line:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "63f80605", + "metadata": {}, + "outputs": [], + "source": [ + "# viewer.start_web_viewer_server()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "bf894a1f", + "metadata": {}, + "source": [ + "## Helper to create the colored cube\n", + "\n", + "This is the same as the color cube demo from `rerun -m rerun_demo`, but the code\n", + "is repeated here for context." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f709925e", + "metadata": {}, + "outputs": [], + "source": [ + "ColorGrid = namedtuple(\"ColorGrid\", [\"positions\", \"colors\"])\n", + "\n", + "\n", + "def build_color_grid(x_count=10, y_count=10, z_count=10, twist=0):\n", + " \"\"\"\n", + " Create a cube of points with colors.\n", + "\n", + " The total point cloud will have x_count * y_count * z_count points.\n", + "\n", + " Parameters\n", + " ----------\n", + " x_count, y_count, z_count:\n", + " Number of points in each dimension.\n", + " twist:\n", + " Angle to twist from bottom to top of the cube\n", + "\n", + " \"\"\"\n", + "\n", + " grid = np.mgrid[\n", + " slice(-10, 10, x_count * 1j),\n", + " slice(-10, 10, y_count * 1j),\n", + " slice(-10, 10, z_count * 1j),\n", + " ]\n", + "\n", + " angle = np.linspace(-float(twist) / 2, float(twist) / 2, z_count)\n", + " for z in range(z_count):\n", + " xv, yv, zv = grid[:, :, :, z]\n", + " rot_xv = xv * cos(angle[z]) - yv * sin(angle[z])\n", + " rot_yv = xv * sin(angle[z]) + yv * cos(angle[z])\n", + " grid[:, :, :, z] = [rot_xv, rot_yv, zv]\n", + "\n", + " positions = np.vstack([xyz.ravel() for xyz in grid])\n", + "\n", + " colors = np.vstack(\n", + " [\n", + " xyz.ravel()\n", + " for xyz in np.mgrid[\n", + " slice(0, 255, x_count * 1j),\n", + " slice(0, 255, y_count * 1j),\n", + " slice(0, 255, z_count * 1j),\n", + " ]\n", + " ]\n", + " )\n", + "\n", + " return ColorGrid(positions.T, colors.T.astype(np.uint8))" + ] + }, + { + "cell_type": "markdown", + "id": "b9a75269", + "metadata": {}, + "source": [ + "## Start a new recording\n", + "\n", + "To start a new recording all you need to do is call viewer.memory_recording()." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4e1caf9", + "metadata": {}, + "outputs": [], + "source": [ + "rec = viewer.memory_recording()" + ] + }, + { + "cell_type": "markdown", + "id": "6e4f945b", + "metadata": {}, + "source": [ + "## Showing the recording\n", + "\n", + "At any point you can show this recording by returning it as the last item in the cell.\n", + "In this case the recording simply does not have any data in it yet." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d586d222", + "metadata": {}, + "outputs": [], + "source": [ + "rec" + ] + }, + { + "cell_type": "markdown", + "id": "04c095ef", + "metadata": {}, + "source": [ + "## Logging some data\n", + "\n", + "Now we can create some data and add it to the recording before we show it again." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "92871ea1", + "metadata": {}, + "outputs": [], + "source": [ + "STEPS = 100\n", + "twists = math.pi * np.sin(np.linspace(0, math.tau, STEPS)) / 4\n", + "for t in range(STEPS):\n", + " viewer.set_time_sequence(\"step\", t)\n", + " cube = build_color_grid(10, 10, 10, twist=twists[t])\n", + " viewer.log_points(\"cube\", positions=cube.positions, colors=cube.colors, radii=0.5)\n", + "\n", + "rec" + ] + }, + { + "cell_type": "markdown", + "id": "31d392a8", + "metadata": {}, + "source": [ + "## Adjusting the view\n", + "\n", + "The recording also as a `show` method that lets you adjust properties such as width and height.\n", + "In the future this will support additional blueprint and layout options." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a1b0f66-4287-4705-8be5-ae837ffe3f90", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "rec.show(width=400, height=400)" + ] + }, + { + "cell_type": "markdown", + "id": "36f9f61b", + "metadata": {}, + "source": [ + "## Stating a new recording\n", + "\n", + "You can always start another recording by calling `viewer.memory_recording()` again." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4cc33fd", + "metadata": {}, + "outputs": [], + "source": [ + "rec2 = viewer.memory_recording()\n", + "\n", + "STEPS = 1\n", + "twists = math.pi * np.sin(np.linspace(0, math.tau, STEPS)) / 4\n", + "for t in range(STEPS):\n", + " viewer.set_time_sequence(\"step\", t)\n", + " cube = build_color_grid(50, 50, 50, twist=twists[t])\n", + " viewer.log_points(\"cube\", positions=cube.positions, colors=cube.colors, radii=0.5)\n", + "\n", + "rec2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb8f7701", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.7" + } }, - { - "cell_type": "code", - "execution_count": null, - "id": "1076c3a0", - "metadata": {}, - "outputs": [], - "source": [ - "from collections import namedtuple\n", - "from math import cos, sin, tau\n", - "import math\n", - "\n", - "import numpy as np\n", - "\n", - "import rerun as rr\n", - "\n", - "rr.init(\"cube\")" - ] - }, - { - "cell_type": "markdown", - "id": "f3c194db", - "metadata": {}, - "source": [ - "## Optional: start a local web-viewer server\n", - "\n", - "By default, Rerun will use a copy of the viewer hosted at [https://app.rerun.io](https://app.rerun.io).\n", - "This is generally preferable as it will work more seamlessly even if you\n", - "are connected to a notebook instance on a remote machine. However there\n", - "are some cases where this won't work such as running from source, or\n", - "using your notebook in an offline environment.\n", - "\n", - "In these cases you can start a local viewer server by uncommenting the following\n", - "line:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "63f80605", - "metadata": {}, - "outputs": [], - "source": [ - "# rr.start_web_viewer_server()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "bf894a1f", - "metadata": {}, - "source": [ - "## Helper to create the colored cube\n", - "\n", - "This is the same as the color cube demo from `rerun -m rerun_demo`, but the code\n", - "is repeated here for context." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f709925e", - "metadata": {}, - "outputs": [], - "source": [ - "ColorGrid = namedtuple(\"ColorGrid\", [\"positions\", \"colors\"])\n", - "\n", - "\n", - "def build_color_grid(x_count=10, y_count=10, z_count=10, twist=0):\n", - " \"\"\"\n", - " Create a cube of points with colors.\n", - "\n", - " The total point cloud will have x_count * y_count * z_count points.\n", - "\n", - " Parameters\n", - " ----------\n", - " x_count, y_count, z_count:\n", - " Number of points in each dimension.\n", - " twist:\n", - " Angle to twist from bottom to top of the cube\n", - "\n", - " \"\"\"\n", - "\n", - " grid = np.mgrid[\n", - " slice(-10, 10, x_count * 1j),\n", - " slice(-10, 10, y_count * 1j),\n", - " slice(-10, 10, z_count * 1j),\n", - " ]\n", - "\n", - " angle = np.linspace(-float(twist) / 2, float(twist) / 2, z_count)\n", - " for z in range(z_count):\n", - " xv, yv, zv = grid[:, :, :, z]\n", - " rot_xv = xv * cos(angle[z]) - yv * sin(angle[z])\n", - " rot_yv = xv * sin(angle[z]) + yv * cos(angle[z])\n", - " grid[:, :, :, z] = [rot_xv, rot_yv, zv]\n", - "\n", - " positions = np.vstack([xyz.ravel() for xyz in grid])\n", - "\n", - " colors = np.vstack(\n", - " [\n", - " xyz.ravel()\n", - " for xyz in np.mgrid[\n", - " slice(0, 255, x_count * 1j),\n", - " slice(0, 255, y_count * 1j),\n", - " slice(0, 255, z_count * 1j),\n", - " ]\n", - " ]\n", - " )\n", - "\n", - " return ColorGrid(positions.T, colors.T.astype(np.uint8))" - ] - }, - { - "cell_type": "markdown", - "id": "b9a75269", - "metadata": {}, - "source": [ - "## Start a new recording\n", - "\n", - "To start a new recording all you need to do is call rr.memory_recording()." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f4e1caf9", - "metadata": {}, - "outputs": [], - "source": [ - "rec = rr.memory_recording()" - ] - }, - { - "cell_type": "markdown", - "id": "6e4f945b", - "metadata": {}, - "source": [ - "## Showing the recording\n", - "\n", - "At any point you can show this recording by returning it as the last item in the cell.\n", - "In this case the recording simply does not have any data in it yet." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d586d222", - "metadata": {}, - "outputs": [], - "source": [ - "rec" - ] - }, - { - "cell_type": "markdown", - "id": "04c095ef", - "metadata": {}, - "source": [ - "## Logging some data\n", - "\n", - "Now we can create some data and add it to the recording before we show it again." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "92871ea1", - "metadata": {}, - "outputs": [], - "source": [ - "STEPS = 100\n", - "twists = math.pi * np.sin(np.linspace(0, math.tau, STEPS)) / 4\n", - "for t in range(STEPS):\n", - " rr.set_time_sequence(\"step\", t)\n", - " cube = build_color_grid(10, 10, 10, twist=twists[t])\n", - " rr.log_points(\"cube\", positions=cube.positions, colors=cube.colors, radii=0.5)\n", - "\n", - "rec" - ] - }, - { - "cell_type": "markdown", - "id": "31d392a8", - "metadata": {}, - "source": [ - "## Adjusting the view\n", - "\n", - "The recording also as a `show` method that lets you adjust properties such as width and height.\n", - "In the future this will support additional blueprint and layout options." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1a1b0f66-4287-4705-8be5-ae837ffe3f90", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "rec.show(width=400, height=400)" - ] - }, - { - "cell_type": "markdown", - "id": "36f9f61b", - "metadata": {}, - "source": [ - "## Stating a new recording\n", - "\n", - "You can always start another recording by calling `rr.memory_recording()` again." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c4cc33fd", - "metadata": {}, - "outputs": [], - "source": [ - "rec2 = rr.memory_recording()\n", - "\n", - "STEPS = 1\n", - "twists = math.pi * np.sin(np.linspace(0, math.tau, STEPS)) / 4\n", - "for t in range(STEPS):\n", - " rr.set_time_sequence(\"step\", t)\n", - " cube = build_color_grid(50, 50, 50, twist=twists[t])\n", - " rr.log_points(\"cube\", positions=cube.positions, colors=cube.colors, radii=0.5)\n", - "\n", - "rec2" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "eb8f7701", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 + "nbformat": 4, + "nbformat_minor": 5 } diff --git a/examples/python/nyud/main.py b/examples/python/nyud/main.py index f35cbab3c523..127929d3d13b 100755 --- a/examples/python/nyud/main.py +++ b/examples/python/nyud/main.py @@ -16,7 +16,7 @@ import numpy as np import numpy.typing as npt import requests -import rerun as rr +import depthai_viewer as viewer from tqdm import tqdm DEPTH_IMAGE_SCALING: Final = 1e4 @@ -61,7 +61,7 @@ def read_image(buf: bytes) -> npt.NDArray[np.uint8]: def log_nyud_data(recording_path: Path, subset_idx: int = 0) -> None: - rr.log_view_coordinates("world", up="-Y", timeless=True) + viewer.log_view_coordinates("world", up="-Y", timeless=True) with zipfile.ZipFile(recording_path, "r") as archive: archive_dirs = [f.filename for f in archive.filelist if f.is_dir()] @@ -78,12 +78,12 @@ def log_nyud_data(recording_path: Path, subset_idx: int = 0) -> None: files_with_timestamps.sort(key=lambda t: t[0]) for time, f in files_with_timestamps: - rr.set_time_seconds("time", time.timestamp()) + viewer.set_time_seconds("time", time.timestamp()) if f.filename.endswith(".ppm"): buf = archive.read(f) img_rgb = read_image_rgb(buf) - rr.log_image("world/camera/image/rgb", img_rgb) + viewer.log_image("world/camera/image/rgb", img_rgb) elif f.filename.endswith(".pgm"): buf = archive.read(f) @@ -92,12 +92,12 @@ def log_nyud_data(recording_path: Path, subset_idx: int = 0) -> None: # Log the camera transforms: translation = [0, 0, 0] rotation_q = [0, 0, 0, 1] - rr.log_rigid3( + viewer.log_rigid3( "world/camera", parent_from_child=(translation, rotation_q), xyz="RDF", # X=Right, Y=Down, Z=Forward ) - rr.log_pinhole( + viewer.log_pinhole( "world/camera/image", child_from_parent=camera_intrinsics(img_depth), width=img_depth.shape[1], @@ -105,7 +105,7 @@ def log_nyud_data(recording_path: Path, subset_idx: int = 0) -> None: ) # Log the depth image to the cameras image-space: - rr.log_depth_image("world/camera/image/depth", img_depth, meter=DEPTH_IMAGE_SCALING) + viewer.log_depth_image("world/camera/image/depth", img_depth, meter=DEPTH_IMAGE_SCALING) def ensure_recording_downloaded(name: str) -> Path: @@ -159,11 +159,11 @@ def download_progress(url: str, dst: Path) -> None: help="Name of the NYU Depth Dataset V2 recording", ) parser.add_argument("--subset-idx", type=int, default=0, help="The index of the subset of the recording to use.") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "nyud") + viewer.script_setup(args, "nyud") recording_path = ensure_recording_downloaded(args.recording) log_nyud_data( @@ -171,4 +171,4 @@ def download_progress(url: str, dst: Path) -> None: subset_idx=args.subset_idx, ) - rr.script_teardown(args) + viewer.script_teardown(args) diff --git a/examples/python/objectron/main.py b/examples/python/objectron/main.py index a3b2f1e57684..3538cc815e9b 100755 --- a/examples/python/objectron/main.py +++ b/examples/python/objectron/main.py @@ -18,7 +18,7 @@ import numpy as np import numpy.typing as npt -import rerun as rr +import depthai_viewer as viewer from download_dataset import ( ANNOTATIONS_FILENAME, AVAILABLE_RECORDINGS, @@ -114,17 +114,17 @@ def read_annotations(dirpath: Path) -> Sequence: def log_ar_frames(samples: Iterable[SampleARFrame], seq: Sequence) -> None: """Logs a stream of `ARFrame` samples and their annotations with the Rerun SDK.""" - rr.log_view_coordinates("world", up="+Y", timeless=True) + viewer.log_view_coordinates("world", up="+Y", timeless=True) log_annotated_bboxes(seq.objects) frame_times = [] for sample in samples: - rr.set_time_sequence("frame", sample.index) - rr.set_time_seconds("time", sample.timestamp) + viewer.set_time_sequence("frame", sample.index) + viewer.set_time_seconds("time", sample.timestamp) frame_times.append(sample.timestamp) - rr.log_image_file("world/camera/video", img_path=sample.image_path, img_format=rr.ImageFormat.JPEG) + viewer.log_image_file("world/camera/video", img_path=sample.image_path, img_format=viewer.ImageFormat.JPEG) log_camera(sample.frame.camera) log_point_cloud(sample.frame.raw_feature_points) @@ -151,10 +151,10 @@ def log_camera(cam: ARCamera) -> None: rot = rot * R.from_rotvec((math.tau / 2.0) * X) # TODO(emilk): figure out why this is needed - rr.log_rigid3( + viewer.log_rigid3( "world/camera", parent_from_child=(translation, rot.as_quat()), xyz="RDF" # X=Right, Y=Down, Z=Forward ) - rr.log_pinhole( + viewer.log_pinhole( "world/camera/video", child_from_parent=intrinsics, width=w, @@ -167,7 +167,7 @@ def log_point_cloud(point_cloud: ARPointCloud) -> None: positions = np.array([[p.x, p.y, p.z] for p in point_cloud.point]).astype(np.float32) identifiers = point_cloud.identifier - rr.log_points("world/points", positions=positions, identifiers=identifiers, colors=[255, 255, 255, 255]) + viewer.log_points("world/points", positions=positions, identifiers=identifiers, colors=[255, 255, 255, 255]) def log_annotated_bboxes(bboxes: Iterable[Object]) -> None: @@ -179,7 +179,7 @@ def log_annotated_bboxes(bboxes: Iterable[Object]) -> None: continue rot = R.from_matrix(np.asarray(bbox.rotation).reshape((3, 3))) - rr.log_obb( + viewer.log_obb( f"world/annotations/box-{bbox.id}", half_size=0.5 * np.array(bbox.scale), position=bbox.translation, @@ -199,8 +199,8 @@ def log_frame_annotations(frame_times: List[float], frame_annotations: List[Fram continue time = frame_times[frame_idx] - rr.set_time_sequence("frame", frame_idx) - rr.set_time_seconds("time", time) + viewer.set_time_sequence("frame", frame_idx) + viewer.set_time_seconds("time", time) for obj_ann in frame_ann.annotations: keypoint_ids = [kp.id for kp in obj_ann.keypoints] @@ -212,7 +212,7 @@ def log_frame_annotations(frame_times: List[float], frame_annotations: List[Fram log_projected_bbox(f"world/camera/video/estimates/box-{obj_ann.object_id}", keypoint_pos2s) else: for id, pos2 in zip(keypoint_ids, keypoint_pos2s): - rr.log_point( + viewer.log_point( f"world/camera/video/estimates/box-{obj_ann.object_id}/{id}", pos2, color=[130, 160, 250, 255], @@ -250,7 +250,7 @@ def log_projected_bbox(path: str, keypoints: npt.NDArray[np.float32]) -> None: keypoints[4], keypoints[8]], dtype=np.float32) # fmt: on - rr.log_line_segments(path, segments, color=[130, 160, 250, 255]) + viewer.log_line_segments(path, segments, color=[130, 160, 250, 255]) def main() -> None: @@ -282,11 +282,11 @@ def main() -> None: "--dataset_dir", type=Path, default=LOCAL_DATASET_DIR, help="Directory to save example videos to." ) - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "objectron") + viewer.script_setup(args, "objectron") dir = ensure_recording_available(args.recording, args.dataset_dir, args.force_reprocess_video) @@ -294,7 +294,7 @@ def main() -> None: seq = read_annotations(dir) log_ar_frames(samples, seq) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/opencv_canny/main.py b/examples/python/opencv_canny/main.py index 0a6acc59851c..08fae001c65e 100755 --- a/examples/python/opencv_canny/main.py +++ b/examples/python/opencv_canny/main.py @@ -25,7 +25,7 @@ from typing import Optional import cv2 -import rerun as rr +import depthai_viewer as viewer def run_canny(num_frames: Optional[int]) -> None: @@ -47,22 +47,22 @@ def run_canny(num_frames: Optional[int]) -> None: # Get the current frame time. On some platforms it always returns zero. frame_time_ms = cap.get(cv2.CAP_PROP_POS_MSEC) if frame_time_ms != 0: - rr.set_time_nanos("frame_time", int(frame_time_ms * 1_000_000)) + viewer.set_time_nanos("frame_time", int(frame_time_ms * 1_000_000)) - rr.set_time_sequence("frame_nr", frame_nr) + viewer.set_time_sequence("frame_nr", frame_nr) frame_nr += 1 # Log the original image rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) - rr.log_image("image/rgb", rgb) + viewer.log_image("image/rgb", rgb) # Convert to grayscale gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) - rr.log_image("image/gray", gray) + viewer.log_image("image/gray", gray) # Run the canny edge detector canny = cv2.Canny(gray, 50, 200) - rr.log_image("image/canny", canny) + viewer.log_image("image/canny", canny) def main() -> None: @@ -72,11 +72,11 @@ def main() -> None: ) parser.add_argument("--num-frames", type=int, default=None, help="The number of frames to log") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "opencv_canny") + viewer.script_setup(args, "opencv_canny") print(args.connect) @@ -101,7 +101,7 @@ def main() -> None: run_canny(args.num_frames) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/plots/main.py b/examples/python/plots/main.py index 065603126952..3351e6b937fc 100755 --- a/examples/python/plots/main.py +++ b/examples/python/plots/main.py @@ -15,7 +15,7 @@ from math import cos, sin, tau import numpy as np -import rerun as rr +import depthai_viewer as viewer def clamp(n, smallest, largest): # type: ignore[no-untyped-def] @@ -29,13 +29,13 @@ def log_bar_chart() -> None: variance = np.square(std) x = np.arange(-5, 5, 0.01) y = np.exp(-np.square(x - mean) / 2 * variance) / (np.sqrt(2 * np.pi * variance)) - rr.log_tensor("bar_chart", y) + viewer.log_tensor("bar_chart", y) def log_parabola() -> None: # Log a parabola as a time series for t in range(0, 1000, 10): - rr.set_time_sequence("frame_nr", t) + viewer.set_time_sequence("frame_nr", t) f_of_t = (t * 0.01 - 5) ** 3 + 1 radius = clamp(abs(f_of_t) * 0.1, 0.5, 10.0) # type: ignore[no-untyped-call] @@ -45,29 +45,29 @@ def log_parabola() -> None: elif f_of_t > 10.0: color = [0, 255, 0] - rr.log_scalar("curves/parabola", f_of_t, label="f(t) = (0.01t - 3)³ + 1", radius=radius, color=color) + viewer.log_scalar("curves/parabola", f_of_t, label="f(t) = (0.01t - 3)³ + 1", radius=radius, color=color) def log_trig() -> None: # Log a time series for t in range(0, int(tau * 2 * 100.0)): - rr.set_time_sequence("frame_nr", t) + viewer.set_time_sequence("frame_nr", t) sin_of_t = sin(float(t) / 100.0) - rr.log_scalar("trig/sin", sin_of_t, label="sin(0.01t)", color=[255, 0, 0]) + viewer.log_scalar("trig/sin", sin_of_t, label="sin(0.01t)", color=[255, 0, 0]) cos_of_t = cos(float(t) / 100.0) - rr.log_scalar("trig/cos", cos_of_t, label="cos(0.01t)", color=[0, 255, 0]) + viewer.log_scalar("trig/cos", cos_of_t, label="cos(0.01t)", color=[0, 255, 0]) def log_segmentation() -> None: # Log a time series for t in range(0, 1000, 2): - rr.set_time_sequence("frame_nr", t) + viewer.set_time_sequence("frame_nr", t) f_of_t = (2 * 0.01 * t) + 2 color = [255, 255, 0] - rr.log_scalar("segmentation/line", f_of_t, color=color, radius=3.0) + viewer.log_scalar("segmentation/line", f_of_t, color=color, radius=3.0) g_of_t = f_of_t + random.uniform(-5.0, 5.0) if g_of_t < f_of_t - 1.5: @@ -77,25 +77,25 @@ def log_segmentation() -> None: else: color = [255, 255, 255] radius = abs(g_of_t - f_of_t) - rr.log_scalar("segmentation/samples", g_of_t, color=color, scattered=True, radius=radius) + viewer.log_scalar("segmentation/samples", g_of_t, color=color, scattered=True, radius=radius) def main() -> None: parser = argparse.ArgumentParser( description="demonstrates how to integrate python's native `logging` with the Rerun SDK" ) - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "plot") + viewer.script_setup(args, "plot") log_parabola() log_trig() log_segmentation() log_bar_chart() - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/raw_mesh/main.py b/examples/python/raw_mesh/main.py index 8ca94e08501f..4fe40fafd136 100755 --- a/examples/python/raw_mesh/main.py +++ b/examples/python/raw_mesh/main.py @@ -15,7 +15,7 @@ from typing import Optional, cast import numpy as np -import rerun as rr +import depthai_viewer as viewer import trimesh from download_dataset import AVAILABLE_MESHES, ensure_mesh_downloaded @@ -44,7 +44,7 @@ def log_scene(scene: trimesh.Scene, node: str, path: Optional[str] = None) -> No q = trimesh.transformations.quaternion_from_matrix(world_from_mesh) # `trimesh` stores quaternions in `wxyz` format, rerun needs `xyzw` q = np.array([q[1], q[2], q[3], q[0]]) - rr.log_rigid3(path, parent_from_child=(t, q)) + viewer.log_rigid3(path, parent_from_child=(t, q)) # Log this node's mesh, if it has one. mesh = cast(trimesh.Trimesh, scene.geometry.get(node_data[1])) @@ -58,7 +58,7 @@ def log_scene(scene: trimesh.Scene, node: str, path: Optional[str] = None) -> No albedo_factor = np.array(colors) / 255.0 except Exception: pass - rr.log_mesh( + viewer.log_mesh( path, mesh.vertices, indices=mesh.faces, normals=mesh.vertex_normals, albedo_factor=albedo_factor ) @@ -83,11 +83,11 @@ def main() -> None: type=Path, help="Path to a scene to analyze. If set, overrides the `--scene` argument.", ) - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "raw_mesh") + viewer.script_setup(args, "raw_mesh") scene_path = args.scene_path if scene_path is None: @@ -97,10 +97,10 @@ def main() -> None: root = next(iter(scene.graph.nodes)) # glTF always uses a right-handed coordinate system when +Y is up and meshes face +Z. - rr.log_view_coordinates(root, xyz="RUB", timeless=True) + viewer.log_view_coordinates(root, xyz="RUB", timeless=True) log_scene(scene, root) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/ros/main.py b/examples/python/ros/main.py index 0b83bc88d391..bbfae8b2389b 100644 --- a/examples/python/ros/main.py +++ b/examples/python/ros/main.py @@ -14,7 +14,7 @@ import sys import numpy as np -import rerun as rr +import depthai_viewer as viewer try: import cv_bridge @@ -81,7 +81,7 @@ def __init__(self) -> None: # Log a bounding box as a visual placeholder for the map # # TODO(jleibs): Log the real map once [#1531](https://github.com/rerun-io/rerun/issues/1531) is merged - rr.log_obb( + viewer.log_obb( "map/box", half_size=[3, 3, 1], position=[0, 0, 1], @@ -158,18 +158,18 @@ def log_tf_as_rigid3(self, path: str, time: Time) -> None: tf = self.tf_buffer.lookup_transform(parent_frame, child_frame, time, timeout=Duration(seconds=0.1)) t = tf.transform.translation q = tf.transform.rotation - rr.log_rigid3(path, parent_from_child=([t.x, t.y, t.z], [q.x, q.y, q.z, q.w])) + viewer.log_rigid3(path, parent_from_child=([t.x, t.y, t.z], [q.x, q.y, q.z, q.w])) except TransformException as ex: print("Failed to get transform: {}".format(ex)) def cam_info_callback(self, info: CameraInfo) -> None: """Log a `CameraInfo` with `log_pinhole`.""" time = Time.from_msg(info.header.stamp) - rr.set_time_nanos("ros_time", time.nanoseconds) + viewer.set_time_nanos("ros_time", time.nanoseconds) self.model.fromCameraInfo(info) - rr.log_pinhole( + viewer.log_pinhole( "map/robot/camera/img", child_from_parent=self.model.intrinsicMatrix(), width=self.model.width, @@ -179,11 +179,11 @@ def cam_info_callback(self, info: CameraInfo) -> None: def odom_callback(self, odom: Odometry) -> None: """Update transforms when odom is updated.""" time = Time.from_msg(odom.header.stamp) - rr.set_time_nanos("ros_time", time.nanoseconds) + viewer.set_time_nanos("ros_time", time.nanoseconds) # Capture time-series data for the linear and angular velocities - rr.log_scalar("odometry/vel", odom.twist.twist.linear.x) - rr.log_scalar("odometry/ang_vel", odom.twist.twist.angular.z) + viewer.log_scalar("odometry/vel", odom.twist.twist.linear.x) + viewer.log_scalar("odometry/ang_vel", odom.twist.twist.angular.z) # Update the robot pose itself via TF self.log_tf_as_rigid3("map/robot", time) @@ -191,15 +191,15 @@ def odom_callback(self, odom: Odometry) -> None: def image_callback(self, img: Image) -> None: """Log an `Image` with `log_image` using `cv_bridge`.""" time = Time.from_msg(img.header.stamp) - rr.set_time_nanos("ros_time", time.nanoseconds) + viewer.set_time_nanos("ros_time", time.nanoseconds) - rr.log_image("map/robot/camera/img", self.cv_bridge.imgmsg_to_cv2(img)) + viewer.log_image("map/robot/camera/img", self.cv_bridge.imgmsg_to_cv2(img)) self.log_tf_as_rigid3("map/robot/camera", time) def points_callback(self, points: PointCloud2) -> None: """Log a `PointCloud2` with `log_points`.""" time = Time.from_msg(points.header.stamp) - rr.set_time_nanos("ros_time", time.nanoseconds) + viewer.set_time_nanos("ros_time", time.nanoseconds) pts = point_cloud2.read_points(points, field_names=["x", "y", "z"], skip_nans=True) @@ -219,7 +219,7 @@ def points_callback(self, points: PointCloud2) -> None: # Log points once rigidly under robot/camera/points. This is a robot-centric # view of the world. - rr.log_points("map/robot/camera/points", positions=pts, colors=colors) + viewer.log_points("map/robot/camera/points", positions=pts, colors=colors) self.log_tf_as_rigid3("map/robot/camera/points", time) # Log points a second time after transforming to the map frame. This is a map-centric @@ -227,7 +227,7 @@ def points_callback(self, points: PointCloud2) -> None: # # Once Rerun supports fixed-frame aware transforms [#1522](https://github.com/rerun-io/rerun/issues/1522) # this will no longer be necessary. - rr.log_points("map/points", positions=pts, colors=colors) + viewer.log_points("map/points", positions=pts, colors=colors) self.log_tf_as_rigid3("map/points", time) def scan_callback(self, scan: LaserScan) -> None: @@ -239,7 +239,7 @@ def scan_callback(self, scan: LaserScan) -> None: [#1534](https://github.com/rerun-io/rerun/issues/1534) """ time = Time.from_msg(scan.header.stamp) - rr.set_time_nanos("ros_time", time.nanoseconds) + viewer.set_time_nanos("ros_time", time.nanoseconds) # Project the laser scan to a collection of points points = self.laser_proj.projectLaser(scan) @@ -250,7 +250,7 @@ def scan_callback(self, scan: LaserScan) -> None: origin = (pts / np.linalg.norm(pts, axis=1).reshape(-1, 1)) * 0.3 segs = np.hstack([origin, pts]).reshape(pts.shape[0] * 2, 3) - rr.log_line_segments("map/robot/scan", segs, stroke_width=0.005) + viewer.log_line_segments("map/robot/scan", segs, stroke_width=0.005) self.log_tf_as_rigid3("map/robot/scan", time) def urdf_callback(self, urdf_msg: String) -> None: @@ -269,9 +269,9 @@ def urdf_callback(self, urdf_msg: String) -> None: def main() -> None: parser = argparse.ArgumentParser(description="Simple example of a ROS node that republishes to Rerun.") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknownargs = parser.parse_known_args() - rr.script_setup(args, "turtlebot_viz") + viewer.script_setup(args, "turtlebot_viz") # Any remaining args go to rclpy rclpy.init(args=unknownargs) diff --git a/examples/python/ros/rerun_urdf.py b/examples/python/ros/rerun_urdf.py index 64449a7e4e77..036aa45a6996 100644 --- a/examples/python/ros/rerun_urdf.py +++ b/examples/python/ros/rerun_urdf.py @@ -4,7 +4,7 @@ from urllib.parse import urlparse import numpy as np -import rerun as rr +import depthai_viewer as viewer import trimesh from ament_index_python.packages import get_package_share_directory from std_msgs.msg import String @@ -43,7 +43,7 @@ def log_scene(scene: trimesh.Scene, node: str, path: Optional[str] = None, timel # `trimesh` stores quaternions in `wxyz` format, rerun needs `xyzw` # TODO(jleibs): Remove conversion once [#883](https://github.com/rerun-io/rerun/issues/883) is closed q = np.array([q[1], q[2], q[3], q[0]]) - rr.log_rigid3(path, parent_from_child=(t, q), timeless=timeless) + viewer.log_rigid3(path, parent_from_child=(t, q), timeless=timeless) # Log this node's mesh, if it has one. mesh = cast(trimesh.Trimesh, scene.geometry.get(node_data[1])) @@ -70,7 +70,7 @@ def log_scene(scene: trimesh.Scene, node: str, path: Optional[str] = None, timel albedo_factor = vertex_colors if vertex_colors is not None else visual_color - rr.log_mesh( + viewer.log_mesh( path, mesh.vertices, indices=mesh.faces, diff --git a/examples/python/segment_anything/main.py b/examples/python/segment_anything/main.py index e55b6611855c..fc83ef72279f 100755 --- a/examples/python/segment_anything/main.py +++ b/examples/python/segment_anything/main.py @@ -28,7 +28,7 @@ import cv2 import numpy as np import requests -import rerun as rr +import depthai_viewer as viewer import torch import torchvision from cv2 import Mat @@ -85,7 +85,7 @@ def create_sam(model: str, device: str) -> Sam: def run_segmentation(mask_generator: SamAutomaticMaskGenerator, image: Mat) -> None: """Run segmentation on a single image.""" - rr.log_image("image", image) + viewer.log_image("image", image) logging.info("Finding masks") masks = mask_generator.generate(image) @@ -98,7 +98,7 @@ def run_segmentation(mask_generator: SamAutomaticMaskGenerator, image: Mat) -> N np.dstack([np.zeros((image.shape[0], image.shape[1]))] + [m["segmentation"] for m in masks]).astype("uint8") * 128 ) - rr.log_tensor("mask_tensor", mask_tensor) + viewer.log_tensor("mask_tensor", mask_tensor) # Note: for stacking, it is important to sort these masks by area from largest to smallest # this is because the masks are overlapping and we want smaller masks to @@ -111,9 +111,9 @@ def run_segmentation(mask_generator: SamAutomaticMaskGenerator, image: Mat) -> N # Work-around for https://github.com/rerun-io/rerun/issues/1782 # Make sure we have an AnnotationInfo present for every class-id used in this image # TODO(jleibs): Remove when fix is released - rr.log_annotation_context( + viewer.log_annotation_context( "image", - [rr.AnnotationInfo(id) for id, _ in masks_with_ids], + [viewer.AnnotationInfo(id) for id, _ in masks_with_ids], timeless=False, ) @@ -122,10 +122,10 @@ def run_segmentation(mask_generator: SamAutomaticMaskGenerator, image: Mat) -> N for id, m in masks_with_ids: segmentation_img[m["segmentation"]] = id - rr.log_segmentation_image("image/masks", segmentation_img) + viewer.log_segmentation_image("image/masks", segmentation_img) mask_bbox = np.array([m["bbox"] for _, m in masks_with_ids]) - rr.log_rects("image/boxes", rects=mask_bbox, class_ids=[id for id, _ in masks_with_ids]) + viewer.log_rects("image/boxes", rects=mask_bbox, class_ids=[id for id, _ in masks_with_ids]) def is_url(path: str) -> bool: @@ -180,12 +180,12 @@ def main() -> None: ) parser.add_argument("images", metavar="N", type=str, nargs="*", help="A list of images to process.") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "segment_anything") - logging.getLogger().addHandler(rr.LoggingHandler("logs")) + viewer.script_setup(args, "segment_anything") + logging.getLogger().addHandler(viewer.LoggingHandler("logs")) logging.getLogger().setLevel(logging.INFO) sam = create_sam(args.model, args.device) @@ -200,11 +200,11 @@ def main() -> None: ] for n, image_uri in enumerate(args.images): - rr.set_time_sequence("image", n) + viewer.set_time_sequence("image", n) image = load_image(image_uri) run_segmentation(mask_generator, image) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/stable_diffusion/huggingface_pipeline.py b/examples/python/stable_diffusion/huggingface_pipeline.py index 3306c4c77757..e098911aebd9 100644 --- a/examples/python/stable_diffusion/huggingface_pipeline.py +++ b/examples/python/stable_diffusion/huggingface_pipeline.py @@ -56,10 +56,10 @@ DPTForDepthEstimation, ) -import rerun as rr +import depthai_viewer as viewer logger = logging.get_logger(__name__) # pylint: disable=invalid-name -logger.addHandler(rr.log.text.LoggingHandler("logs")) +logger.addHandler(viewer.log.text.LoggingHandler("logs")) # Copied from diffusers.pipelines.stable_diffusion.pipeline_stable_diffusion_img2img.preprocess @@ -210,8 +210,8 @@ def _encode_prompt(self, prompt, device, num_images_per_prompt, do_classifier_fr if `guidance_scale` is less than `1`). """ batch_size = len(prompt) if isinstance(prompt, list) else 1 - rr.log_text_entry("prompt/text", prompt) - rr.log_text_entry("prompt/text_negative", negative_prompt) + viewer.log_text_entry("prompt/text", prompt) + viewer.log_text_entry("prompt/text_negative", negative_prompt) text_inputs = self.tokenizer( prompt, padding="max_length", @@ -220,7 +220,7 @@ def _encode_prompt(self, prompt, device, num_images_per_prompt, do_classifier_fr return_tensors="pt", ) text_input_ids = text_inputs.input_ids - rr.log_tensor("prompt/text_input/ids", text_input_ids) + viewer.log_tensor("prompt/text_input/ids", text_input_ids) untruncated_ids = self.tokenizer(prompt, padding="longest", return_tensors="pt").input_ids if untruncated_ids.shape[-1] >= text_input_ids.shape[-1] and not torch.equal(text_input_ids, untruncated_ids): @@ -231,7 +231,7 @@ def _encode_prompt(self, prompt, device, num_images_per_prompt, do_classifier_fr ) if hasattr(self.text_encoder.config, "use_attention_mask") and self.text_encoder.config.use_attention_mask: - rr.log_tensor("prompt/text_input/attention_mask", text_inputs.attention_mask) + viewer.log_tensor("prompt/text_input/attention_mask", text_inputs.attention_mask) attention_mask = text_inputs.attention_mask.to(device) else: attention_mask = None @@ -276,7 +276,7 @@ def _encode_prompt(self, prompt, device, num_images_per_prompt, do_classifier_fr truncation=True, return_tensors="pt", ) - rr.log_tensor("prompt/uncond_input/ids", uncond_input.input_ids) + viewer.log_tensor("prompt/uncond_input/ids", uncond_input.input_ids) if hasattr(self.text_encoder.config, "use_attention_mask") and self.text_encoder.config.use_attention_mask: attention_mask = uncond_input.attention_mask.to(device) @@ -297,8 +297,8 @@ def _encode_prompt(self, prompt, device, num_images_per_prompt, do_classifier_fr # For classifier free guidance, we need to do two forward passes. # Here we concatenate the unconditional and text embeddings into a single batch # to avoid doing two forward passes - rr.log_tensor("prompt/text_embeddings", text_embeddings) - rr.log_tensor("prompt/uncond_embeddings", uncond_embeddings) + viewer.log_tensor("prompt/text_embeddings", text_embeddings) + viewer.log_tensor("prompt/uncond_embeddings", uncond_embeddings) text_embeddings = torch.cat([uncond_embeddings, text_embeddings]) return text_embeddings @@ -375,14 +375,14 @@ def prepare_latents(self, image, timestep, batch_size, num_images_per_prompt, dt image = image.to(device=device, dtype=dtype) init_latent_dist = self.vae.encode(image).latent_dist init_latents = init_latent_dist.sample(generator=generator) - rr.log_tensor("encoded_input_image", init_latents, names=["b", "c", "h", "w"]) + viewer.log_tensor("encoded_input_image", init_latents, names=["b", "c", "h", "w"]) # Decode the initial latents so we can inspect the image->latent->image loop decoded = self.vae.decode(init_latents).sample decoded = (decoded / 2 + 0.5).clamp(0, 1) decoded = decoded.cpu().permute(0, 2, 3, 1).float().numpy() decoded = (decoded * 255).round().astype("uint8") - rr.log_image("decoded_init_latents", decoded) + viewer.log_image("decoded_init_latents", decoded) init_latents = 0.18215 * init_latents @@ -426,7 +426,7 @@ def prepare_depth_map(self, image, depth_map, batch_size, do_classifier_free_gui if depth_map is None: pixel_values = self.feature_extractor(images=image, return_tensors="pt").pixel_values - rr.log_tensor("depth/input_preprocessed", pixel_values) + viewer.log_tensor("depth/input_preprocessed", pixel_values) pixel_values = pixel_values.to(device=device) # The DPT-Hybrid model uses batch-norm layers which are not compatible with fp16. # So we use `torch.autocast` here for half precision inference. @@ -436,19 +436,19 @@ def prepare_depth_map(self, image, depth_map, batch_size, do_classifier_free_gui else: depth_map = depth_map.to(device=device, dtype=dtype) - rr.log_depth_image("depth/estimated", depth_map) + viewer.log_depth_image("depth/estimated", depth_map) depth_map = torch.nn.functional.interpolate( depth_map.unsqueeze(1), size=(height // self.vae_scale_factor, width // self.vae_scale_factor), mode="bicubic", align_corners=False, ) - rr.log_depth_image("depth/interpolated", depth_map) + viewer.log_depth_image("depth/interpolated", depth_map) depth_min = torch.amin(depth_map, dim=[1, 2, 3], keepdim=True) depth_max = torch.amax(depth_map, dim=[1, 2, 3], keepdim=True) depth_map = 2.0 * (depth_map - depth_min) / (depth_max - depth_min) - 1.0 - rr.log_depth_image("depth/normalized", depth_map) + viewer.log_depth_image("depth/normalized", depth_map) depth_map = depth_map.to(dtype) # duplicate mask and masked_image_latents for each generation per prompt, using mps friendly method @@ -529,7 +529,7 @@ def __call__( list of `bool`s denoting whether the corresponding generated image likely represents "not-safe-for-work" (nsfw) content, according to the `safety_checker`. """ - rr.set_time_sequence("step", -1) + viewer.set_time_sequence("step", -1) # 1. Check inputs self.check_inputs(prompt, strength, callback_steps) @@ -557,9 +557,9 @@ def __call__( ) # 5. Preprocess image - rr.log_image("image/original", image) + viewer.log_image("image/original", image) image = preprocess(image) - rr.log_tensor("input_image/preprocessed", image) + viewer.log_tensor("input_image/preprocessed", image) # 6. set timesteps self.scheduler.set_timesteps(num_inference_steps, device=device) @@ -570,7 +570,7 @@ def __call__( latents = self.prepare_latents( image, latent_timestep, batch_size, num_images_per_prompt, text_embeddings.dtype, device, generator ) - rr.log_tensor("diffusion/latents", latents, names=["b", "c", "h", "w"]) + viewer.log_tensor("diffusion/latents", latents, names=["b", "c", "h", "w"]) # 8. Prepare extra step kwargs. TODO(original author): Logic should ideally just be moved out of the pipeline extra_step_kwargs = self.prepare_extra_step_kwargs(generator, eta) @@ -579,18 +579,18 @@ def __call__( num_warmup_steps = len(timesteps) - num_inference_steps * self.scheduler.order with self.progress_bar(total=num_inference_steps) as progress_bar: for i, t in enumerate(timesteps): - rr.set_time_sequence("step", i) - rr.set_time_sequence("timestep", t) + viewer.set_time_sequence("step", i) + viewer.set_time_sequence("timestep", t) # expand the latents if we are doing classifier free guidance latent_model_input = torch.cat([latents] * 2) if do_classifier_free_guidance else latents latent_model_input = self.scheduler.scale_model_input(latent_model_input, t) latent_model_input = torch.cat([latent_model_input, depth_mask], dim=1) - rr.log_tensor("diffusion/latent_model_input", latent_model_input) + viewer.log_tensor("diffusion/latent_model_input", latent_model_input) # predict the noise residual noise_pred = self.unet(latent_model_input, t, encoder_hidden_states=text_embeddings).sample - rr.log_tensor("diffusion/noise_pred", noise_pred, names=["b", "c", "h", "w"]) + viewer.log_tensor("diffusion/noise_pred", noise_pred, names=["b", "c", "h", "w"]) # perform guidance if do_classifier_free_guidance: @@ -599,12 +599,12 @@ def __call__( # compute the previous noisy sample x_t -> x_t-1 latents = self.scheduler.step(noise_pred, t, latents, **extra_step_kwargs).prev_sample - rr.log_tensor("diffusion/latents", latents, names=["b", "c", "h", "w"]) + viewer.log_tensor("diffusion/latents", latents, names=["b", "c", "h", "w"]) # Decode the latents for visualization purposes image = self.decode_latents(latents) image = (image * 255).round().astype("uint8") - rr.log_image("image/diffused", image) + viewer.log_image("image/diffused", image) # call the callback, if provided if i == len(timesteps) - 1 or ((i + 1) > num_warmup_steps and (i + 1) % self.scheduler.order == 0): @@ -615,7 +615,7 @@ def __call__( # 10. Post-processing image = self.decode_latents(latents) image_8 = (image * 255).round().astype("uint8") - rr.log_image("image/diffused", image_8) + viewer.log_image("image/diffused", image_8) # 11. Convert to PIL if output_type == "pil": diff --git a/examples/python/stable_diffusion/main.py b/examples/python/stable_diffusion/main.py index 7e7e1d50c2cd..fc8fc78d6a94 100755 --- a/examples/python/stable_diffusion/main.py +++ b/examples/python/stable_diffusion/main.py @@ -14,7 +14,7 @@ os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1" import requests -import rerun as rr +import depthai_viewer as viewer import torch from huggingface_pipeline import StableDiffusionDepth2ImgPipeline from PIL import Image @@ -107,11 +107,11 @@ def main() -> None: """, ) - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "Depth Guided Stable Diffusion") + viewer.script_setup(args, "Depth Guided Stable Diffusion") image_path = args.image_path # type: str if not image_path: @@ -141,7 +141,7 @@ def main() -> None: image=image, ) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/text_logging/main.py b/examples/python/text_logging/main.py index 7e30ea3e5266..b1b4e2d699cb 100755 --- a/examples/python/text_logging/main.py +++ b/examples/python/text_logging/main.py @@ -13,7 +13,7 @@ import argparse import logging -import rerun as rr +import depthai_viewer as viewer def setup_logging() -> None: @@ -25,7 +25,7 @@ def setup_logging() -> None: # default). # # For more info: https://docs.python.org/3/howto/logging.html#handlers - logging.getLogger().addHandler(rr.log.text.LoggingHandler()) + logging.getLogger().addHandler(viewer.log.text.LoggingHandler()) logging.getLogger().setLevel(-1) @@ -51,7 +51,7 @@ def log_stuff(frame_offset: int) -> None: # Test that we can log multiple times to the same sequence timeline and still # have the log messages show up in the correct chronological order in the viewer: for frame_nr in range(2): - rr.set_time_sequence("frame_nr", 2 * frame_offset + frame_nr) + viewer.set_time_sequence("frame_nr", 2 * frame_offset + frame_nr) logging.info(f"Log one thing during frame {frame_nr}") logging.info(f"Log second thing during the same frame {frame_nr}") logging.info(f"Log third thing during the same frame {frame_nr}") @@ -63,7 +63,7 @@ def log_stuff(frame_offset: int) -> None: # Use spaces to create distinct logging streams other_logger = logging.getLogger("totally.unrelated") other_logger.propagate = False # don't want root logger to catch those - other_logger.addHandler(rr.log.text.LoggingHandler("3rd_party_logs")) + other_logger.addHandler(viewer.log.text.LoggingHandler("3rd_party_logs")) for _ in range(10): other_logger.debug("look ma, got my very own view!") @@ -73,17 +73,17 @@ def main() -> None: description="demonstrates how to integrate python's native `logging` with the Rerun SDK" ) parser.add_argument("--repeat", type=int, default=1, help="How many times do we want to run the log function?") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "text_logging") + viewer.script_setup(args, "text_logging") setup_logging() for frame_offset in range(args.repeat): log_stuff(frame_offset) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/examples/python/tracking_hf_opencv/main.py b/examples/python/tracking_hf_opencv/main.py index 667af4034f67..3058a640f451 100755 --- a/examples/python/tracking_hf_opencv/main.py +++ b/examples/python/tracking_hf_opencv/main.py @@ -12,7 +12,7 @@ import numpy as np import numpy.typing as npt import requests -import rerun as rr +import depthai_viewer as viewer from PIL import Image EXAMPLE_DIR: Final = Path(os.path.dirname(__file__)) @@ -83,8 +83,8 @@ def detect_objects_to_track(self, rgb: npt.NDArray[np.uint8], frame_idx: int) -> _, _, scaled_height, scaled_width = inputs["pixel_values"].shape scaled_size = (scaled_width, scaled_height) rgb_scaled = cv.resize(rgb, scaled_size) - rr.log_image("image/scaled/rgb", rgb_scaled) - rr.log_unknown_transform("image/scaled") # Note: Haven't implemented 2D transforms yet. + viewer.log_image("image/scaled/rgb", rgb_scaled) + viewer.log_unknown_transform("image/scaled") # Note: Haven't implemented 2D transforms yet. logging.debug("Pass image to detection network") outputs = self.model(**inputs) @@ -97,7 +97,7 @@ def detect_objects_to_track(self, rgb: npt.NDArray[np.uint8], frame_idx: int) -> )[0] mask = segmentation_mask.detach().cpu().numpy().astype(np.uint8) - rr.log_segmentation_image("image/scaled/segmentation", mask) + viewer.log_segmentation_image("image/scaled/segmentation", mask) boxes = detections["boxes"].detach().cpu().numpy() class_ids = detections["labels"].detach().cpu().numpy() @@ -127,19 +127,19 @@ def log_detections(self, boxes: npt.NDArray[np.float32], class_ids: List[int], t thing_boxes = boxes[things_np, :] thing_class_ids = class_ids_np[things_np] - rr.log_rects( + viewer.log_rects( "image/scaled/detections/things", thing_boxes, - rect_format=rr.log.rects.RectFormat.XYXY, + rect_format=viewer.log.rects.RectFormat.XYXY, class_ids=thing_class_ids, ) background_boxes = boxes[~things_np, :] background_class_ids = class_ids[~things_np] - rr.log_rects( + viewer.log_rects( "image/scaled/detections/background", background_boxes, - rect_format=rr.log.rects.RectFormat.XYXY, + rect_format=viewer.log.rects.RectFormat.XYXY, class_ids=background_class_ids, ) @@ -187,14 +187,14 @@ def update(self, bgr: npt.NDArray[np.uint8]) -> None: def log_tracked(self) -> None: if self.is_tracking: - rr.log_rect( + viewer.log_rect( f"image/tracked/{self.tracking_id}", self.tracked.bbox_xywh, - rect_format=rr.log.rects.RectFormat.XYWH, + rect_format=viewer.log.rects.RectFormat.XYWH, class_id=self.tracked.class_id, ) else: - rr.log_rect(f"image/tracked/{self.tracking_id}", None) + viewer.log_rect(f"image/tracked/{self.tracking_id}", None) def update_with_detection(self, detection: Detection, bgr: npt.NDArray[np.uint8]) -> None: self.num_recent_undetected_frames = 0 @@ -311,9 +311,9 @@ def track_objects(video_path: str) -> None: with open(COCO_CATEGORIES_PATH) as f: coco_categories = json.load(f) class_descriptions = [ - rr.log.annotation.AnnotationInfo(id=cat["id"], color=cat["color"], label=cat["name"]) for cat in coco_categories + viewer.log.annotation.AnnotationInfo(id=cat["id"], color=cat["color"], label=cat["name"]) for cat in coco_categories ] - rr.log_annotation_context("/", class_descriptions, timeless=True) + viewer.log_annotation_context("/", class_descriptions, timeless=True) detector = Detector(coco_categories=coco_categories) @@ -325,14 +325,14 @@ def track_objects(video_path: str) -> None: trackers = [] # type: List[Tracker] while cap.isOpened(): ret, bgr = cap.read() - rr.set_time_sequence("frame", frame_idx) + viewer.set_time_sequence("frame", frame_idx) if not ret: logging.info("End of video") break rgb = cv.cvtColor(bgr, cv.COLOR_BGR2RGB) - rr.log_image("image/rgb", rgb) + viewer.log_image("image/rgb", rgb) if not trackers or frame_idx % 40 == 0: detections = detector.detect_objects_to_track(rgb=rgb, frame_idx=frame_idx) @@ -368,7 +368,7 @@ def get_downloaded_path(dataset_dir: Path, video_name: str) -> str: def setup_looging() -> None: logger = logging.getLogger() - rerun_handler = rr.log.text.LoggingHandler("logs") + rerun_handler = viewer.log.text.LoggingHandler("logs") rerun_handler.setLevel(-1) logger.addHandler(rerun_handler) stream_handler = logging.StreamHandler() @@ -392,11 +392,11 @@ def main() -> None: ) parser.add_argument("--dataset_dir", type=Path, default=DATASET_DIR, help="Directory to save example videos to.") parser.add_argument("--video_path", type=str, default="", help="Full path to video to run on. Overrides `--video`.") - rr.script_add_args(parser) + viewer.script_add_args(parser) args, unknown = parser.parse_known_args() [__import__("logging").warning(f"unknown arg: {arg}") for arg in unknown] - rr.script_setup(args, "tracking_hf_opencv") + viewer.script_setup(args, "tracking_hf_opencv") setup_looging() @@ -406,7 +406,7 @@ def main() -> None: track_objects(video_path) - rr.script_teardown(args) + viewer.script_teardown(args) if __name__ == "__main__": diff --git a/rerun_py/README.md b/rerun_py/README.md index 8e628b549a1f..1a0a09166208 100644 --- a/rerun_py/README.md +++ b/rerun_py/README.md @@ -22,12 +22,12 @@ The Python module is called `rerun`, while the package published on PyPI is `dep import rerun as rr import numpy as np -rr.spawn() +viewer.spawn() positions = np.vstack([xyz.ravel() for xyz in np.mgrid[3 * [slice(-5, 5, 10j)]]]).T colors = np.vstack([rgb.ravel() for rgb in np.mgrid[3 * [slice(0, 255, 10j)]]]).astype(np.uint8).T -rr.log_points("my_points", positions=positions, colors=colors) +viewer.log_points("my_points", positions=positions, colors=colors) ``` ## Resources diff --git a/rerun_py/rerun/__init__.py b/rerun_py/depthai_viewer/__init__.py similarity index 89% rename from rerun_py/rerun/__init__.py rename to rerun_py/depthai_viewer/__init__.py index 4e72d42e2cc4..af379c212ee7 100644 --- a/rerun_py/rerun/__init__.py +++ b/rerun_py/depthai_viewer/__init__.py @@ -20,5 +20,5 @@ sys.path.insert(0, str(real_path)) -del sys.modules["rerun"] -sys.modules["rerun"] = __import__("rerun") +del sys.modules["depthai_viewer"] +sys.modules["depthai_viewer"] = __import__("depthai_viewer") diff --git a/rerun_py/pyproject.toml b/rerun_py/pyproject.toml index 9320260e2fec..53a01e137297 100644 --- a/rerun_py/pyproject.toml +++ b/rerun_py/pyproject.toml @@ -42,7 +42,7 @@ homepage = "https://www.rerun.io" repository = "https://github.com/luxonis/depthai-viewer" [project.scripts] -depthai-viewer = "rerun.__main__:main" +depthai-viewer = "depthai_viewer.__main__:main" [tool.black] line-length = 120 @@ -103,7 +103,6 @@ ban-relative-imports = "all" include = ["rerun_sdk.pth", "rerun_sdk/rerun_demo/colmap_fiat.rrd"] locked = true python-packages = [ - "rerun_sdk/rerun", + "rerun_sdk/depthai_viewer", "rerun_sdk/rerun_demo", - "rerun_sdk/depthai_viewer_backend", ] diff --git a/rerun_py/rerun_sdk/rerun/__init__.py b/rerun_py/rerun_sdk/depthai_viewer/__init__.py similarity index 91% rename from rerun_py/rerun_sdk/rerun/__init__.py rename to rerun_py/rerun_sdk/depthai_viewer/__init__.py index 3293dc07f950..15aa09aa743a 100644 --- a/rerun_py/rerun_sdk/rerun/__init__.py +++ b/rerun_py/rerun_sdk/depthai_viewer/__init__.py @@ -5,27 +5,28 @@ import rerun_bindings as bindings # type: ignore[attr-defined] -from rerun.log import log_cleared -from rerun.log.annotation import AnnotationInfo, ClassDescription, log_annotation_context -from rerun.log.arrow import log_arrow -from rerun.log.bounding_box import log_obb -from rerun.log.camera import log_pinhole -from rerun.log.extension_components import log_extension_components -from rerun.log.file import ImageFormat, MeshFormat, log_image_file, log_mesh_file -from rerun.log.image import log_depth_image, log_image, log_segmentation_image -from rerun.log.imu import log_imu -from rerun.log.lines import log_line_segments, log_line_strip, log_path -from rerun.log.mesh import log_mesh, log_meshes -from rerun.log.pipeline_graph import log_pipeline_graph -from rerun.log.points import log_point, log_points -from rerun.log.rects import RectFormat, log_rect, log_rects -from rerun.log.scalar import log_scalar -from rerun.log.tensor import log_tensor -from rerun.log.text import LoggingHandler, LogLevel, log_text_entry -from rerun.log.transform import log_rigid3, log_unknown_transform, log_view_coordinates -from rerun.recording import MemoryRecording -from rerun.script_helpers import script_add_args, script_setup, script_teardown -from rerun.log.xlink_stats import log_xlink_stats +from depthai_viewer.log import log_cleared +from depthai_viewer.log.annotation import AnnotationInfo, ClassDescription, log_annotation_context +from depthai_viewer.log.arrow import log_arrow +from depthai_viewer.log.bounding_box import log_obb +from depthai_viewer.log.camera import log_pinhole +from depthai_viewer.log.extension_components import log_extension_components +from depthai_viewer.log.file import ImageFormat, MeshFormat, log_image_file, log_mesh_file +from depthai_viewer.log.image import log_depth_image, log_image, log_segmentation_image +from depthai_viewer.log.imu import log_imu +from depthai_viewer.log.lines import log_line_segments, log_line_strip, log_path +from depthai_viewer.log.mesh import log_mesh, log_meshes +from depthai_viewer.log.pipeline_graph import log_pipeline_graph +from depthai_viewer.log.points import log_point, log_points +from depthai_viewer.log.rects import RectFormat, log_rect, log_rects +from depthai_viewer.log.scalar import log_scalar +from depthai_viewer.log.tensor import log_tensor +from depthai_viewer.log.text import LoggingHandler, LogLevel, log_text_entry +from depthai_viewer.log.transform import log_rigid3, log_unknown_transform, log_view_coordinates +from depthai_viewer.recording import MemoryRecording +from depthai_viewer.script_helpers import script_add_args, script_setup, script_teardown +from depthai_viewer.log.xlink_stats import log_xlink_stats +from depthai_viewer import _backend __all__ = [ "AnnotationInfo", @@ -70,7 +71,8 @@ "script_setup", "script_teardown", "log_imu", - "log_xlink_stats" + "log_xlink_stats", + "_backend", ] diff --git a/rerun_py/rerun_sdk/rerun/__main__.py b/rerun_py/rerun_sdk/depthai_viewer/__main__.py similarity index 74% rename from rerun_py/rerun_sdk/rerun/__main__.py rename to rerun_py/rerun_sdk/depthai_viewer/__main__.py index 8213af58ec28..32f4965ff05e 100644 --- a/rerun_py/rerun_sdk/rerun/__main__.py +++ b/rerun_py/rerun_sdk/depthai_viewer/__main__.py @@ -2,7 +2,7 @@ import sys -from rerun import bindings, unregister_shutdown # type: ignore[attr-defined] +from depthai_viewer import bindings, unregister_shutdown # type: ignore[attr-defined] def main() -> None: diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/.gitignore b/rerun_py/rerun_sdk/depthai_viewer/_backend/.gitignore similarity index 100% rename from rerun_py/rerun_sdk/depthai_viewer_backend/.gitignore rename to rerun_py/rerun_sdk/depthai_viewer/_backend/.gitignore diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/README.md b/rerun_py/rerun_sdk/depthai_viewer/_backend/README.md similarity index 100% rename from rerun_py/rerun_sdk/depthai_viewer_backend/README.md rename to rerun_py/rerun_sdk/depthai_viewer/_backend/README.md diff --git a/rerun_py/rerun_sdk/rerun/py.typed b/rerun_py/rerun_sdk/depthai_viewer/_backend/__init__.py similarity index 100% rename from rerun_py/rerun_sdk/rerun/py.typed rename to rerun_py/rerun_sdk/depthai_viewer/_backend/__init__.py diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/classification_labels.py b/rerun_py/rerun_sdk/depthai_viewer/_backend/classification_labels.py similarity index 100% rename from rerun_py/rerun_sdk/depthai_viewer_backend/classification_labels.py rename to rerun_py/rerun_sdk/depthai_viewer/_backend/classification_labels.py diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/config_api.py b/rerun_py/rerun_sdk/depthai_viewer/_backend/config_api.py similarity index 97% rename from rerun_py/rerun_sdk/depthai_viewer_backend/config_api.py rename to rerun_py/rerun_sdk/depthai_viewer/_backend/config_api.py index 3f6a69fd1ed1..2eea38cdf415 100644 --- a/rerun_py/rerun_sdk/depthai_viewer_backend/config_api.py +++ b/rerun_py/rerun_sdk/depthai_viewer/_backend/config_api.py @@ -9,9 +9,9 @@ import websockets from websockets.server import WebSocketServerProtocol -from depthai_viewer_backend.device_configuration import PipelineConfiguration -from depthai_viewer_backend.store import Action -from depthai_viewer_backend.topic import Topic +from depthai_viewer._backend.device_configuration import PipelineConfiguration +from depthai_viewer._backend.store import Action +from depthai_viewer._backend.topic import Topic signal(SIGINT, lambda *args, **kwargs: exit(0)) diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/depth.py b/rerun_py/rerun_sdk/depthai_viewer/_backend/depth.py similarity index 100% rename from rerun_py/rerun_sdk/depthai_viewer_backend/depth.py rename to rerun_py/rerun_sdk/depthai_viewer/_backend/depth.py diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/device_configuration.py b/rerun_py/rerun_sdk/depthai_viewer/_backend/device_configuration.py similarity index 99% rename from rerun_py/rerun_sdk/depthai_viewer_backend/device_configuration.py rename to rerun_py/rerun_sdk/depthai_viewer/_backend/device_configuration.py index 0961e48831c6..c018c5628dfa 100644 --- a/rerun_py/rerun_sdk/depthai_viewer_backend/device_configuration.py +++ b/rerun_py/rerun_sdk/depthai_viewer/_backend/device_configuration.py @@ -1,7 +1,7 @@ from typing import Optional, Dict import depthai as dai -from depthai_sdk.previews import Previews as QueueNames +from depthai_sdk import Previews as QueueNames from pydantic import BaseModel diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/back.py b/rerun_py/rerun_sdk/depthai_viewer/_backend/main.py similarity index 96% rename from rerun_py/rerun_sdk/depthai_viewer_backend/back.py rename to rerun_py/rerun_sdk/depthai_viewer/_backend/main.py index c800f3878429..a5e5ca970642 100644 --- a/rerun_py/rerun_sdk/depthai_viewer_backend/back.py +++ b/rerun_py/rerun_sdk/depthai_viewer/_backend/main.py @@ -13,10 +13,14 @@ # from depthai_sdk.components.pointcloud_component import PointcloudComponent from depthai_sdk.oak_camera import CameraComponent -from depthai_viewer_backend.config_api import start_api -from depthai_viewer_backend.device_configuration import PipelineConfiguration -from depthai_viewer_backend.sdk_callbacks import SdkCallbacks -from depthai_viewer_backend.store import Store +from depthai_viewer._backend.config_api import start_api +from depthai_viewer._backend.device_configuration import PipelineConfiguration +from depthai_viewer._backend.sdk_callbacks import SdkCallbacks +from depthai_viewer._backend.store import Store +import depthai_viewer as viewer + +viewer.init("Depthai Viewer") +viewer.connect() color_wh_to_enum = { (1280, 720): dai.ColorCameraProperties.SensorResolution.THE_720_P, @@ -217,13 +221,10 @@ def update(self): if time.time_ns() - self._time_of_last_xlink_update >= 16e6: self._time_of_last_xlink_update = time.time_ns() xlink_stats = self.oak_cam.device.getProfilingData() - rr.log_xlink_stats(xlink_stats.numBytesWritten, xlink_stats.numBytesRead) + viewer.log_xlink_stats(xlink_stats.numBytesWritten, xlink_stats.numBytesRead) -import rerun as rr -rr.init("Depthai Viewer") -rr.connect() class DepthaiViewerBack: @@ -326,4 +327,4 @@ def run(self): if __name__ == "__main__": - back = DepthaiViewerBack() + DepthaiViewerBack() diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/pyproject.toml b/rerun_py/rerun_sdk/depthai_viewer/_backend/pyproject.toml similarity index 100% rename from rerun_py/rerun_sdk/depthai_viewer_backend/pyproject.toml rename to rerun_py/rerun_sdk/depthai_viewer/_backend/pyproject.toml diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/sdk_callbacks.py b/rerun_py/rerun_sdk/depthai_viewer/_backend/sdk_callbacks.py similarity index 75% rename from rerun_py/rerun_sdk/depthai_viewer_backend/sdk_callbacks.py rename to rerun_py/rerun_sdk/depthai_viewer/_backend/sdk_callbacks.py index a93fe4787a37..628859dac63d 100644 --- a/rerun_py/rerun_sdk/depthai_viewer_backend/sdk_callbacks.py +++ b/rerun_py/rerun_sdk/depthai_viewer/_backend/sdk_callbacks.py @@ -3,7 +3,7 @@ import cv2 import depthai as dai import numpy as np -import rerun as rr +import depthai_viewer as viewer from ahrs.filters import Mahony from depthai_sdk.classes.packets import ( DepthPacket, @@ -14,11 +14,11 @@ TwoStagePacket, _Detection ) -from rerun.components.rect2d import RectFormat +from depthai_viewer.components.rect2d import RectFormat -from depthai_viewer_backend import classification_labels -from depthai_viewer_backend.store import Store -from depthai_viewer_backend.topic import Topic +from depthai_viewer._backend import classification_labels +from depthai_viewer._backend.store import Store +from depthai_viewer._backend.topic import Topic class EntityPath: @@ -42,8 +42,8 @@ class SdkCallbacks: _get_camera_intrinsics: Callable[[int, int], np.ndarray] def __init__(self, store: Store): - rr.init("Depthai Viewer") - rr.connect() + viewer.init("Depthai Viewer") + viewer.connect() self.store = store self.ahrs = Mahony(frequency=100) self.ahrs.Q = np.array([1, 0, 0, 0], dtype=np.float64) @@ -62,46 +62,46 @@ def on_imu(self, packet: IMUPacket): ) if Topic.ImuData not in self.store.subscriptions: return - rr.log_imu([accel.z, accel.x, accel.y], [gyro.z, gyro.x, gyro.y], self.ahrs.Q, [mag.x, mag.y, mag.z]) + viewer.log_imu([accel.z, accel.x, accel.y], [gyro.z, gyro.x, gyro.y], self.ahrs.Q, [mag.x, mag.y, mag.z]) def on_color_frame(self, frame: FramePacket): # Always log pinhole cam and pose (TODO(filip): move somewhere else or not) if Topic.ColorImage not in self.store.subscriptions: return - rr.log_rigid3(EntityPath.RGB_CAMERA_TRANSFORM, child_from_parent=([0, 0, 0], self.ahrs.Q), xyz="RDF") + viewer.log_rigid3(EntityPath.RGB_CAMERA_TRANSFORM, child_from_parent=([0, 0, 0], self.ahrs.Q), xyz="RDF") # This is slower, does cv2.imdecode decode the whole image even with cv2.IMREAD_UNCHANGED? # In the future we may want to log an encoded image in the case of a remote viewer, such as robot hub # if frame.msg.getType() == dai.RawImgFrame.Type.BITSTREAM: # h, w = cv2.imdecode(frame.frame, cv2.IMREAD_UNCHANGED).shape[:2] - # rr.log_image_file(EntityPath.RGB_CAMERA_IMAGE, img_bytes=frame.frame, img_format=rr.ImageFormat.JPEG) + # viewer.log_image_file(EntityPath.RGB_CAMERA_IMAGE, img_bytes=frame.frame, img_format=viewer.ImageFormat.JPEG) # else: # h, w, _ = frame.frame.shape - # rr.log_image(EntityPath.RGB_CAMERA_IMAGE, cv2.cvtColor(frame.frame, cv2.COLOR_BGR2RGB)) + # viewer.log_image(EntityPath.RGB_CAMERA_IMAGE, cv2.cvtColor(frame.frame, cv2.COLOR_BGR2RGB)) h, w, _ = frame.frame.shape - rr.log_pinhole( + viewer.log_pinhole( EntityPath.RGB_PINHOLE_CAMERA, child_from_parent=self._get_camera_intrinsics(w, h), width=w, height=h ) - rr.log_image(EntityPath.RGB_CAMERA_IMAGE, cv2.cvtColor(frame.frame, cv2.COLOR_BGR2RGB)) + viewer.log_image(EntityPath.RGB_CAMERA_IMAGE, cv2.cvtColor(frame.frame, cv2.COLOR_BGR2RGB)) def on_left_frame(self, frame: FramePacket): if Topic.LeftMono not in self.store.subscriptions: return h, w = frame.frame.shape - rr.log_rigid3(EntityPath.MONO_CAMERA_TRANSFORM, child_from_parent=([0, 0, 0], self.ahrs.Q), xyz="RDF") - rr.log_pinhole( + viewer.log_rigid3(EntityPath.MONO_CAMERA_TRANSFORM, child_from_parent=([0, 0, 0], self.ahrs.Q), xyz="RDF") + viewer.log_pinhole( EntityPath.LEFT_PINHOLE_CAMERA, child_from_parent=self._get_camera_intrinsics(w, h), width=w, height=h ) - rr.log_image(EntityPath.LEFT_CAMERA_IMAGE, frame.frame) + viewer.log_image(EntityPath.LEFT_CAMERA_IMAGE, frame.frame) def on_right_frame(self, frame: FramePacket): if Topic.RightMono not in self.store.subscriptions: return h, w = frame.frame.shape - rr.log_rigid3(EntityPath.MONO_CAMERA_TRANSFORM, child_from_parent=([0, 0, 0], self.ahrs.Q), xyz="RDF") - rr.log_pinhole( + viewer.log_rigid3(EntityPath.MONO_CAMERA_TRANSFORM, child_from_parent=([0, 0, 0], self.ahrs.Q), xyz="RDF") + viewer.log_pinhole( EntityPath.RIGHT_PINHOLE_CAMERA, child_from_parent=self._get_camera_intrinsics(w, h), width=w, height=h ) - rr.log_image(EntityPath.RIGHT_CAMERA_IMAGE, frame.frame) + viewer.log_image(EntityPath.RIGHT_CAMERA_IMAGE, frame.frame) def on_stereo_frame(self, frame: DepthPacket): if Topic.DepthImage not in self.store.subscriptions: @@ -116,11 +116,11 @@ def on_stereo_frame(self, frame: DepthPacket): path = EntityPath.LEFT_PINHOLE_CAMERA + "/Depth" elif depth.align == dai.CameraBoardSocket.RIGHT: path = EntityPath.RIGHT_PINHOLE_CAMERA + "/Depth" - rr.log_depth_image(path, depth_frame, meter=1e3) + viewer.log_depth_image(path, depth_frame, meter=1e3) def on_detections(self, packet: DetectionPacket): rects, colors, labels = self._detections_to_rects_colors_labels(packet) - rr.log_rects(EntityPath.DETECTIONS, rects, rect_format=RectFormat.XYXY, colors=colors, labels=labels) + viewer.log_rects(EntityPath.DETECTIONS, rects, rect_format=RectFormat.XYXY, colors=colors, labels=labels) def _detections_to_rects_colors_labels( self, packet: DetectionPacket, labels_dict: Union[Dict, None] = None @@ -143,7 +143,7 @@ def _detections_to_rects_colors_labels( def on_yolo_packet(self, packet: DetectionPacket): rects, colors, labels = self._detections_to_rects_colors_labels(packet) - rr.log_rects(EntityPath.DETECTIONS, rects=rects, colors=colors, labels=labels, rect_format=RectFormat.XYXY) + viewer.log_rects(EntityPath.DETECTIONS, rects=rects, colors=colors, labels=labels, rect_format=RectFormat.XYXY) def on_age_gender_packet(self, packet: TwoStagePacket): for det, rec in zip(packet.detections, packet.nnData): @@ -152,8 +152,8 @@ def on_age_gender_packet(self, packet: TwoStagePacket): gender_str = "Woman" if gender[0] > gender[1] else "Man" label = f"{gender_str}, {age}" color = [255, 0, 0] if gender[0] > gender[1] else [0, 0, 255] - # TODO(filip): maybe use rr.log_annotation_context to log class colors for detections - rr.log_rect( + # TODO(filip): maybe use viewer.log_annotation_context to log class colors for detections + viewer.log_rect( EntityPath.DETECTION, self._rect_from_detection(det), rect_format=RectFormat.XYXY, @@ -169,4 +169,4 @@ def _rect_from_detection(self, detection: _Detection): def on_mobilenet_ssd_packet(self, packet: DetectionPacket): rects, colors, labels = self._detections_to_rects_colors_labels(packet, classification_labels.MOBILENET_LABELS) - rr.log_rects(EntityPath.DETECTIONS, rects=rects, colors=colors, labels=labels, rect_format=RectFormat.XYXY) + viewer.log_rects(EntityPath.DETECTIONS, rects=rects, colors=colors, labels=labels, rect_format=RectFormat.XYXY) diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/store.py b/rerun_py/rerun_sdk/depthai_viewer/_backend/store.py similarity index 94% rename from rerun_py/rerun_sdk/depthai_viewer_backend/store.py rename to rerun_py/rerun_sdk/depthai_viewer/_backend/store.py index 4d52d9645178..1e3ff5bbff47 100644 --- a/rerun_py/rerun_sdk/depthai_viewer_backend/store.py +++ b/rerun_py/rerun_sdk/depthai_viewer/_backend/store.py @@ -1,8 +1,8 @@ from enum import Enum from typing import Callable, List, Tuple -from depthai_viewer_backend.device_configuration import PipelineConfiguration -from depthai_viewer_backend.topic import Topic +from depthai_viewer._backend.device_configuration import PipelineConfiguration +from depthai_viewer._backend.topic import Topic class Action(Enum): diff --git a/rerun_py/rerun_sdk/depthai_viewer_backend/topic.py b/rerun_py/rerun_sdk/depthai_viewer/_backend/topic.py similarity index 100% rename from rerun_py/rerun_sdk/depthai_viewer_backend/topic.py rename to rerun_py/rerun_sdk/depthai_viewer/_backend/topic.py diff --git a/rerun_py/rerun_sdk/rerun/color_conversion.py b/rerun_py/rerun_sdk/depthai_viewer/color_conversion.py similarity index 100% rename from rerun_py/rerun_sdk/rerun/color_conversion.py rename to rerun_py/rerun_sdk/depthai_viewer/color_conversion.py diff --git a/rerun_py/rerun_sdk/rerun/components/__init__.py b/rerun_py/rerun_sdk/depthai_viewer/components/__init__.py similarity index 98% rename from rerun_py/rerun_sdk/rerun/components/__init__.py rename to rerun_py/rerun_sdk/depthai_viewer/components/__init__.py index 117fc491dbb7..e0fb3ab86ae7 100644 --- a/rerun_py/rerun_sdk/rerun/components/__init__.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/__init__.py @@ -6,7 +6,7 @@ import pyarrow as pa -from rerun import bindings +from depthai_viewer import bindings all = [ "annotation", diff --git a/rerun_py/rerun_sdk/rerun/components/annotation.py b/rerun_py/rerun_sdk/depthai_viewer/components/annotation.py similarity index 94% rename from rerun_py/rerun_sdk/rerun/components/annotation.py rename to rerun_py/rerun_sdk/depthai_viewer/components/annotation.py index c622fb5489f0..bf0f780f08b6 100644 --- a/rerun_py/rerun_sdk/rerun/components/annotation.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/annotation.py @@ -4,7 +4,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "ClassIdArray", diff --git a/rerun_py/rerun_sdk/rerun/components/arrow.py b/rerun_py/rerun_sdk/depthai_viewer/components/arrow.py similarity index 88% rename from rerun_py/rerun_sdk/rerun/components/arrow.py rename to rerun_py/rerun_sdk/depthai_viewer/components/arrow.py index 1e0577c2a63c..acbfb54f16cc 100644 --- a/rerun_py/rerun_sdk/rerun/components/arrow.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/arrow.py @@ -4,8 +4,8 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory -from rerun.components.vec import Vec3DArray +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components.vec import Vec3DArray __all__ = [ "Arrow3DArray", diff --git a/rerun_py/rerun_sdk/rerun/components/box.py b/rerun_py/rerun_sdk/depthai_viewer/components/box.py similarity index 90% rename from rerun_py/rerun_sdk/rerun/components/box.py rename to rerun_py/rerun_sdk/depthai_viewer/components/box.py index 252d391e70e9..fe4ae15f622c 100644 --- a/rerun_py/rerun_sdk/rerun/components/box.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/box.py @@ -4,7 +4,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "Box3DArray", diff --git a/rerun_py/rerun_sdk/rerun/components/color.py b/rerun_py/rerun_sdk/depthai_viewer/components/color.py similarity index 84% rename from rerun_py/rerun_sdk/rerun/components/color.py rename to rerun_py/rerun_sdk/depthai_viewer/components/color.py index d2ff97cd9965..098817e00078 100644 --- a/rerun_py/rerun_sdk/rerun/components/color.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/color.py @@ -4,8 +4,8 @@ import numpy.typing as npt import pyarrow as pa -from rerun.color_conversion import u8_array_to_rgba -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.color_conversion import u8_array_to_rgba +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "ColorRGBAArray", diff --git a/rerun_py/rerun_sdk/rerun/components/imu.py b/rerun_py/rerun_sdk/depthai_viewer/components/imu.py similarity index 85% rename from rerun_py/rerun_sdk/rerun/components/imu.py rename to rerun_py/rerun_sdk/depthai_viewer/components/imu.py index 272b4d666ea6..18db59992bd5 100644 --- a/rerun_py/rerun_sdk/rerun/components/imu.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/imu.py @@ -4,9 +4,9 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory -from rerun.components.point import Point3DArray, Point3DType -from rerun.components.quaternion import QuaternionArray +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components.point import Point3DArray, Point3DType +from depthai_viewer.components.quaternion import QuaternionArray __all__ = ["ImuType", "Imu"] diff --git a/rerun_py/rerun_sdk/rerun/components/instance.py b/rerun_py/rerun_sdk/depthai_viewer/components/instance.py similarity index 91% rename from rerun_py/rerun_sdk/rerun/components/instance.py rename to rerun_py/rerun_sdk/depthai_viewer/components/instance.py index 428d339a72cd..aa8ed7db7849 100644 --- a/rerun_py/rerun_sdk/rerun/components/instance.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/instance.py @@ -4,7 +4,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "InstanceArray", diff --git a/rerun_py/rerun_sdk/rerun/components/label.py b/rerun_py/rerun_sdk/depthai_viewer/components/label.py similarity index 89% rename from rerun_py/rerun_sdk/rerun/components/label.py rename to rerun_py/rerun_sdk/depthai_viewer/components/label.py index dbafbfee770a..09161ef14f89 100644 --- a/rerun_py/rerun_sdk/rerun/components/label.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/label.py @@ -4,7 +4,7 @@ import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "LabelArray", diff --git a/rerun_py/rerun_sdk/rerun/components/linestrip.py b/rerun_py/rerun_sdk/depthai_viewer/components/linestrip.py similarity index 96% rename from rerun_py/rerun_sdk/rerun/components/linestrip.py rename to rerun_py/rerun_sdk/depthai_viewer/components/linestrip.py index ee845346d39b..123efc8b6e61 100644 --- a/rerun_py/rerun_sdk/rerun/components/linestrip.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/linestrip.py @@ -7,7 +7,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "LineStrip2DArray", diff --git a/rerun_py/rerun_sdk/rerun/components/point.py b/rerun_py/rerun_sdk/depthai_viewer/components/point.py similarity index 95% rename from rerun_py/rerun_sdk/rerun/components/point.py rename to rerun_py/rerun_sdk/depthai_viewer/components/point.py index 120c8506ba1f..dc61e0b838fe 100644 --- a/rerun_py/rerun_sdk/rerun/components/point.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/point.py @@ -4,7 +4,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "Point2DArray", diff --git a/rerun_py/rerun_sdk/rerun/components/quaternion.py b/rerun_py/rerun_sdk/depthai_viewer/components/quaternion.py similarity index 90% rename from rerun_py/rerun_sdk/rerun/components/quaternion.py rename to rerun_py/rerun_sdk/depthai_viewer/components/quaternion.py index f04091139447..005708451380 100644 --- a/rerun_py/rerun_sdk/rerun/components/quaternion.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/quaternion.py @@ -4,7 +4,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "QuaternionArray", diff --git a/rerun_py/rerun_sdk/rerun/components/radius.py b/rerun_py/rerun_sdk/depthai_viewer/components/radius.py similarity index 89% rename from rerun_py/rerun_sdk/rerun/components/radius.py rename to rerun_py/rerun_sdk/depthai_viewer/components/radius.py index 47203588871a..f6330ff9fc9a 100644 --- a/rerun_py/rerun_sdk/rerun/components/radius.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/radius.py @@ -4,7 +4,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "RadiusArray", diff --git a/rerun_py/rerun_sdk/rerun/components/rect2d.py b/rerun_py/rerun_sdk/depthai_viewer/components/rect2d.py similarity index 97% rename from rerun_py/rerun_sdk/rerun/components/rect2d.py rename to rerun_py/rerun_sdk/depthai_viewer/components/rect2d.py index a0d521e5f6ca..6e5c9f215319 100644 --- a/rerun_py/rerun_sdk/rerun/components/rect2d.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/rect2d.py @@ -6,7 +6,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import ( +from depthai_viewer.components import ( REGISTERED_COMPONENT_NAMES, ComponentTypeFactory, build_dense_union, diff --git a/rerun_py/rerun_sdk/rerun/components/scalar.py b/rerun_py/rerun_sdk/depthai_viewer/components/scalar.py similarity index 94% rename from rerun_py/rerun_sdk/rerun/components/scalar.py rename to rerun_py/rerun_sdk/depthai_viewer/components/scalar.py index 4f14f37e4e63..bc8407014d96 100644 --- a/rerun_py/rerun_sdk/rerun/components/scalar.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/scalar.py @@ -6,7 +6,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "ScalarArray", diff --git a/rerun_py/rerun_sdk/rerun/components/tensor.py b/rerun_py/rerun_sdk/depthai_viewer/components/tensor.py similarity index 97% rename from rerun_py/rerun_sdk/rerun/components/tensor.py rename to rerun_py/rerun_sdk/depthai_viewer/components/tensor.py index b5d50cd2933e..284bc7eb6b78 100644 --- a/rerun_py/rerun_sdk/rerun/components/tensor.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/tensor.py @@ -7,8 +7,8 @@ import numpy.typing as npt import pyarrow as pa -from rerun import bindings -from rerun.components import ( +from depthai_viewer import bindings +from depthai_viewer.components import ( REGISTERED_COMPONENT_NAMES, ComponentTypeFactory, build_dense_union, diff --git a/rerun_py/rerun_sdk/rerun/components/text_entry.py b/rerun_py/rerun_sdk/depthai_viewer/components/text_entry.py similarity index 92% rename from rerun_py/rerun_sdk/rerun/components/text_entry.py rename to rerun_py/rerun_sdk/depthai_viewer/components/text_entry.py index 7d266617f1c2..e43a8dd207c2 100644 --- a/rerun_py/rerun_sdk/rerun/components/text_entry.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/text_entry.py @@ -4,7 +4,7 @@ import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "TextEntryArray", diff --git a/rerun_py/rerun_sdk/rerun/components/vec.py b/rerun_py/rerun_sdk/depthai_viewer/components/vec.py similarity index 94% rename from rerun_py/rerun_sdk/rerun/components/vec.py rename to rerun_py/rerun_sdk/depthai_viewer/components/vec.py index 5c222159cc5c..0db9522c2110 100644 --- a/rerun_py/rerun_sdk/rerun/components/vec.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/vec.py @@ -4,7 +4,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "Vec2DArray", diff --git a/rerun_py/rerun_sdk/rerun/components/xlink_stats.py b/rerun_py/rerun_sdk/depthai_viewer/components/xlink_stats.py similarity index 90% rename from rerun_py/rerun_sdk/rerun/components/xlink_stats.py rename to rerun_py/rerun_sdk/depthai_viewer/components/xlink_stats.py index dec16dda3ff2..af94eb1c40e2 100644 --- a/rerun_py/rerun_sdk/rerun/components/xlink_stats.py +++ b/rerun_py/rerun_sdk/depthai_viewer/components/xlink_stats.py @@ -6,7 +6,7 @@ import numpy.typing as npt import pyarrow as pa -from rerun.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory +from depthai_viewer.components import REGISTERED_COMPONENT_NAMES, ComponentTypeFactory __all__ = [ "XLinkStats" diff --git a/rerun_py/rerun_sdk/rerun/log/__init__.py b/rerun_py/rerun_sdk/depthai_viewer/log/__init__.py similarity index 98% rename from rerun_py/rerun_sdk/rerun/log/__init__.py rename to rerun_py/rerun_sdk/depthai_viewer/log/__init__.py index 350a2875b9a2..bf73a06df7f8 100644 --- a/rerun_py/rerun_sdk/rerun/log/__init__.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/__init__.py @@ -3,7 +3,7 @@ import numpy as np import numpy.typing as npt -from rerun import bindings +from depthai_viewer import bindings __all__ = [ "annotation", diff --git a/rerun_py/rerun_sdk/rerun/log/annotation.py b/rerun_py/rerun_sdk/depthai_viewer/log/annotation.py similarity index 97% rename from rerun_py/rerun_sdk/rerun/log/annotation.py rename to rerun_py/rerun_sdk/depthai_viewer/log/annotation.py index c941fc22ccb0..ebedafd6455b 100644 --- a/rerun_py/rerun_sdk/rerun/log/annotation.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/annotation.py @@ -1,9 +1,9 @@ from dataclasses import dataclass from typing import Iterable, Optional, Sequence, Tuple, Union -from rerun import bindings -from rerun.log import Color, _normalize_colors -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.log import Color, _normalize_colors +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "AnnotationInfo", diff --git a/rerun_py/rerun_sdk/rerun/log/arrow.py b/rerun_py/rerun_sdk/depthai_viewer/log/arrow.py similarity index 83% rename from rerun_py/rerun_sdk/rerun/log/arrow.py rename to rerun_py/rerun_sdk/depthai_viewer/log/arrow.py index 7ad72d06fb80..d6d93a6889ea 100644 --- a/rerun_py/rerun_sdk/rerun/log/arrow.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/arrow.py @@ -3,15 +3,15 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.components.arrow import Arrow3DArray -from rerun.components.color import ColorRGBAArray -from rerun.components.instance import InstanceArray -from rerun.components.label import LabelArray -from rerun.components.radius import RadiusArray -from rerun.log import Color, _normalize_colors, _normalize_radii -from rerun.log.extension_components import _add_extension_components -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.components.arrow import Arrow3DArray +from depthai_viewer.components.color import ColorRGBAArray +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.label import LabelArray +from depthai_viewer.components.radius import RadiusArray +from depthai_viewer.log import Color, _normalize_colors, _normalize_radii +from depthai_viewer.log.extension_components import _add_extension_components +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_arrow", diff --git a/rerun_py/rerun_sdk/rerun/log/bounding_box.py b/rerun_py/rerun_sdk/depthai_viewer/log/bounding_box.py similarity index 81% rename from rerun_py/rerun_sdk/rerun/log/bounding_box.py rename to rerun_py/rerun_sdk/depthai_viewer/log/bounding_box.py index 869eaf7a6553..8d575449b40b 100644 --- a/rerun_py/rerun_sdk/rerun/log/bounding_box.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/bounding_box.py @@ -3,18 +3,18 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.components.annotation import ClassIdArray -from rerun.components.box import Box3DArray -from rerun.components.color import ColorRGBAArray -from rerun.components.instance import InstanceArray -from rerun.components.label import LabelArray -from rerun.components.quaternion import QuaternionArray -from rerun.components.radius import RadiusArray -from rerun.components.vec import Vec3DArray -from rerun.log import Color, _normalize_colors, _normalize_ids, _normalize_radii -from rerun.log.extension_components import _add_extension_components -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.components.annotation import ClassIdArray +from depthai_viewer.components.box import Box3DArray +from depthai_viewer.components.color import ColorRGBAArray +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.label import LabelArray +from depthai_viewer.components.quaternion import QuaternionArray +from depthai_viewer.components.radius import RadiusArray +from depthai_viewer.components.vec import Vec3DArray +from depthai_viewer.log import Color, _normalize_colors, _normalize_ids, _normalize_radii +from depthai_viewer.log.extension_components import _add_extension_components +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_obb", @@ -41,7 +41,7 @@ def log_obb( Example: -------- ``` - rr.log_obb("my_obb", half_size=[1.0, 2.0, 3.0], position=[0, 0, 0], rotation_q=[0, 0, 0, 1]) + viewer.log_obb("my_obb", half_size=[1.0, 2.0, 3.0], position=[0, 0, 0], rotation_q=[0, 0, 0, 1]) ``` Parameters diff --git a/rerun_py/rerun_sdk/rerun/log/camera.py b/rerun_py/rerun_sdk/depthai_viewer/log/camera.py similarity index 94% rename from rerun_py/rerun_sdk/rerun/log/camera.py rename to rerun_py/rerun_sdk/depthai_viewer/log/camera.py index 8bbb33cc9382..720635c285db 100644 --- a/rerun_py/rerun_sdk/rerun/log/camera.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/camera.py @@ -1,8 +1,8 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_pinhole", diff --git a/rerun_py/rerun_sdk/rerun/log/error_utils.py b/rerun_py/rerun_sdk/depthai_viewer/log/error_utils.py similarity index 87% rename from rerun_py/rerun_sdk/rerun/log/error_utils.py rename to rerun_py/rerun_sdk/depthai_viewer/log/error_utils.py index c8eade22833c..bab3c99854a8 100644 --- a/rerun_py/rerun_sdk/rerun/log/error_utils.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/error_utils.py @@ -1,8 +1,8 @@ import inspect import logging -import rerun -from rerun.log.text_internal import LogLevel, log_text_entry_internal +import depthai_viewer +from depthai_viewer.log.text_internal import LogLevel, log_text_entry_internal __all__ = [ "_send_warning", @@ -24,7 +24,7 @@ def _send_warning(message: str, depth_to_user_code: int) -> None: or raise an exception and let the @log_decorator handle it instead. """ - if rerun.strict_mode(): + if depthai_viewer.strict_mode(): raise TypeError(message) context_descriptor = _build_warning_context_string(skip_first=depth_to_user_code + 2) diff --git a/rerun_py/rerun_sdk/rerun/log/extension_components.py b/rerun_py/rerun_sdk/depthai_viewer/log/extension_components.py similarity index 92% rename from rerun_py/rerun_sdk/rerun/log/extension_components.py rename to rerun_py/rerun_sdk/depthai_viewer/log/extension_components.py index 2307b6ece484..c1bd450f8938 100644 --- a/rerun_py/rerun_sdk/rerun/log/extension_components.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/extension_components.py @@ -5,10 +5,10 @@ import pyarrow as pa # Fully qualified to avoid circular import -import rerun.log.error_utils -from rerun import bindings -from rerun.components.instance import InstanceArray -from rerun.log.log_decorator import log_decorator +import depthai_viewer.log.error_utils +from depthai_viewer import bindings +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "_add_extension_components", @@ -46,7 +46,7 @@ def _add_extension_components( pa_value = pa.array(np_value) EXT_COMPONENT_TYPES[name] = (np_value.dtype, pa_value.type) except Exception as ex: - rerun.log.error_utils._send_warning( + depthai_viewer.log.error_utils._send_warning( "Error converting extension data to arrow for component {}. Dropping.\n{}: {}".format( name, type(ex).__name__, ex ), @@ -117,7 +117,7 @@ def log_extension_components( identifiers = [int(id) for id in identifiers] identifiers_np = np.array(identifiers, dtype="uint64") except ValueError: - rerun.log.error_utils._send_warning("Only integer identifiers supported", 1) + depthai_viewer.log.error_utils._send_warning("Only integer identifiers supported", 1) instanced: Dict[str, Any] = {} splats: Dict[str, Any] = {} diff --git a/rerun_py/rerun_sdk/rerun/log/file.py b/rerun_py/rerun_sdk/depthai_viewer/log/file.py similarity index 96% rename from rerun_py/rerun_sdk/rerun/log/file.py rename to rerun_py/rerun_sdk/depthai_viewer/log/file.py index a05218b9d857..9be5a59d2ac3 100644 --- a/rerun_py/rerun_sdk/rerun/log/file.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/file.py @@ -6,8 +6,8 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "MeshFormat", diff --git a/rerun_py/rerun_sdk/rerun/log/image.py b/rerun_py/rerun_sdk/depthai_viewer/log/image.py similarity index 96% rename from rerun_py/rerun_sdk/rerun/log/image.py rename to rerun_py/rerun_sdk/depthai_viewer/log/image.py index cbf34bcd1816..9e435678cd42 100644 --- a/rerun_py/rerun_sdk/rerun/log/image.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/image.py @@ -3,10 +3,10 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.log.error_utils import _send_warning -from rerun.log.log_decorator import log_decorator -from rerun.log.tensor import Tensor, _log_tensor, _to_numpy +from depthai_viewer import bindings +from depthai_viewer.log.error_utils import _send_warning +from depthai_viewer.log.log_decorator import log_decorator +from depthai_viewer.log.tensor import Tensor, _log_tensor, _to_numpy __all__ = [ "log_image", diff --git a/rerun_py/rerun_sdk/rerun/log/imu.py b/rerun_py/rerun_sdk/depthai_viewer/log/imu.py similarity index 92% rename from rerun_py/rerun_sdk/rerun/log/imu.py rename to rerun_py/rerun_sdk/depthai_viewer/log/imu.py index bcc0c2451bdc..3e9c114fa3d4 100644 --- a/rerun_py/rerun_sdk/rerun/log/imu.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/imu.py @@ -3,9 +3,9 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.components.imu import Imu -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.components.imu import Imu +from depthai_viewer.log.log_decorator import log_decorator @log_decorator diff --git a/rerun_py/rerun_sdk/rerun/log/lines.py b/rerun_py/rerun_sdk/depthai_viewer/log/lines.py similarity index 92% rename from rerun_py/rerun_sdk/rerun/log/lines.py rename to rerun_py/rerun_sdk/depthai_viewer/log/lines.py index 01055647398a..87c5b733cd54 100644 --- a/rerun_py/rerun_sdk/rerun/log/lines.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/lines.py @@ -4,14 +4,14 @@ import numpy.typing as npt from deprecated import deprecated -from rerun import bindings -from rerun.components.color import ColorRGBAArray -from rerun.components.instance import InstanceArray -from rerun.components.linestrip import LineStrip2DArray, LineStrip3DArray -from rerun.components.radius import RadiusArray -from rerun.log import Color, _normalize_colors, _normalize_radii -from rerun.log.extension_components import _add_extension_components -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.components.color import ColorRGBAArray +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.linestrip import LineStrip2DArray, LineStrip3DArray +from depthai_viewer.components.radius import RadiusArray +from depthai_viewer.log import Color, _normalize_colors, _normalize_radii +from depthai_viewer.log.extension_components import _add_extension_components +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_path", diff --git a/rerun_py/rerun_sdk/rerun/log/log_decorator.py b/rerun_py/rerun_sdk/depthai_viewer/log/log_decorator.py similarity index 86% rename from rerun_py/rerun_sdk/rerun/log/log_decorator.py rename to rerun_py/rerun_sdk/depthai_viewer/log/log_decorator.py index d7be628412cc..bd199f87caea 100644 --- a/rerun_py/rerun_sdk/rerun/log/log_decorator.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/log_decorator.py @@ -3,9 +3,9 @@ import traceback from typing import Any, Callable, TypeVar, cast -import rerun -from rerun import bindings -from rerun.log.text_internal import LogLevel, log_text_entry_internal +import depthai_viewer +from depthai_viewer import bindings +from depthai_viewer.log.text_internal import LogLevel, log_text_entry_internal _TFunc = TypeVar("_TFunc", bound=Callable[..., Any]) @@ -27,7 +27,7 @@ def wrapper(*args: Any, **kwargs: Any) -> Any: if not bindings.is_enabled(): return - if rerun.strict_mode(): + if depthai_viewer.strict_mode(): # Pass on any exceptions to the caller return func(*args, **kwargs) else: diff --git a/rerun_py/rerun_sdk/rerun/log/mesh.py b/rerun_py/rerun_sdk/depthai_viewer/log/mesh.py similarity index 97% rename from rerun_py/rerun_sdk/rerun/log/mesh.py rename to rerun_py/rerun_sdk/depthai_viewer/log/mesh.py index 8d122b6bc3f5..e182472b8e39 100644 --- a/rerun_py/rerun_sdk/rerun/log/mesh.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/mesh.py @@ -3,12 +3,12 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.log import ( +from depthai_viewer import bindings +from depthai_viewer.log import ( Colors, _normalize_colors, ) -from rerun.log.log_decorator import log_decorator +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_mesh", diff --git a/rerun_py/rerun_sdk/rerun/log/pipeline_graph.py b/rerun_py/rerun_sdk/depthai_viewer/log/pipeline_graph.py similarity index 73% rename from rerun_py/rerun_sdk/rerun/log/pipeline_graph.py rename to rerun_py/rerun_sdk/depthai_viewer/log/pipeline_graph.py index 2d0623550b37..f24a70e4cc4d 100644 --- a/rerun_py/rerun_sdk/rerun/log/pipeline_graph.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/pipeline_graph.py @@ -4,15 +4,15 @@ import numpy as np -from rerun import bindings -from rerun.components.color import ColorRGBAArray -from rerun.components.instance import InstanceArray -from rerun.components.label import LabelArray -from rerun.components.radius import RadiusArray -from rerun.components.scalar import ScalarArray, ScalarPlotPropsArray -from rerun.log import _normalize_colors -from rerun.log.extension_components import _add_extension_components -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.components.color import ColorRGBAArray +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.label import LabelArray +from depthai_viewer.components.radius import RadiusArray +from depthai_viewer.components.scalar import ScalarArray, ScalarPlotPropsArray +from depthai_viewer.log import _normalize_colors +from depthai_viewer.log.extension_components import _add_extension_components +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_pipeline_graph", diff --git a/rerun_py/rerun_sdk/rerun/log/points.py b/rerun_py/rerun_sdk/depthai_viewer/log/points.py similarity index 93% rename from rerun_py/rerun_sdk/rerun/log/points.py rename to rerun_py/rerun_sdk/depthai_viewer/log/points.py index 2da62475f1d3..41ec02c22b43 100644 --- a/rerun_py/rerun_sdk/rerun/log/points.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/points.py @@ -3,14 +3,14 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.components.annotation import ClassIdArray -from rerun.components.color import ColorRGBAArray -from rerun.components.instance import InstanceArray -from rerun.components.label import LabelArray -from rerun.components.point import Point2DArray, Point3DArray -from rerun.components.radius import RadiusArray -from rerun.log import ( +from depthai_viewer import bindings +from depthai_viewer.components.annotation import ClassIdArray +from depthai_viewer.components.color import ColorRGBAArray +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.label import LabelArray +from depthai_viewer.components.point import Point2DArray, Point3DArray +from depthai_viewer.components.radius import RadiusArray +from depthai_viewer.log import ( Color, Colors, OptionalClassIds, @@ -20,9 +20,9 @@ _normalize_labels, _normalize_radii, ) -from rerun.log.error_utils import _send_warning -from rerun.log.extension_components import _add_extension_components -from rerun.log.log_decorator import log_decorator +from depthai_viewer.log.error_utils import _send_warning +from depthai_viewer.log.extension_components import _add_extension_components +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_point", diff --git a/rerun_py/rerun_sdk/rerun/log/rects.py b/rerun_py/rerun_sdk/depthai_viewer/log/rects.py similarity index 91% rename from rerun_py/rerun_sdk/rerun/log/rects.py rename to rerun_py/rerun_sdk/depthai_viewer/log/rects.py index 36006fe4a43c..8f4a9f383b75 100644 --- a/rerun_py/rerun_sdk/rerun/log/rects.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/rects.py @@ -3,13 +3,13 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.components.annotation import ClassIdArray -from rerun.components.color import ColorRGBAArray -from rerun.components.instance import InstanceArray -from rerun.components.label import LabelArray -from rerun.components.rect2d import Rect2DArray, RectFormat -from rerun.log import ( +from depthai_viewer import bindings +from depthai_viewer.components.annotation import ClassIdArray +from depthai_viewer.components.color import ColorRGBAArray +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.label import LabelArray +from depthai_viewer.components.rect2d import Rect2DArray, RectFormat +from depthai_viewer.log import ( Color, Colors, OptionalClassIds, @@ -17,9 +17,9 @@ _normalize_ids, _normalize_labels, ) -from rerun.log.error_utils import _send_warning -from rerun.log.extension_components import _add_extension_components -from rerun.log.log_decorator import log_decorator +from depthai_viewer.log.error_utils import _send_warning +from depthai_viewer.log.extension_components import _add_extension_components +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "RectFormat", diff --git a/rerun_py/rerun_sdk/rerun/log/scalar.py b/rerun_py/rerun_sdk/depthai_viewer/log/scalar.py similarity index 90% rename from rerun_py/rerun_sdk/rerun/log/scalar.py rename to rerun_py/rerun_sdk/depthai_viewer/log/scalar.py index b80d4c7906c8..bb9c07eefcac 100644 --- a/rerun_py/rerun_sdk/rerun/log/scalar.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/scalar.py @@ -2,15 +2,15 @@ import numpy as np -from rerun import bindings -from rerun.components.color import ColorRGBAArray -from rerun.components.instance import InstanceArray -from rerun.components.label import LabelArray -from rerun.components.radius import RadiusArray -from rerun.components.scalar import ScalarArray, ScalarPlotPropsArray -from rerun.log import Color, _normalize_colors -from rerun.log.extension_components import _add_extension_components -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.components.color import ColorRGBAArray +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.label import LabelArray +from depthai_viewer.components.radius import RadiusArray +from depthai_viewer.components.scalar import ScalarArray, ScalarPlotPropsArray +from depthai_viewer.log import Color, _normalize_colors +from depthai_viewer.log.extension_components import _add_extension_components +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_scalar", diff --git a/rerun_py/rerun_sdk/rerun/log/tensor.py b/rerun_py/rerun_sdk/depthai_viewer/log/tensor.py similarity index 91% rename from rerun_py/rerun_sdk/rerun/log/tensor.py rename to rerun_py/rerun_sdk/depthai_viewer/log/tensor.py index 8f3e38f41e91..e79351f517d5 100644 --- a/rerun_py/rerun_sdk/rerun/log/tensor.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/tensor.py @@ -3,12 +3,12 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.components.instance import InstanceArray -from rerun.components.tensor import TensorArray -from rerun.log.error_utils import _send_warning -from rerun.log.extension_components import _add_extension_components -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.tensor import TensorArray +from depthai_viewer.log.error_utils import _send_warning +from depthai_viewer.log.extension_components import _add_extension_components +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_tensor", diff --git a/rerun_py/rerun_sdk/rerun/log/text.py b/rerun_py/rerun_sdk/depthai_viewer/log/text.py similarity index 87% rename from rerun_py/rerun_sdk/rerun/log/text.py rename to rerun_py/rerun_sdk/depthai_viewer/log/text.py index fddb04f37fb8..4c89154b83d7 100644 --- a/rerun_py/rerun_sdk/rerun/log/text.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/text.py @@ -2,14 +2,14 @@ from typing import Any, Dict, Final, Optional # Fully qualified to avoid circular import -import rerun.log.extension_components -from rerun import bindings -from rerun.components.color import ColorRGBAArray -from rerun.components.instance import InstanceArray -from rerun.components.text_entry import TextEntryArray -from rerun.log import Color, _normalize_colors -from rerun.log.log_decorator import log_decorator -from rerun.log.text_internal import LogLevel +import depthai_viewer.log.extension_components +from depthai_viewer import bindings +from depthai_viewer.components.color import ColorRGBAArray +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.text_entry import TextEntryArray +from depthai_viewer.log import Color, _normalize_colors +from depthai_viewer.log.log_decorator import log_decorator +from depthai_viewer.log.text_internal import LogLevel __all__ = [ "LogLevel", @@ -110,7 +110,7 @@ def log_text_entry( instanced["rerun.colorrgba"] = ColorRGBAArray.from_numpy(colors) if ext: - rerun.log.extension_components._add_extension_components(instanced, splats, ext, None) + depthai_viewer.log.extension_components._add_extension_components(instanced, splats, ext, None) if splats: splats["rerun.instance_key"] = InstanceArray.splat() diff --git a/rerun_py/rerun_sdk/rerun/log/text_internal.py b/rerun_py/rerun_sdk/depthai_viewer/log/text_internal.py similarity index 90% rename from rerun_py/rerun_sdk/rerun/log/text_internal.py rename to rerun_py/rerun_sdk/depthai_viewer/log/text_internal.py index 41898e4dfa5f..4a9cfd378d3b 100644 --- a/rerun_py/rerun_sdk/rerun/log/text_internal.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/text_internal.py @@ -3,11 +3,11 @@ from typing import Any, Dict, Final, Optional # Fully qualified to avoid circular import -from rerun import bindings -from rerun.components.color import ColorRGBAArray -from rerun.components.instance import InstanceArray -from rerun.components.text_entry import TextEntryArray -from rerun.log import Color, _normalize_colors +from depthai_viewer import bindings +from depthai_viewer.components.color import ColorRGBAArray +from depthai_viewer.components.instance import InstanceArray +from depthai_viewer.components.text_entry import TextEntryArray +from depthai_viewer.log import Color, _normalize_colors __all__ = [ "LogLevel", diff --git a/rerun_py/rerun_sdk/rerun/log/transform.py b/rerun_py/rerun_sdk/depthai_viewer/log/transform.py similarity index 96% rename from rerun_py/rerun_sdk/rerun/log/transform.py rename to rerun_py/rerun_sdk/depthai_viewer/log/transform.py index 52dca28654d0..ad9e1ea8de45 100644 --- a/rerun_py/rerun_sdk/rerun/log/transform.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/transform.py @@ -7,10 +7,10 @@ import numpy.typing as npt -from rerun import bindings -from rerun.log import _to_sequence -from rerun.log.error_utils import _send_warning -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.log import _to_sequence +from depthai_viewer.log.error_utils import _send_warning +from depthai_viewer.log.log_decorator import log_decorator __all__ = [ "log_view_coordinates", diff --git a/rerun_py/rerun_sdk/rerun/log/xlink_stats.py b/rerun_py/rerun_sdk/depthai_viewer/log/xlink_stats.py similarity index 80% rename from rerun_py/rerun_sdk/rerun/log/xlink_stats.py rename to rerun_py/rerun_sdk/depthai_viewer/log/xlink_stats.py index 1c2a95f6e335..5d178c652526 100644 --- a/rerun_py/rerun_sdk/rerun/log/xlink_stats.py +++ b/rerun_py/rerun_sdk/depthai_viewer/log/xlink_stats.py @@ -3,9 +3,9 @@ import numpy as np import numpy.typing as npt -from rerun import bindings -from rerun.components.xlink_stats import XLinkStats -from rerun.log.log_decorator import log_decorator +from depthai_viewer import bindings +from depthai_viewer.components.xlink_stats import XLinkStats +from depthai_viewer.log.log_decorator import log_decorator @log_decorator diff --git a/rerun_py/rerun_sdk/depthai_viewer/py.typed b/rerun_py/rerun_sdk/depthai_viewer/py.typed new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/rerun_py/rerun_sdk/rerun/recording.py b/rerun_py/rerun_sdk/depthai_viewer/recording.py similarity index 97% rename from rerun_py/rerun_sdk/rerun/recording.py rename to rerun_py/rerun_sdk/depthai_viewer/recording.py index efe9b7b25bea..d89b2efc5815 100644 --- a/rerun_py/rerun_sdk/rerun/recording.py +++ b/rerun_py/rerun_sdk/depthai_viewer/recording.py @@ -6,7 +6,7 @@ import string from typing import Any, Optional -from rerun import bindings +from depthai_viewer import bindings DEFAULT_WIDTH = 950 DEFAULT_HEIGHT = 712 @@ -53,7 +53,7 @@ def as_html( html_template = f""" +

Consider using viewer.start_web_viewer_server()