From 7d63c5ca1649c0f469731a596de4d8594b9f72b7 Mon Sep 17 00:00:00 2001 From: Filip Jeretina <59307111+zrezke@users.noreply.github.com> Date: Mon, 3 Jul 2023 23:42:18 +0200 Subject: [PATCH] Release 0.1.1 (#22) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * v0.0.1 of DepthaiViewer, WIP (#1) * node graph scaffolding and a bit of depthai integration * remove import * left, right + depth * fix fps sliders for mono cams * partial refactor, partially added support for device selection. * pc support + currently selected device fixes * reafactor subscriptions to api, doesn't work too well, trouble with syncing the ui with the backend * Partially migrated to websockets for the api * finish moving to websockets for the config api * fix issues after merge, retry websocket connections * fix ws thread not exiting * sleep for 1 sec before trying to reconnect * Ai support + imu support + rotate camera + bug fixes (#9) * ai support + update pipeline on device select * quick fix depth * set subs when selecting device * rename to Depthai Viewer, use changed() for config ui, disable ui when device not selected * added age gender detection * added mobilenet support * pointcloud support * Toggle subs from visible (#4) * very bad implementation of toggling subscriptions based on space view visibility TODO: less cloning and stuff * better implementation and actually seems to work * fix windows not resizing properly when size gets smaller * fix issues with 3d when resizing scene bbox, only force 2d to always have the size of self.scene_bbox * Nuked Subscriptions struct, just use Vec, much nicer, much better aswell, also fixed subscriptions for channels that need some time to actually show up, it all feels a bit hacky tho * Toggle subs from visible (#5) * very bad implementation of toggling subscriptions based on space view visibility TODO: less cloning and stuff * better implementation and actually seems to work * fix windows not resizing properly when size gets smaller * fix issues with 3d when resizing scene bbox, only force 2d to always have the size of self.scene_bbox * Nuked Subscriptions struct, just use Vec, much nicer, much better aswell, also fixed subscriptions for channels that need some time to actually show up, it all feels a bit hacky tho * fix incorrect despawn of entity paths * remove todo comment * Fix ws not sending messages, fix stutter every 2s (#6) * very bad implementation of toggling subscriptions based on space view visibility TODO: less cloning and stuff * better implementation and actually seems to work * fix windows not resizing properly when size gets smaller * fix issues with 3d when resizing scene bbox, only force 2d to always have the size of self.scene_bbox * Nuked Subscriptions struct, just use Vec, much nicer, much better aswell, also fixed subscriptions for channels that need some time to actually show up, it all feels a bit hacky tho * fix incorrect despawn of entity paths * remove todo comment * error handling * fix websocket not sending pipeline, hotfix more or less might keep * change back to unbounded * Imu support (#8) * add imu logging, exclude it from regular space views * fix imu logging * POC imu plotting * Imu accelerometer and gyroscope plotting * add orientation to imu log, make device id a String * fix imu charts layout * imu log add magnetometer * fix right panel ui as much as it makes sense to fix rn * sadly idk how to create Option::None in pyarrow for the magnetometer field * imu logging fixed, magnetometer value is now None when not logged * fix plot scrolling * Merge upstream (#10) * `arrow2_convert` primitive (de)serialization benchmarks (#1742) * arrow2_convert primitive benchmarks * addressing PR comments * Fix logged obb being displayed with half of the requested size (#1749) * benchmarks for common vector ops across `smallvec`/`tinyvec`/std (#1747) * benchmarks for common vector ops * handle N=1 * Tracked 3D cameras lead now to on-hover rays in other space views that show the same camera but don't track it. (#1751) In the same way as a 2D scene causes a on-hover ray in all space views that contain the space camera at which the 2D view "sits". * Improve dealing with raw buffers for texture read/write (#1744) * Replace TextureRowDataInfo with the more versatile Texture2DBufferInfo * comment & naming fixes * `arrow2` erased refcounted clones benchmarks (#1745) * arrow2 erased refcounted clone benchmarks * lint * addressing PR comments * dude * `arrow2` estimated_bytes_size benchmarks (#1743) * arrow2 estimated_bytes_size benchmarks * cleanup * Fix crash when trying to do picking on depth clouds * Readback depth from GPU picking (#1752) * gpu picking in the viewer picks up depth now * WebGL workarounds * Add new ARKitScenes example (#1538) Co-authored-by: Nikolaus West Co-authored-by: Emil Ernerfeldt * Fix log_obb usage (#1761) * Make sure all log_obb uses uses half_size correctly * Remove outdated link from README * Fix docstring of save * Force named arguments of log_scalar * Add link to --memory-limit docs * update ros example * Python SDK: document that we also accept colors in 0-1 floats (#1740) * Python SDK: document that we also accept colors in 0-1 floats * Assume float colors to be in gamma-space, and document that * Update arkitscenes example * Fix bug * typo * py-format * Collapse space-view by default if there is only one child (#1762) * Always create the log_time timeline (#1763) * Columnar timepoints in data tables and during transport (#1767) * columnar timepoints * self review * Fix undo/redo selection shortcut/action changing selection history without changing selection (#1765) * Fix undo/redo selection shortcut/action changing selection history without changing selection Fixes #1172 * typo fix * Don't initialize an SDK session if we are only going to be launching the app (#1768) * Allow torch tensors for log_rigid3 (#1769) * Option to show scene bounding box (#1770) * Include depth clouds in bounding box calculation * Don't wrap text when showing bbox in ui * Handle projective transforms * Nicer selection view: don't wrap second column too early * Add checkbox to show the scene bounding box * Fix a whole lot of crashes, all at once (#1780) * Add typing_extensions to requirements-doc.txt (#1786) * auto_color class-ids if they are present (#1783) * auto_color class-ids if they are present * Update log line in segmentation demo * Avoid tuple structs * Don't run 3rd party bench suites on CI (#1787) * dont run 3rd party bench suites on CI * typo * and other annoyances * Use copilot markers in PR template (#1784) * Use copilot markers in PR template * remove poem Co-authored-by: Clement Rey --------- Co-authored-by: Clement Rey * re_format: barebone support for custom formatting (#1776) * implement barebone support for custom formatting and apply to Tuid * unwrap * rather than [] * use re_tuid * Always send recording_id as part of LogMsg (#1778) * Always send recording_id as part of LogMsg * Rename build_chunk_from_components -> build_data_table_from_components * Don't make RecordingInfo optional * Always default the recording id * Log an error if we hit the initialization issue * Refactor: Add new helper crate `re_log_encoding` (#1772) * CI: Check `rerun` with --no-default features and/or with --features sdk * Create a new helper crate re_transport containing stream_rrd_from_http * Fix warnings * Move file sink to re_transport * wasm compilation fix * Move LogMsg encoding/decoding into re_transport * Fix typo * Fix web build * Fix tests * Remove a lot of unused dependencies with `cargo machete` * Build fix * Clarify * Rename the crate to re_log_encoding * better docstring Co-authored-by: Jeremy Leibs * better readme Co-authored-by: Jeremy Leibs --------- Co-authored-by: Jeremy Leibs * New example code for facebook research segment anything (#1788) * New example code for facebook research segment anything * Add segmentation workaround for users still on 0.4.0 * Images should use class-id as label * Add an alternative tensor-based view * Implement `re_tuid::Tuid::random()` on web (#1796) * Implement `re_tuid::Tuid::random()` on web * Fix bad error message * ci: fix benchmarks (#1799) * workflow: just run --all * datastore: skip bucket permutations etc on CI * i give up, just replace re_log_types by re_log_encoding * Add `minimal_options` example (`RerunArgs`) (#1773) * Allows connecting to remote server through rerun's RerunArgs. Co-authored-by: Clement Rey * Add `pacman` support to `setup_web.sh` (#1797) Co-authored-by: Clement Rey * fix ci (cargo-deny): cargo update -p crossbeam-channel (#1806) * Compile with `panic = "abort"` (#1813) * Compile with `panic = "abort"` This PR sets `panic = "abort"` for both debug and release builds. This cuts down the `rerun` binary size in release builds from 29.9 MB to 22.7 MB - a 25% reduction! ## Details The default panic behavior in Rust is to unwind the stack. This leads to a lot of extra code bloat, and some missed opportunities for optimization. The benefit is that one can let a thread die without crashing the whole application, and one can use `std::panic::catch_unwind` as a kind of try-catch block. We don't make use of these features at all (at least not intentionally), and so are paying a cost for something we don't need. I would also argue that a panic SHOULD lead to a hard crash unless you are building an Erlang-like robust actor system where you use defensive programming to protect against programmer errors (all panics are programmer errors - user errors should use `Result`). * Quiet clippy * Add `rerun --strict`: crash if any warning or error is logged (#1812) * Add `rerun --strict`: crash if any warning or error is logged Part of https://github.com/rerun-io/rerun/issues/1483 * Can't doc-test private functions * Refactor: Remove `TensorTrait` (#1819) * Refactor: Remove `TensorTrait` We don't need it anymore * End-to-end testing of python logging -> store ingestion (#1817) * Sort the arguments to `rerun` * Pass on `LogMsg::Goodbye` just like any other message * Add `rerun --test-receive` * `just py-build --quiet` is now possible * Add scripts/run_python_e2e_test.py * replace `cargo r -p rerun` with `python3 -m rerun` * lint and explain choice of examples * Add to CI * check returncode * Fix e2e test on CI: Don't try to re-build rerun-sdk (#1821) * Use gpu picking for points, streamline/share picking code some more (#1814) * use gpu picking for picking points * gpu based picking no longer works like a fallback but integrates with other picking sources * fix incorrect cursor rounding for picking * refactor picking context to be a pub struct with exposed state * unify ui picking method for 2d & 3d space views * less indentation for picking method * picking rect size is dynamically chosen * fix accidental z scaling in projection correction for picking & make cropped_projection_from_projection easier to read * CI: install pip requirements for Python e2e test * Process 2d points always in batches (#1820) * Fix CI syntax error * New option to disable persistent storage (#1825) * New option to disable persistent storage * New API to reset_time (#1826) * Datastore revamp 1: new indexing model & core datastructures (#1727) * Datastore revamp 2: serialization & formatting (#1735) * Datastore revamp 3: efficient incremental stats (#1739) * Datastore revamp 4: sunset `MsgId` (#1785) * Datastore revamp 5: (#1791) * Datastore revamp 6: sunset `LogMsg` storage + save store to disk (#1795) * Datastore revamp 7: garbage collection (#1801) * Don't assert if inserting a rowid with a matching timepoint does not create a conflict (#1832) * CI: Try installing the correct wheel on CI * CI: try again with the CI * re_query: up to date with latest data types and structures (#1828) * No more raw arrays for primary components * Don't need to carry around component names no more * Cluster keys are now raw-array-less and _not_ optional anymore * that is done indeed * helpers * datastore: incremental metadata registry stats (#1833) * add profile scopes for stats * implement incremental metadata registry stats * lint * future proofing comment * RFC: datastore state of the union & end-to-end batching (#1610) * add batching rfc * Update design/batching.md Co-authored-by: Emil Ernerfeldt * Update design/batching.md Co-authored-by: Emil Ernerfeldt * Update design/batching.md Co-authored-by: Emil Ernerfeldt * Update design/batching.md Co-authored-by: Emil Ernerfeldt * qa component instances vs. instance keys * no sticky * qa are there any special components & non-integer instance keys * give some clue about cell incompatibility * temporary constructs * zstd is already setup * more planning * date and links --------- Co-authored-by: Emil Ernerfeldt * Python CI: use bash as shell * Fix too many points crash (#1822) * Simplify point cloud builder and fix crash on too many points Fixes #1779 * faster point cloud population by not chaining iterators with default values * Use GPU picking for line(like) primitives, fix `interactive` flags (#1829) * line strip builder no longer has user data, exposes picking id instead (not implemented yet) * handle interactive object property when evaluating picking code * take line strip builder directly when building up line draw data * finish implementing picking for lines * remove unused iter_strips_with_vertices * Simplify picking handling now that there are a lot less types. Labels & textured rects are always picked now, fixes #1021 * CI: try to fix mac wheel build * Reduce memory used by staging belts on Web (#1836) In particular this prevents crashing with out of memory on a run-away belt memory usage caused by failure to unmap buffers. A bit concerningly, the fix uses our knowledge of how `wgpu::Device::poll` is broken in the current wgpu version. I took the opportunity to sharpens the definition of `HardwareTier` a bit. * CI: only test the x86_64 wheel on macos * Always flush when we remove a sink (#1830) Whenever we disconnect (or implicitly disconnect by swapping a sink) we should flush the pending messages. Additionally disconnect and flush calls both require releasing the GIL (for the same reason as shutdown previously). * GPU colormapping, first step (#1835) * Add TextureManager2D::get_or_create_with * Small code cleanup * Add code to upload a Tensor to a GPU texture * Add helper method Tensor::image_height_width_depth * Minor code cleanup (multiplicative_tint) * Hook up color textures via the new path * Refactor: introduce ColormappedTexture * Start working on an uint sampler * merge fix * Dumb colormapping of depth textures! * Use turbo for depth maps (and single-channel images :grimace:) * Use grayscale for luminance * ColorMap -> Colormap * Apply annotation context colormaps * Support sint textures too * cleanup * merge fix * Fix RGB images * More cleanup * Better error-handlign and nicer error message * Clean up the SAMPLE_TYPE with constants * Nicer shader interface * Better error handling * Remove dead code * Self-review cleanup * Fix bug in shader when sampling sint textures * Use textureSampleLevel * Apply a gamma to the image (unused as of now) * image_height_width_channels * fix various review comments * Optimize narrow_f64_to_f32s: avoid one allocation * Test and handle all tensor dtypes as images (#1840) * Support i64 and u64 tensors * api_demo: log all image types * Don't even print out the contents of a tensor * Handle unfilterable float textures * fix typo * py-format * Simplify is_float_filterable * Add a helper function pad_and_narrow_and_cast * Reuse existing image * Exclude image_tensors demo from default api_demo * Still run all api demos in e2e test * pyformat * Install the rerun-sdk in CI using --no-index and split out linux wheel build to run first. (#1838) * Install the rerun-sdk by the expected version * Fix comment * typo * Use --no-index when installing the rerun wheel * Use the cargo_version, not the new_version * Split dependency install into its own step * Don't use force-reinstall * Refactor setting of expected_version variable. * Use bash when setting env * Always run the linux job first and use its rrds for the other wheels * GPU tensor colormapping (#1841) * Refactor: introduce struct SliceSelection * Refactor: use SliceSelection inside of ViewTensorState * MVP of tensor colormapping on GPU * Remove old ui code * Support 64-bit tensors by narrowing to f32 * Allow more colormap options * Clippy * Report range errors instead of ignoring them * Sort colormaps * Shorten function name * Create module gpu_bridge * Move some code around * Simnplify API * Create ViewBuilder::new * Fix missing colon in lint.py * fix typos and formatting * Disable texture filtering options for tensors for now * Update docstrings * Add profile scopes * ViewBuilder cleanup * Make ViewBuilder::setup non-Option * Remove Result from thing that cannot fail * Fix colormap numbering * review cleanup * pass in debug_name * Unify the `range` function * typo * Show previews of colormaps when selecting them (#1846) * Make infallible version of get_or_create_texture * Show colormap previews in UI * Spelling * Implement billinear filtering of textures (#1850) * Implement opt-in billinear filtering of textures * bilinear * MVP Support for inline-rendering of Rerun within jupyter notebooks (#1798) (#1834) (#1844) * Introduce the ability to push an rrd binary via iframe.contentWindow.postMessage * New API to output the current buffered messages as a cell in jupyter * Example notebook with the cube demo * Track that we need to send another recording msg after draining the backlog * Dynamically resolve the app location based on git commit. Allow override to use self-hosted assets * Add some crude timeout logic in case the iframe fails to load * Don't persist app state in notebooks * Introduce new MemoryRecording for use with Jupyter notebooks (#1834) * Refactor the relationship between the assorted web / websocket servers (#1844) * Rename RemoteViewerServer to WebViewerSink * CLI arguments for specifying ports * Proper typing for the ports * Disable wheel tests for x86_64-apple-darwin (#1853) * Fix typos in notebook readme (#1852) * Fix the python build when running without web_viewer enabled (#1856) * Error instead of expect inside msg_encode. (#1857) * Restore: New API to reset_time (#1826) (#1854) * Revert "Implement billinear filtering of textures (#1850)" (#1859) This reverts commit d33dab6e7a33f82ab2513058d0f85744e3ce6ef4. * Add Restart command and keyboard shortcut for moving time to start of timeline (#1802) * Add Restart button to timeline UI. This sets the timeline back to zero. * Adds Restart Command & Timeline Command * Adds Ctrl-Shift-Space keyboard modifier * Remove restart button from timeline UI. * Use cmd(Key::LeftArrow) as key combo for restart timeline. * Add TimeControl::restart to restart the current timeline. * Use this from the kb_shortcut function * fix some code nits --------- Co-authored-by: Emil Ernerfeldt * Fix shutdown race condition in `re_sdk_comms` client (#1861) * Wait for encoder to shut down before shutting down the other threads * Remove unused dependencies (#1863) * Gpu picking for depth clouds (#1849) * wip * allow for hovering depth clouds via gpu picking * Use `[x, y]: [u32; 2]` as argument --------- Co-authored-by: Emil Ernerfeldt * Remove manual depth projection from car and nyud examples (#1869) * Remove manual depth projection from car and nyud examples * revert change to cube.ipynb * revert changes to cube.ipynb * third times a charm for cube.ipynb * Improve end-to-end testing slightly (#1862) * CI: Run e2e tests with RUST_LOG=debug * Move installing of pip packaged from CI to e2e script * Re-enable bilinear interpolation again (#1860) * Revert "Revert "Implement billinear filtering of textures (#1850)" (#1859)" This reverts commit 625d2bdd241c09ff9d0ae394ba91565fa48455ec. * Split rectangle.wgsl into fragme/vertex parts to work around naga bug * Use GPU colormapping when showing images in the GUI (#1865) * Cleanup: move Default close to the struct definition * Simplify code: use if-let-else-return * Simplify code: no need for Arc * Add EntityDataUi so that the Tensor ui function knows entity path * Better naming: selection -> item * Simplify code: no optional tensor stats * Less use of anyhow * Use GPU colormapping when showing tensors in GUI * Link to issue * Optimize pad_to_four_elements for debug builds * Refactor: simpler arguments to show_zoomed_image_region_area_outline * Fix missing meter argument * Refactor: break up long function * Less use of Arc * Pipe annotation context to the hover preview * Simplify `AnnotationMap::find` * Use new GPU colormapper for the hover-zoom-in tooltip * Refactor * Add helper function for turning a Tensor into an image::DynamicImage * Fix warning on web builds * Add helper function `Tensor::could_be_dynamic_image` * Implement click-to-copy and click-to-save for tensors without egui * Convert histogram to the new system * Remove the TensorImageCache * Fix TODO formatting * bug fixes and cleanups * Rename some stuff * Build-fix * Simplify some code * Turn off benchmakrs comment on each PR (#1872) * Refactor: remove `GpuTexture2DHandle::invalid` (#1866) * Refactor TexturedRect * Remove GpuTexture2DHandle::invalid * `GpuTexture2DHandle` is always valid * spacing * Update enumflags2 to non-yanked version (#1874) * Update enumflags2 to non-yanked version ``` ❯ cargo update -p enumflags2 Updating crates.io index Updating enumflags2 v0.7.5 -> v0.7.7 Updating enumflags2_derive v0.7.4 -> v0.7.7 Updating proc-macro2 v1.0.47 -> v1.0.56 Updating quote v1.0.21 -> v1.0.26 Adding syn v2.0.15 ``` Unfortunately this adds the syn v2 dependency for some platforms * Updating dependencies is a valid label * cargo deny: check more platforms * fix stuff broken from merging upstream --------- Co-authored-by: Clement Rey Co-authored-by: benjamin de charmoy Co-authored-by: Andreas Reich Co-authored-by: Emil Ernerfeldt Co-authored-by: Pablo Vela Co-authored-by: Nikolaus West Co-authored-by: Jeremy Leibs Co-authored-by: h3mosphere <129932586+h3mosphere@users.noreply.github.com> Co-authored-by: Urho Laukkarinen * expose depth config, get available sensor resolutions for the selected device * move removing entities to a place where the removal will always be tried, not just when expanding space view header * added depth alignment * added stream enabled buttons * Depth cloud textures are now cached frame-to-frame (#1913) * Depth cloud textures are now cached frame-to-frame Simplified logic a bit by enforcing F32 texture conversion (there was a u16 path for native only) * doc fix * naming consistency, format check, remove unnecessary scaling * improve depth cloud texture check * fixes after merging * Smooth out scroll wheel input for camera zooming (#1920) * Always spawn instead of fork in multiprocessing example (#1922) * Add `--num-frames` arg to canny (webcam) example (#1923) * fix formatting issues * rerun format fix * fix spelling * lint check fixes * mypy * some more lint fixes * some more fixes for python lint checks * Collect extra egui features into the main Cargo.toml (#1926) * just rs-run-all * `just py-run-all-{native|web|rrd}` (#1927) * make all python examples handle unknown arguments gracefully * just py-run-all-{native|web|rrd} * bump version * comment out clang * Join threads at end of multi-threading example (#1934) * Add argument parsing to the rerun_demo (#1925) * More robust wait for exit condition during .serve() (#1939) * More robust wait for exit condition during .serve() * lint * Use zipfile python library instead of `unzip` command in arkitscene (#1936) * Use zipfile python library instead of `unzip` command in arkitscene Windows doesn't have unzip! * Nit: import sort order --------- Co-authored-by: Nikolaus West * Fix annotation images sometimes drawn in the background. (#1933) This caused fairly ugly rendering whenever that happened. Also cleaned up redundant image/textured_rect defintions in spatial scene buildup * Fix backslashes in arkitscene rigid transformation path (#1938) * Fix backslashes in arkitscene rigid transformation path Should be fixed properly by https://github.com/rerun-io/rerun/issues/1937 * Use PosixPath instead of .replace("\\", "/") --------- Co-authored-by: Nikolaus West * Fix hover/select highlights when picking single points in a scene with multiple point clouds (#1942) Batch vertex offset for single highlights wasn't correctly computed. Different parts of the code made different assumptions what offsets referred to * Fix hovering depth clouds (#1943) We didn't add to `scene.primitives.image`. Instead of adding to this list, it is instead now no longer needed for picking since we can very easily query for tensor again. * change python workflow for testing purposes, remove windows and macos wheels * add back one macos so the matrix is valid * 2.5GB before GC kick in on web (#1944) * change name to depthai-viewer * change pip install/uninstalls from rerun-sdk to depthai-viewer * change all occurances of rerun-sdk to depthai-viewer * change windows runner to windows-latest for now when using my personal gh * Release `0.5.0` (#1919) * changelog * 0.5.0-alpha.0 * more changelog * re_format: fix implicit recursive feature flags * publish_crates.sh: fix crate ordering * Join threads at end of multi-threading example (#1934) * Add argument parsing to the rerun_demo (#1925) * More robust wait for exit condition during .serve() (#1939) * More robust wait for exit condition during .serve() * lint * Use zipfile python library instead of `unzip` command in arkitscene (#1936) * Use zipfile python library instead of `unzip` command in arkitscene Windows doesn't have unzip! * Nit: import sort order --------- Co-authored-by: Nikolaus West * Fix annotation images sometimes drawn in the background. (#1933) This caused fairly ugly rendering whenever that happened. Also cleaned up redundant image/textured_rect defintions in spatial scene buildup * Fix backslashes in arkitscene rigid transformation path (#1938) * Fix backslashes in arkitscene rigid transformation path Should be fixed properly by https://github.com/rerun-io/rerun/issues/1937 * Use PosixPath instead of .replace("\\", "/") --------- Co-authored-by: Nikolaus West * changelog * Fix hover/select highlights when picking single points in a scene with multiple point clouds (#1942) Batch vertex offset for single highlights wasn't correctly computed. Different parts of the code made different assumptions what offsets referred to * changelog * Fix hovering depth clouds (#1943) We didn't add to `scene.primitives.image`. Instead of adding to this list, it is instead now no longer needed for picking since we can very easily query for tensor again. * changelog * 2.5GB before GC kick in on web (#1944) * changelog * 0.5.0 --------- Co-authored-by: Jeremy Leibs Co-authored-by: Andreas Reich Co-authored-by: Nikolaus West * Fix imu plots scrolling past their container * fix bottom/top panel sizing after showing the spinner on config setting * Lint error names in `map_err` (#1948) * Lint: Properly name errors in `map_err` * Use correct names for errors * fix config and stats tabs not being able to be viewed at the same time, renamed stats to IMU * New dispatch-only workflow for running the lint-job (#1950) * Fix secret in dispatch_lint.yml * Only maintain a single manual-dispatch job for testing workflows * apply button, have to make it look a bit nicer, but will do that when I fix scrolling in device configuration panel * Bump hyper version due to RUSTSEC-2023-0034 (#1951) * Add other build parameterizations to manual_dispatch.yml * Use proper if gates on the manual_dispatch.yml jobs * Add ability to save cache to manual_disaptch.yml * Standard case of inputs * Add manual step for packaging to 'manual_dispatch.yml' * add back panels when the underlying subscription reappears * Fix crash for missing class ids causing zero sized texture (#1947) * Fix crash for missing class ids causing zero sized texture Two things fixed actually: * texture manager now checks for zero sized texture, this ripples out in a lot more error handling * class id texture texture handles not having any classes gracefully * Use Display for all errors * typo * Better naming of error * Better docs and names * Fix off-by-one error * some use of `context`, change which error is implicitly converted on texture manager2d --------- Co-authored-by: Emil Ernerfeldt * fixes LR stream subscriptions (maybe breaks panels reappearing after sub is gone) (#15) * make config ui scrollable, fix padding * Move clippy_wasm/clippy.toml to under scripts (#1949) * Move clippy_wasm/clippy.toml to under scripts This is just to clean up the root a bit, and to move it closer to where it is actually used. * Fix comment typo --------- Co-authored-by: Andreas Reich * change crate version to 0.6.0-alpha.0 (#1952) * New workflow_dispatch for building wheels for a PR * initial light mode, luxonis depthai viewer * Rename build_wheels_for_pr.yml -> manual_build_wheels_for_pr.yml * Fix run-wasm crash on trying to wait for server (#1959) This ruined my dev experience for re_renderer examples a bit. Not sure what made the previous hack stop working, might be a timing issue. It ended up crashing the `cargo_run_wasm` web server * Update egui to latest and wgpu to 0.16 (#1958) * update to wgpu 0.16 and egui using this version * shader fixup for type aliases and rectangle shader * shader signed/unsigned shenanigans * more signed/unsigned issues * fix texture component count * fix picking layer depth readback crash on web * patch wgpu * better texture size estimate * fix patches * Handle leaking of prerelease into alpha version (#1953) * Make device config panel remember it's height throughout loading * hide time panel, make ai model dropdown wider * Fix incorrect memory usage stats for destroyed on-creation-mapped buffers (#1963) We actually don't have anywhere where we discard this kind of buffer yet, but if we would the stats would be wrong (noticed while doing quick & dirty experiments on the staging belt) * New manual workflow for running benches * Introduce new reusable workflow jobs and cleanup manual trigger (#1954) There are 8 reusable workflow "components" that we can use to build different scenarios: reusable_checks.yml - These are all the checks that run to ensure the code is formatted, reusable_bench.yml - This job runs the benchmarks to check for performance regressions. reusable_deploy_docs- This job deploys the python and rust documentation to https://ref.rerun.io reusable_build_and_test_wheels.yml - This job builds the wheels, runs the end-to-end test, and produces a sample RRD. The artifacts are accessible via GitHub artifacts, but not otherwise uploaded anywhere. reusable_upload_wheels.yml- This job uploads the wheels to google cloud reusable_build_web.yml - This job builds the wasm artifacts for the web. reusable_upload_web.yml - This job uploads the web assets to google cloud. By default this only uploads to: app.rerun.io/commit// reusable_pr_summary.yml - This job updates the PR summary with the results of the CI run. Example summary can be found at: https://storage.googleapis.com/rerun-builds/pull_request/1954/index.html This also introduces a manual_dispatch.yml helper as a convenience for testing these workflows and their different parameterizations. * New manual workflow for adhoc web builds * Use new CI workflows for pull-request and merge to main (#1955) on_pull_request.yml includes the following pieces: - reusable_checks.yml -- Run all of the lints, code-formatting, tests, etc. - reusable_build_and_test_wheels.yml -- Configured in a "minimal" mode with SDK includes end-to-end test and produces an rrd. - reusable_build_web.yml -- Verifies we can build the wasm - reusable_upload_web.yml -- Uploads the RRD and Wasm to app.rerun.io to confirm the demo works as well as support notebook testing. - reusable_pr_summary.yml -- Create a manifest page with a link to the on_push_main.yml includes the following pieces: - reusable_checks.yml -- Run all of the lints, code-formatting, tests, etc. - reusable_bench.yml -- Run the benchmarks - reusable_build_and_test_wheels.yml -- Builds wheels for all platforms - reusable_upload_wheel.yml -- Uploads the all the wheels to gcloud - reusable_build_web.yml -- Builds the wasm bundle - reusable_upload_web.yml -- Uploads the RRD and Wasm to app.rerun.io - reusable_pip_index.yml -- Generates a pip index page which can be used to install packages with, e.g. * Fix name of on_push_main.yml * Fix usage of long commit in generate_prerelease_pip_index.py * Try making pull-request workflows non-concurrent (#1970) * Try making pull-request workflows non-concurrent * Concurrency groups for push_main as well * Each sub-workflow needs its own name or they fight * Another attempt to make jobs non-concurrent on a per-PR basis (#1974) * Another attempt to make jobs non-concurrent on a per-PR basis * Move concurrency into the reusable job * Jobs with duplicated instances still need separate concurrency keys based on platform * Round to nearest color_index when doing color mapping (#1969) * Full (experimental) WebGPU support (#1965) * always build with unstable web sys apis * Make shader Tint friendly * expose webgl feature flag on re_renderer & re_viewer * fix bug link on negative hexadecimal * hardware tier is now created from wgpu adapter * sort out build flags for webgpu & document building webviewer * introduce shader text replacement workarounds to workaround current chrome issue * latest egui master * typo fix * doc fixes, use if cfg! instead of attribute cfg * move backend to rerun * If there's a `{{ pr-build-summary }}` in the PR description, update it. (#1971) * If there's a `{{ pr-build-summary }}` in the PR description, update it. * Add comment to the PR template * Add pull-requests permission to pr_summary job * Run the cube notebook on PR (#1972) * Run the cube notebook on PR * Add notebooks to the build summary * Use the new concurrency model * reformat py files * reformat * fix pylint errors * Add ability to manually run a web build to upload to an adhoc name (#1966) * Add ability to manually run a web build to upload to an adhoc name * Pass through ADHOC_NAME * Add a concurrency criteria for the new adhoc job * Make input description more explicit * change entity paths * merged wip albedo colormap into latest depth_cloud * remove pointclouds generated in sdk * fix compiler error, trying to compile frame.close for wasm * Default to albedo texture for depth cloud, added support for mono albedo textures * restart backend on failure, added oak_cam.device.close seems to really close the cam * py lint fix * don't run notebooks * remove run-notebook dependency --------- Co-authored-by: Clement Rey Co-authored-by: benjamin de charmoy Co-authored-by: Andreas Reich Co-authored-by: Emil Ernerfeldt Co-authored-by: Pablo Vela Co-authored-by: Nikolaus West Co-authored-by: Jeremy Leibs Co-authored-by: h3mosphere <129932586+h3mosphere@users.noreply.github.com> Co-authored-by: Urho Laukkarinen Co-authored-by: Nikolaus West * Fix rerun lints * rename binary, always start with memory-limit, pin depthai dependencies, fix errors after changing dependency versions * remove compiler warnings * fix memory leak when app is in background * Custom viewport UI (#4) * custom blueprint panel, show logical space views for depthai-viewer users, added settings clog on top of space view tab to configure what is visible * small fixes, clear entity_paths every time to avoid displaying an unavailable entity_path in space view options ui * custom left panel to add or remove space view instances, created a new default viewport layout. Improved behaviour when a panel re appears after user selected to hide it, then if stream stops and starts again the panel will be spawned back in correctly. * improve auto layout to not split when only 3D or 2D view is available * MJPEG encode image frames if connected to a PoE device. Only add magnetometer to imu sensors list if the device has a BNO IMU. Lower the memory limit to 100MB * Styling (#6) * initial styling impl * make buttons that should be small, small * Runtime depth config and fix device selection ui * comment * Proper runtime depth config updates * switch to Yolo v8 * add comma to label for non open zoo models * split 2d + 3d cam view vertically instead of horizontally * Tabify all panels (except for blueprint) (#7) * initial styling impl * make buttons that should be small, small * Runtime depth config and fix device selection ui * comment * Proper runtime depth config updates * switch to Yolo v8 * add comma to label for non open zoo models * split 2d + 3d cam view vertically instead of horizontally * Make the UI more configurable by converting the right panel into tabs. TODO: UX while laying out the panels. When a new space view appears only update the viewport layout, try to keep the user configured fixed function panels as they were. Just handle it in a way that is intuitive * remove bottom panel, switch to RAW imu sensors * XLink statistics initial implementation * initial xlink throughput statistics impllementation, have to glow it up a bit and maybe clean up the code * Xlink and rerun rename (#9) * Rename rerun py library to depthai_viewer * bug fixes and started working on a smart auto layout that operates on an existing tree, to preserve ui as much as possible, while also creating good layouts * auto layout * Fix maximize not working and add maximize for Stats tab * delete profiling stuff that shouldn't have been commited * mostly fix smart layout, TODO: detect when you can group mono and color 3d + 2d views into a 4 way split * add docstring for update_tree * WIP auto layout can_create_mono_quad checker, not at all finished yet * pass lint checks and bugfixes * forgot to sort imports * Fix mypy lint (TODO: Proper typing, especially in the comms from back to store to ws) other types are pretty solid * pylints and fix Queue typehinting * fix doc build * try to pass pylints with py.typed * ignore misc mypy errors * forgot to run black formatter * switch back to old ci * change version to 0.0.1 * format pyproject.toml * add back check_version to version_util.py * switch to normal runners * try cache-apt-pkgs-action@1.2.4 * sync mono camera settings * fix web build * Update scripts/version_util.py * Some fixes (#11) * v0.0.1 of DepthaiViewer, WIP (#1) * node graph scaffolding and a bit of depthai integration * remove import * left, right + depth * fix fps sliders for mono cams * partial refactor, partially added support for device selection. * pc support + currently selected device fixes * reafactor subscriptions to api, doesn't work too well, trouble with syncing the ui with the backend * Partially migrated to websockets for the api * finish moving to websockets for the config api * fix issues after merge, retry websocket connections * fix ws thread not exiting * sleep for 1 sec before trying to reconnect * Ai support + imu support + rotate camera + bug fixes (#9) * ai support + update pipeline on device select * quick fix depth * set subs when selecting device * rename to Depthai Viewer, use changed() for config ui, disable ui when device not selected * added age gender detection * added mobilenet support * pointcloud support * Toggle subs from visible (#4) * very bad implementation of toggling subscriptions based on space view visibility TODO: less cloning and stuff * better implementation and actually seems to work * fix windows not resizing properly when size gets smaller * fix issues with 3d when resizing scene bbox, only force 2d to always have the size of self.scene_bbox * Nuked Subscriptions struct, just use Vec, much nicer, much better aswell, also fixed subscriptions for channels that need some time to actually show up, it all feels a bit hacky tho * Toggle subs from visible (#5) * very bad implementation of toggling subscriptions based on space view visibility TODO: less cloning and stuff * better implementation and actually seems to work * fix windows not resizing properly when size gets smaller * fix issues with 3d when resizing scene bbox, only force 2d to always have the size of self.scene_bbox * Nuked Subscriptions struct, just use Vec, much nicer, much better aswell, also fixed subscriptions for channels that need some time to actually show up, it all feels a bit hacky tho * fix incorrect despawn of entity paths * remove todo comment * Fix ws not sending messages, fix stutter every 2s (#6) * very bad implementation of toggling subscriptions based on space view visibility TODO: less cloning and stuff * better implementation and actually seems to work * fix windows not resizing properly when size gets smaller * fix issues with 3d when resizing scene bbox, only force 2d to always have the size of self.scene_bbox * Nuked Subscriptions struct, just use Vec, much nicer, much better aswell, also fixed subscriptions for channels that need some time to actually show up, it all feels a bit hacky tho * fix incorrect despawn of entity paths * remove todo comment * error handling * fix websocket not sending pipeline, hotfix more or less might keep * change back to unbounded * Imu support (#8) * add imu logging, exclude it from regular space views * fix imu logging * POC imu plotting * Imu accelerometer and gyroscope plotting * add orientation to imu log, make device id a String * fix imu charts layout * imu log add magnetometer * fix right panel ui as much as it makes sense to fix rn * sadly idk how to create Option::None in pyarrow for the magnetometer field * imu logging fixed, magnetometer value is now None when not logged * fix plot scrolling * Merge upstream (#10) * `arrow2_convert` primitive (de)serialization benchmarks (#1742) * arrow2_convert primitive benchmarks * addressing PR comments * Fix logged obb being displayed with half of the requested size (#1749) * benchmarks for common vector ops across `smallvec`/`tinyvec`/std (#1747) * benchmarks for common vector ops * handle N=1 * Tracked 3D cameras lead now to on-hover rays in other space views that show the same camera but don't track it. (#1751) In the same way as a 2D scene causes a on-hover ray in all space views that contain the space camera at which the 2D view "sits". * Improve dealing with raw buffers for texture read/write (#1744) * Replace TextureRowDataInfo with the more versatile Texture2DBufferInfo * comment & naming fixes * `arrow2` erased refcounted clones benchmarks (#1745) * arrow2 erased refcounted clone benchmarks * lint * addressing PR comments * dude * `arrow2` estimated_bytes_size benchmarks (#1743) * arrow2 estimated_bytes_size benchmarks * cleanup * Fix crash when trying to do picking on depth clouds * Readback depth from GPU picking (#1752) * gpu picking in the viewer picks up depth now * WebGL workarounds * Add new ARKitScenes example (#1538) Co-authored-by: Nikolaus West Co-authored-by: Emil Ernerfeldt * Fix log_obb usage (#1761) * Make sure all log_obb uses uses half_size correctly * Remove outdated link from README * Fix docstring of save * Force named arguments of log_scalar * Add link to --memory-limit docs * update ros example * Python SDK: document that we also accept colors in 0-1 floats (#1740) * Python SDK: document that we also accept colors in 0-1 floats * Assume float colors to be in gamma-space, and document that * Update arkitscenes example * Fix bug * typo * py-format * Collapse space-view by default if there is only one child (#1762) * Always create the log_time timeline (#1763) * Columnar timepoints in data tables and during transport (#1767) * columnar timepoints * self review * Fix undo/redo selection shortcut/action changing selection history without changing selection (#1765) * Fix undo/redo selection shortcut/action changing selection history without changing selection Fixes #1172 * typo fix * Don't initialize an SDK session if we are only going to be launching the app (#1768) * Allow torch tensors for log_rigid3 (#1769) * Option to show scene bounding box (#1770) * Include depth clouds in bounding box calculation * Don't wrap text when showing bbox in ui * Handle projective transforms * Nicer selection view: don't wrap second column too early * Add checkbox to show the scene bounding box * Fix a whole lot of crashes, all at once (#1780) * Add typing_extensions to requirements-doc.txt (#1786) * auto_color class-ids if they are present (#1783) * auto_color class-ids if they are present * Update log line in segmentation demo * Avoid tuple structs * Don't run 3rd party bench suites on CI (#1787) * dont run 3rd party bench suites on CI * typo * and other annoyances * Use copilot markers in PR template (#1784) * Use copilot markers in PR template * remove poem Co-authored-by: Clement Rey --------- Co-authored-by: Clement Rey * re_format: barebone support for custom formatting (#1776) * implement barebone support for custom formatting and apply to Tuid * unwrap * rather than [] * use re_tuid * Always send recording_id as part of LogMsg (#1778) * Always send recording_id as part of LogMsg * Rename build_chunk_from_components -> build_data_table_from_components * Don't make RecordingInfo optional * Always default the recording id * Log an error if we hit the initialization issue * Refactor: Add new helper crate `re_log_encoding` (#1772) * CI: Check `rerun` with --no-default features and/or with --features sdk * Create a new helper crate re_transport containing stream_rrd_from_http * Fix warnings * Move file sink to re_transport * wasm compilation fix * Move LogMsg encoding/decoding into re_transport * Fix typo * Fix web build * Fix tests * Remove a lot of unused dependencies with `cargo machete` * Build fix * Clarify * Rename the crate to re_log_encoding * better docstring Co-authored-by: Jeremy Leibs * better readme Co-authored-by: Jeremy Leibs --------- Co-authored-by: Jeremy Leibs * New example code for facebook research segment anything (#1788) * New example code for facebook research segment anything * Add segmentation workaround for users still on 0.4.0 * Images should use class-id as label * Add an alternative tensor-based view * Implement `re_tuid::Tuid::random()` on web (#1796) * Implement `re_tuid::Tuid::random()` on web * Fix bad error message * ci: fix benchmarks (#1799) * workflow: just run --all * datastore: skip bucket permutations etc on CI * i give up, just replace re_log_types by re_log_encoding * Add `minimal_options` example (`RerunArgs`) (#1773) * Allows connecting to remote server through rerun's RerunArgs. Co-authored-by: Clement Rey * Add `pacman` support to `setup_web.sh` (#1797) Co-authored-by: Clement Rey * fix ci (cargo-deny): cargo update -p crossbeam-channel (#1806) * Compile with `panic = "abort"` (#1813) * Compile with `panic = "abort"` This PR sets `panic = "abort"` for both debug and release builds. This cuts down the `rerun` binary size in release builds from 29.9 MB to 22.7 MB - a 25% reduction! ## Details The default panic behavior in Rust is to unwind the stack. This leads to a lot of extra code bloat, and some missed opportunities for optimization. The benefit is that one can let a thread die without crashing the whole application, and one can use `std::panic::catch_unwind` as a kind of try-catch block. We don't make use of these features at all (at least not intentionally), and so are paying a cost for something we don't need. I would also argue that a panic SHOULD lead to a hard crash unless you are building an Erlang-like robust actor system where you use defensive programming to protect against programmer errors (all panics are programmer errors - user errors should use `Result`). * Quiet clippy * Add `rerun --strict`: crash if any warning or error is logged (#1812) * Add `rerun --strict`: crash if any warning or error is logged Part of https://github.com/rerun-io/rerun/issues/1483 * Can't doc-test private functions * Refactor: Remove `TensorTrait` (#1819) * Refactor: Remove `TensorTrait` We don't need it anymore * End-to-end testing of python logging -> store ingestion (#1817) * Sort the arguments to `rerun` * Pass on `LogMsg::Goodbye` just like any other message * Add `rerun --test-receive` * `just py-build --quiet` is now possible * Add scripts/run_python_e2e_test.py * replace `cargo r -p rerun` with `python3 -m rerun` * lint and explain choice of examples * Add to CI * check returncode * Fix e2e test on CI: Don't try to re-build rerun-sdk (#1821) * Use gpu picking for points, streamline/share picking code some more (#1814) * use gpu picking for picking points * gpu based picking no longer works like a fallback but integrates with other picking sources * fix incorrect cursor rounding for picking * refactor picking context to be a pub struct with exposed state * unify ui picking method for 2d & 3d space views * less indentation for picking method * picking rect size is dynamically chosen * fix accidental z scaling in projection correction for picking & make cropped_projection_from_projection easier to read * CI: install pip requirements for Python e2e test * Process 2d points always in batches (#1820) * Fix CI syntax error * New option to disable persistent storage (#1825) * New option to disable persistent storage * New API to reset_time (#1826) * Datastore revamp 1: new indexing model & core datastructures (#1727) * Datastore revamp 2: serialization & formatting (#1735) * Datastore revamp 3: efficient incremental stats (#1739) * Datastore revamp 4: sunset `MsgId` (#1785) * Datastore revamp 5: (#1791) * Datastore revamp 6: sunset `LogMsg` storage + save store to disk (#1795) * Datastore revamp 7: garbage collection (#1801) * Don't assert if inserting a rowid with a matching timepoint does not create a conflict (#1832) * CI: Try installing the correct wheel on CI * CI: try again with the CI * re_query: up to date with latest data types and structures (#1828) * No more raw arrays for primary components * Don't need to carry around component names no more * Cluster keys are now raw-array-less and _not_ optional anymore * that is done indeed * helpers * datastore: incremental metadata registry stats (#1833) * add profile scopes for stats * implement incremental metadata registry stats * lint * future proofing comment * RFC: datastore state of the union & end-to-end batching (#1610) * add batching rfc * Update design/batching.md Co-authored-by: Emil Ernerfeldt * Update design/batching.md Co-authored-by: Emil Ernerfeldt * Update design/batching.md Co-authored-by: Emil Ernerfeldt * Update design/batching.md Co-authored-by: Emil Ernerfeldt * qa component instances vs. instance keys * no sticky * qa are there any special components & non-integer instance keys * give some clue about cell incompatibility * temporary constructs * zstd is already setup * more planning * date and links --------- Co-authored-by: Emil Ernerfeldt * Python CI: use bash as shell * Fix too many points crash (#1822) * Simplify point cloud builder and fix crash on too many points Fixes #1779 * faster point cloud population by not chaining iterators with default values * Use GPU picking for line(like) primitives, fix `interactive` flags (#1829) * line strip builder no longer has user data, exposes picking id instead (not implemented yet) * handle interactive object property when evaluating picking code * take line strip builder directly when building up line draw data * finish implementing picking for lines * remove unused iter_strips_with_vertices * Simplify picking handling now that there are a lot less types. Labels & textured rects are always picked now, fixes #1021 * CI: try to fix mac wheel build * Reduce memory used by staging belts on Web (#1836) In particular this prevents crashing with out of memory on a run-away belt memory usage caused by failure to unmap buffers. A bit concerningly, the fix uses our knowledge of how `wgpu::Device::poll` is broken in the current wgpu version. I took the opportunity to sharpens the definition of `HardwareTier` a bit. * CI: only test the x86_64 wheel on macos * Always flush when we remove a sink (#1830) Whenever we disconnect (or implicitly disconnect by swapping a sink) we should flush the pending messages. Additionally disconnect and flush calls both require releasing the GIL (for the same reason as shutdown previously). * GPU colormapping, first step (#1835) * Add TextureManager2D::get_or_create_with * Small code cleanup * Add code to upload a Tensor to a GPU texture * Add helper method Tensor::image_height_width_depth * Minor code cleanup (multiplicative_tint) * Hook up color textures via the new path * Refactor: introduce ColormappedTexture * Start working on an uint sampler * merge fix * Dumb colormapping of depth textures! * Use turbo for depth maps (and single-channel images :grimace:) * Use grayscale for luminance * ColorMap -> Colormap * Apply annotation context colormaps * Support sint textures too * cleanup * merge fix * Fix RGB images * More cleanup * Better error-handlign and nicer error message * Clean up the SAMPLE_TYPE with constants * Nicer shader interface * Better error handling * Remove dead code * Self-review cleanup * Fix bug in shader when sampling sint textures * Use textureSampleLevel * Apply a gamma to the image (unused as of now) * image_height_width_channels * fix various review comments * Optimize narrow_f64_to_f32s: avoid one allocation * Test and handle all tensor dtypes as images (#1840) * Support i64 and u64 tensors * api_demo: log all image types * Don't even print out the contents of a tensor * Handle unfilterable float textures * fix typo * py-format * Simplify is_float_filterable * Add a helper function pad_and_narrow_and_cast * Reuse existing image * Exclude image_tensors demo from default api_demo * Still run all api demos in e2e test * pyformat * Install the rerun-sdk in CI using --no-index and split out linux wheel build to run first. (#1838) * Install the rerun-sdk by the expected version * Fix comment * typo * Use --no-index when installing the rerun wheel * Use the cargo_version, not the new_version * Split dependency install into its own step * Don't use force-reinstall * Refactor setting of expected_version variable. * Use bash when setting env * Always run the linux job first and use its rrds for the other wheels * GPU tensor colormapping (#1841) * Refactor: introduce struct SliceSelection * Refactor: use SliceSelection inside of ViewTensorState * MVP of tensor colormapping on GPU * Remove old ui code * Support 64-bit tensors by narrowing to f32 * Allow more colormap options * Clippy * Report range errors instead of ignoring them * Sort colormaps * Shorten function name * Create module gpu_bridge * Move some code around * Simnplify API * Create ViewBuilder::new * Fix missing colon in lint.py * fix typos and formatting * Disable texture filtering options for tensors for now * Update docstrings * Add profile scopes * ViewBuilder cleanup * Make ViewBuilder::setup non-Option * Remove Result from thing that cannot fail * Fix colormap numbering * review cleanup * pass in debug_name * Unify the `range` function * typo * Show previews of colormaps when selecting them (#1846) * Make infallible version of get_or_create_texture * Show colormap previews in UI * Spelling * Implement billinear filtering of textures (#1850) * Implement opt-in billinear filtering of textures * bilinear * MVP Support for inline-rendering of Rerun within jupyter notebooks (#1798) (#1834) (#1844) * Introduce the ability to push an rrd binary via iframe.contentWindow.postMessage * New API to output the current buffered messages as a cell in jupyter * Example notebook with the cube demo * Track that we need to send another recording msg after draining the backlog * Dynamically resolve the app location based on git commit. Allow override to use self-hosted assets * Add some crude timeout logic in case the iframe fails to load * Don't persist app state in notebooks * Introduce new MemoryRecording for use with Jupyter notebooks (#1834) * Refactor the relationship between the assorted web / websocket servers (#1844) * Rename RemoteViewerServer to WebViewerSink * CLI arguments for specifying ports * Proper typing for the ports * Disable wheel tests for x86_64-apple-darwin (#1853) * Fix typos in notebook readme (#1852) * Fix the python build when running without web_viewer enabled (#1856) * Error instead of expect inside msg_encode. (#1857) * Restore: New API to reset_time (#1826) (#1854) * Revert "Implement billinear filtering of textures (#1850)" (#1859) This reverts commit d33dab6e7a33f82ab2513058d0f85744e3ce6ef4. * Add Restart command and keyboard shortcut for moving time to start of timeline (#1802) * Add Restart button to timeline UI. This sets the timeline back to zero. * Adds Restart Command & Timeline Command * Adds Ctrl-Shift-Space keyboard modifier * Remove restart button from timeline UI. * Use cmd(Key::LeftArrow) as key combo for restart timeline. * Add TimeControl::restart to restart the current timeline. * Use this from the kb_shortcut function * fix some code nits --------- Co-authored-by: Emil Ernerfeldt * Fix shutdown race condition in `re_sdk_comms` client (#1861) * Wait for encoder to shut down before shutting down the other threads * Remove unused dependencies (#1863) * Gpu picking for depth clouds (#1849) * wip * allow for hovering depth clouds via gpu picking * Use `[x, y]: [u32; 2]` as argument --------- Co-authored-by: Emil Ernerfeldt * Remove manual depth projection from car and nyud examples (#1869) * Remove manual depth projection from car and nyud examples * revert change to cube.ipynb * revert changes to cube.ipynb * third times a charm for cube.ipynb * Improve end-to-end testing slightly (#1862) * CI: Run e2e tests with RUST_LOG=debug * Move installing of pip packaged from CI to e2e script * Re-enable bilinear interpolation again (#1860) * Revert "Revert "Implement billinear filtering of textures (#1850)" (#1859)" This reverts commit 625d2bdd241c09ff9d0ae394ba91565fa48455ec. * Split rectangle.wgsl into fragme/vertex parts to work around naga bug * Use GPU colormapping when showing images in the GUI (#1865) * Cleanup: move Default close to the struct definition * Simplify code: use if-let-else-return * Simplify code: no need for Arc * Add EntityDataUi so that the Tensor ui function knows entity path * Better naming: selection -> item * Simplify code: no optional tensor stats * Less use of anyhow * Use GPU colormapping when showing tensors in GUI * Link to issue * Optimize pad_to_four_elements for debug builds * Refactor: simpler arguments to show_zoomed_image_region_area_outline * Fix missing meter argument * Refactor: break up long function * Less use of Arc * Pipe annotation context to the hover preview * Simplify `AnnotationMap::find` * Use new GPU colormapper for the hover-zoom-in tooltip * Refactor * Add helper function for turning a Tensor into an image::DynamicImage * Fix warning on web builds * Add helper function `Tensor::could_be_dynamic_image` * Implement click-to-copy and click-to-save for tensors without egui * Convert histogram to the new system * Remove the TensorImageCache * Fix TODO formatting * bug fixes and cleanups * Rename some stuff * Build-fix * Simplify some code * Turn off benchmakrs comment on each PR (#1872) * Refactor: remove `GpuTexture2DHandle::invalid` (#1866) * Refactor TexturedRect * Remove GpuTexture2DHandle::invalid * `GpuTexture2DHandle` is always valid * spacing * Update enumflags2 to non-yanked version (#1874) * Update enumflags2 to non-yanked version ``` ❯ cargo update -p enumflags2 Updating crates.io index Updating enumflags2 v0.7.5 -> v0.7.7 Updating enumflags2_derive v0.7.4 -> v0.7.7 Updating proc-macro2 v1.0.47 -> v1.0.56 Updating quote v1.0.21 -> v1.0.26 Adding syn v2.0.15 ``` Unfortunately this adds the syn v2 dependency for some platforms * Updating dependencies is a valid label * cargo deny: check more platforms * fix stuff broken from merging upstream --------- Co-authored-by: Clement Rey Co-authored-by: benjamin de charmoy Co-authored-by: Andreas Reich Co-authored-by: Emil Ernerfeldt Co-authored-by: Pablo Vela Co-authored-by: Nikolaus West Co-authored-by: Jeremy Leibs Co-authored-by: h3mosphere <129932586+h3mosphere@users.noreply.github.com> Co-authored-by: Urho Laukkarinen * expose depth config, get available sensor resolutions for the selected device * move removing entities to a place where the removal will always be tried, not just when expanding space view header * added depth alignment * added stream enabled buttons * Depth cloud textures are now cached frame-to-frame (#1913) * Depth cloud textures are now cached frame-to-frame Simplified logic a bit by enforcing F32 texture conversion (there was a u16 path for native only) * doc fix * naming consistency, format check, remove unnecessary scaling * improve depth cloud texture check * fixes after merging * Smooth out scroll wheel input for camera zooming (#1920) * Always spawn instead of fork in multiprocessing example (#1922) * Add `--num-frames` arg to canny (webcam) example (#1923) * fix formatting issues * rerun format fix * fix spelling * lint check fixes * mypy * some more lint fixes * some more fixes for python lint checks * Collect extra egui features into the main Cargo.toml (#1926) * just rs-run-all * `just py-run-all-{native|web|rrd}` (#1927) * make all python examples handle unknown arguments gracefully * just py-run-all-{native|web|rrd} * bump version * comment out clang * Join threads at end of multi-threading example (#1934) * Add argument parsing to the rerun_demo (#1925) * More robust wait for exit condition during .serve() (#1939) * More robust wait for exit condition during .serve() * lint * Use zipfile python library instead of `unzip` command in arkitscene (#1936) * Use zipfile python library instead of `unzip` command in arkitscene Windows doesn't have unzip! * Nit: import sort order --------- Co-authored-by: Nikolaus West * Fix annotation images sometimes drawn in the background. (#1933) This caused fairly ugly rendering whenever that happened. Also cleaned up redundant image/textured_rect defintions in spatial scene buildup * Fix backslashes in arkitscene rigid transformation path (#1938) * Fix backslashes in arkitscene rigid transformation path Should be fixed properly by https://github.com/rerun-io/rerun/issues/1937 * Use PosixPath instead of .replace("\\", "/") --------- Co-authored-by: Nikolaus West * Fix hover/select highlights when picking single points in a scene with multiple point clouds (#1942) Batch vertex offset for single highlights wasn't correctly computed. Different parts of the code made different assumptions what offsets referred to * Fix hovering depth clouds (#1943) We didn't add to `scene.primitives.image`. Instead of adding to this list, it is instead now no longer needed for picking since we can very easily query for tensor again. * change python workflow for testing purposes, remove windows and macos wheels * add back one macos so the matrix is valid * 2.5GB before GC kick in on web (#1944) * change name to depthai-viewer * change pip install/uninstalls from rerun-sdk to depthai-viewer * change all occurances of rerun-sdk to depthai-viewer * change windows runner to windows-latest for now when using my personal gh * Release `0.5.0` (#1919) * changelog * 0.5.0-alpha.0 * more changelog * re_format: fix implicit recursive feature flags * publish_crates.sh: fix crate ordering * Join threads at end of multi-threading example (#1934) * Add argument parsing to the rerun_demo (#1925) * More robust wait for exit condition during .serve() (#1939) * More robust wait for exit condition during .serve() * lint * Use zipfile python library instead of `unzip` command in arkitscene (#1936) * Use zipfile python library instead of `unzip` command in arkitscene Windows doesn't have unzip! * Nit: import sort order --------- Co-authored-by: Nikolaus West * Fix annotation images sometimes drawn in the background. (#1933) This caused fairly ugly rendering whenever that happened. Also cleaned up redundant image/textured_rect defintions in spatial scene buildup * Fix backslashes in arkitscene rigid transformation path (#1938) * Fix backslashes in arkitscene rigid transformation path Should be fixed properly by https://github.com/rerun-io/rerun/issues/1937 * Use PosixPath instead of .replace("\\", "/") --------- Co-authored-by: Nikolaus West * changelog * Fix hover/select highlights when picking single points in a scene with multiple point clouds (#1942) Batch vertex offset for single highlights wasn't correctly computed. Different parts of the code made different assumptions what offsets referred to * changelog * Fix hovering depth clouds (#1943) We didn't add to `scene.primitives.image`. Instead of adding to this list, it is instead now no longer needed for picking since we can very easily query for tensor again. * changelog * 2.5GB before GC kick in on web (#1944) * changelog * 0.5.0 --------- Co-authored-by: Jeremy Leibs Co-authored-by: Andreas Reich Co-authored-by: Nikolaus West * Fix imu plots scrolling past their container * fix bottom/top panel sizing after showing the spinner on config setting * Lint error names in `map_err` (#1948) * Lint: Properly name errors in `map_err` * Use correct names for errors * fix config and stats tabs not being able to be viewed at the same time, renamed stats to IMU * New dispatch-only workflow for running the lint-job (#1950) * Fix secret in dispatch_lint.yml * Only maintain a single manual-dispatch job for testing workflows * apply button, have to make it look a bit nicer, but will do that when I fix scrolling in device configuration panel * Bump hyper version due to RUSTSEC-2023-0034 (#1951) * Add other build parameterizations to manual_dispatch.yml * Use proper if gates on the manual_dispatch.yml jobs * Add ability to save cache to manual_disaptch.yml * Standard case of inputs * Add manual step for packaging to 'manual_dispatch.yml' * add back panels when the underlying subscription reappears * Fix crash for missing class ids causing zero sized texture (#1947) * Fix crash for missing class ids causing zero sized texture Two things fixed actually: * texture manager now checks for zero sized texture, this ripples out in a lot more error handling * class id texture texture handles not having any classes gracefully * Use Display for all errors * typo * Better naming of error * Better docs and names * Fix off-by-one error * some use of `context`, change which error is implicitly converted on texture manager2d --------- Co-authored-by: Emil Ernerfeldt * fixes LR stream subscriptions (maybe breaks panels reappearing after sub is gone) (#15) * make config ui scrollable, fix padding * Move clippy_wasm/clippy.toml to under scripts (#1949) * Move clippy_wasm/clippy.toml to under scripts This is just to clean up the root a bit, and to move it closer to where it is actually used. * Fix comment typo --------- Co-authored-by: Andreas Reich * change crate version to 0.6.0-alpha.0 (#1952) * New workflow_dispatch for building wheels for a PR * initial light mode, luxonis depthai viewer * Rename build_wheels_for_pr.yml -> manual_build_wheels_for_pr.yml * Fix run-wasm crash on trying to wait for server (#1959) This ruined my dev experience for re_renderer examples a bit. Not sure what made the previous hack stop working, might be a timing issue. It ended up crashing the `cargo_run_wasm` web server * Update egui to latest and wgpu to 0.16 (#1958) * update to wgpu 0.16 and egui using this version * shader fixup for type aliases and rectangle shader * shader signed/unsigned shenanigans * more signed/unsigned issues * fix texture component count * fix picking layer depth readback crash on web * patch wgpu * better texture size estimate * fix patches * Handle leaking of prerelease into alpha version (#1953) * Make device config panel remember it's height throughout loading * hide time panel, make ai model dropdown wider * Fix incorrect memory usage stats for destroyed on-creation-mapped buffers (#1963) We actually don't have anywhere where we discard this kind of buffer yet, but if we would the stats would be wrong (noticed while doing quick & dirty experiments on the staging belt) * New manual workflow for running benches * Introduce new reusable workflow jobs and cleanup manual trigger (#1954) There are 8 reusable workflow "components" that we can use to build different scenarios: reusable_checks.yml - These are all the checks that run to ensure the code is formatted, reusable_bench.yml - This job runs the benchmarks to check for performance regressions. reusable_deploy_docs- This job deploys the python and rust documentation to https://ref.rerun.io reusable_build_and_test_wheels.yml - This job builds the wheels, runs the end-to-end test, and produces a sample RRD. The artifacts are accessible via GitHub artifacts, but not otherwise uploaded anywhere. reusable_upload_wheels.yml- This job uploads the wheels to google cloud reusable_build_web.yml - This job builds the wasm artifacts for the web. reusable_upload_web.yml - This job uploads the web assets to google cloud. By default this only uploads to: app.rerun.io/commit// reusable_pr_summary.yml - This job updates the PR summary with the results of the CI run. Example summary can be found at: https://storage.googleapis.com/rerun-builds/pull_request/1954/index.html This also introduces a manual_dispatch.yml helper as a convenience for testing these workflows and their different parameterizations. * New manual workflow for adhoc web builds * Use new CI workflows for pull-request and merge to main (#1955) on_pull_request.yml includes the following pieces: - reusable_checks.yml -- Run all of the lints, code-formatting, tests, etc. - reusable_build_and_test_wheels.yml -- Configured in a "minimal" mode with SDK includes end-to-end test and produces an rrd. - reusable_build_web.yml -- Verifies we can build the wasm - reusable_upload_web.yml -- Uploads the RRD and Wasm to app.rerun.io to confirm the demo works as well as support notebook testing. - reusable_pr_summary.yml -- Create a manifest page with a link to the on_push_main.yml includes the following pieces: - reusable_checks.yml -- Run all of the lints, code-formatting, tests, etc. - reusable_bench.yml -- Run the benchmarks - reusable_build_and_test_wheels.yml -- Builds wheels for all platforms - reusable_upload_wheel.yml -- Uploads the all the wheels to gcloud - reusable_build_web.yml -- Builds the wasm bundle - reusable_upload_web.yml -- Uploads the RRD and Wasm to app.rerun.io - reusable_pip_index.yml -- Generates a pip index page which can be used to install packages with, e.g. * Fix name of on_push_main.yml * Fix usage of long commit in generate_prerelease_pip_index.py * Try making pull-request workflows non-concurrent (#1970) * Try making pull-request workflows non-concurrent * Concurrency groups for push_main as well * Each sub-workflow needs its own name or they fight * Another attempt to make jobs non-concurrent on a per-PR basis (#1974) * Another attempt to make jobs non-concurrent on a per-PR basis * Move concurrency into the reusable job * Jobs with duplicated instances still need separate concurrency keys based on platform * Round to nearest color_index when doing color mapping (#1969) * Full (experimental) WebGPU support (#1965) * always build with unstable web sys apis * Make shader Tint friendly * expose webgl feature flag on re_renderer & re_viewer * fix bug link on negative hexadecimal * hardware tier is now created from wgpu adapter * sort out build flags for webgpu & document building webviewer * introduce shader text replacement workarounds to workaround current chrome issue * latest egui master * typo fix * doc fixes, use if cfg! instead of attribute cfg * move backend to rerun * If there's a `{{ pr-build-summary }}` in the PR description, update it. (#1971) * If there's a `{{ pr-build-summary }}` in the PR description, update it. * Add comment to the PR template * Add pull-requests permission to pr_summary job * Run the cube notebook on PR (#1972) * Run the cube notebook on PR * Add notebooks to the build summary * Use the new concurrency model * reformat py files * reformat * fix pylint errors * Add ability to manually run a web build to upload to an adhoc name (#1966) * Add ability to manually run a web build to upload to an adhoc name * Pass through ADHOC_NAME * Add a concurrency criteria for the new adhoc job * Make input description more explicit * change entity paths * merged wip albedo colormap into latest depth_cloud * remove pointclouds generated in sdk * fix compiler error, trying to compile frame.close for wasm * Default to albedo texture for depth cloud, added support for mono albedo textures * restart backend on failure, added oak_cam.device.close seems to really close the cam * py lint fix * don't run notebooks * remove run-notebook dependency --------- Co-authored-by: Clement Rey Co-authored-by: benjamin de charmoy Co-authored-by: Andreas Reich Co-authored-by: Emil Ernerfeldt Co-authored-by: Pablo Vela Co-authored-by: Nikolaus West Co-authored-by: Jeremy Leibs Co-authored-by: h3mosphere <129932586+h3mosphere@users.noreply.github.com> Co-authored-by: Urho Laukkarinen Co-authored-by: Nikolaus West * Fix rerun lints * rename binary, always start with memory-limit, pin depthai dependencies, fix errors after changing dependency versions * remove compiler warnings * fix memory leak when app is in background * Custom viewport UI (#4) * custom blueprint panel, show logical space views for depthai-viewer users, added settings clog on top of space view tab to configure what is visible * small fixes, clear entity_paths every time to avoid displaying an unavailable entity_path in space view options ui * custom left panel to add or remove space view instances, created a new default viewport layout. Improved behaviour when a panel re appears after user selected to hide it, then if stream stops and starts again the panel will be spawned back in correctly. * improve auto layout to not split when only 3D or 2D view is available * MJPEG encode image frames if connected to a PoE device. Only add magnetometer to imu sensors list if the device has a BNO IMU. Lower the memory limit to 100MB * Styling (#6) * initial styling impl * make buttons that should be small, small * Runtime depth config and fix device selection ui * comment * Proper runtime depth config updates * switch to Yolo v8 * add comma to label for non open zoo models * split 2d + 3d cam view vertically instead of horizontally * Tabify all panels (except for blueprint) (#7) * initial styling impl * make buttons that should be small, small * Runtime depth config and fix device selection ui * comment * Proper runtime depth config updates * switch to Yolo v8 * add comma to label for non open zoo models * split 2d + 3d cam view vertically instead of horizontally * Make the UI more configurable by converting the right panel into tabs. TODO: UX while laying out the panels. When a new space view appears only update the viewport layout, try to keep the user configured fixed function panels as they were. Just handle it in a way that is intuitive * remove bottom panel, switch to RAW imu sensors * XLink statistics initial implementation * initial xlink throughput statistics impllementation, have to glow it up a bit and maybe clean up the code * Xlink and rerun rename (#9) * Rename rerun py library to depthai_viewer * bug fixes and started working on a smart auto layout that operates on an existing tree, to preserve ui as much as possible, while also creating good layouts * auto layout * Fix maximize not working and add maximize for Stats tab * delete profiling stuff that shouldn't have been commited * mostly fix smart layout, TODO: detect when you can group mono and color 3d + 2d views into a 4 way split * add docstring for update_tree * WIP auto layout can_create_mono_quad checker, not at all finished yet * pass lint checks and bugfixes * forgot to sort imports * Fix mypy lint (TODO: Proper typing, especially in the comms from back to store to ws) other types are pretty solid * pylints and fix Queue typehinting * fix doc build * try to pass pylints with py.typed * ignore misc mypy errors * forgot to run black formatter * switch back to old ci * sync mono camera settings * fix web build * Update scripts/version_util.py --------- Co-authored-by: Clement Rey Co-authored-by: benjamin de charmoy Co-authored-by: Andreas Reich Co-authored-by: Emil Ernerfeldt Co-authored-by: Pablo Vela Co-authored-by: Nikolaus West Co-authored-by: Jeremy Leibs Co-authored-by: h3mosphere <129932586+h3mosphere@users.noreply.github.com> Co-authored-by: Urho Laukkarinen Co-authored-by: Nikolaus West * install depthai_viewer instead of rerun-sdk for pytest * Updated design and improvements * get rid of rerun_sdk and rerun_bindings, now just depthai_viewer and depthai_viewer_bindings get installed, so you don't clash with an existing rerun install * hopefuly fix ci * hopefuly fix ci * a bunch of fixes and improvements * disable smart layout updater for now * bugfixes * Update README.md * Patches * WIP moving away from relying on board sockets. This will enable us to support all devices! * fix merge error * LR fixes, and other stuff * a few fixes, viewer seems pretty stable on any device * auto layout * Make blueprint work * bigfixes for adding and removing space views, ai model board socket change bugfix. * bump version, fixes, Install deps in venv and use the deps from venv instead of global. * Fix for windows (and linux) * fixes * Changelog * ci checks * clear by cutoff only when not targeting wasm * Use sysconfig instead of site for getting site-packages, change app icon * No more (ignored) exceptions on startup * Fix pylints, bump depthai_sdk to latest develop * disable depth if no legit stereo pairs are available * Bump version * remove unused variable * Fix duplicate resolutions, improve first startup virtual environment creation * Fix xlink plots a bit * disable playback commands * focus on camera by default * Changelog * bump version * Improved first time startup stability * Prioritize camera images over depth image when creating albedo texture * Changed logos and get depthai_sdk from the artifactory * changelog * forgot to run pylints * Improved tensor logging performance * Don't show 2D image if the 3d view has a pointcloud * fix memory leak, loose a bit of performance because of tobytes * NV12 support! (#18) * WIP: Support sending encoded images to reduce data transfer sizes. * Support logging of NV12 encoded images, support for mapping depth_cloud onto NV12 image, todo: Fix tooltip tensor view... * Almost correct display of NV12 in every view, tooltip is still incorrect * Fixed picking! Tensor::get_nv12_pixel is wrong - todo along with correct NV12 -> RGB decoding coefficients in the shader * Fully working NV12 decoding in the shader! * Backend refactor * Better layout * Nicer behavior on device select * Fix Depth and Image spawning in seperate tabs * refactor, use sdk create_queue to get better performance * add sdk dependency * moved back to callbacks * sync cameras and depth, decode jpeg on the backend using turbojpeg (still slow) * prerelease build to test on multiple platforms * rerun lints * mypy lints * mypy lints * imports * match alpha and beta version tags * remove openh264 for now * - Fixed mono depth cloud albedo textures sampling. - improved viewport behaviour. - No more detections in depth 3d views where it just looks weird * fixes * ISP scaled resolutions, better UX, handled depthai errors * Delayed drag values, start filling in the readme * Nicer auto layout. Split the depth image and (aligned) image into two seperate space views that are side by side * Remove point depth picking outline for now * Warnings for USB2 and PoE modes * Removed turbo jpeg dependency, fill in changelog * mypy lint * Fix shader compilation for metal * Added sentry sdk * Updated windows and mac icons * use sentry * Only create the camera nodes that are actually needed * don't build web for now * Fix Pydantic * changelog --------- Co-authored-by: Clement Rey Co-authored-by: benjamin de charmoy Co-authored-by: Andreas Reich Co-authored-by: Emil Ernerfeldt Co-authored-by: Pablo Vela Co-authored-by: Nikolaus West Co-authored-by: Jeremy Leibs Co-authored-by: h3mosphere <129932586+h3mosphere@users.noreply.github.com> Co-authored-by: Urho Laukkarinen Co-authored-by: Nikolaus West --- CHANGELOG.md | 8 + Cargo.lock | 521 ++++++++++++++++-- Cargo.toml | 54 +- crates/re_renderer/shader/depth_cloud.wgsl | 12 +- crates/re_ui/data/icons/app_icon_mac.png | Bin 4402 -> 2256 bytes crates/re_ui/data/icons/app_icon_windows.png | Bin 4402 -> 2256 bytes crates/re_viewer/Cargo.toml | 1 + crates/re_viewer/src/app.rs | 6 + rerun_py/Cargo.toml | 2 +- rerun_py/depthai_viewer/_backend/device.py | 31 +- rerun_py/depthai_viewer/_backend/main.py | 12 + .../depthai_viewer/_backend/packet_handler.py | 1 + rerun_py/depthai_viewer/requirements.txt | 3 +- 13 files changed, 552 insertions(+), 99 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b82d74d3550..da49bc67e441 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ # Depthai Viewer changelog +## 0.1.1 + +- Fixes Metal shader compilation on MacOS +- Performance improvement - only create a camera node when a camera is actually needed in any way. +- Added sentry.io error reporting +- Update Windows and MacOS app icons + ## 0.1.0 + Depthai Viewer official Beta release on pypi! - Performance improvements diff --git a/Cargo.lock b/Cargo.lock index d5a7410a78b2..fe209cf246c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,7 +124,7 @@ checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" [[package]] name = "api_demo" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "clap 4.1.4", @@ -484,6 +484,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + [[package]] name = "bincode" version = "1.3.3" @@ -1275,9 +1281,19 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "serde", + "uuid", +] + [[package]] name = "depthai-viewer" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "backtrace", @@ -1392,7 +1408,7 @@ dependencies = [ [[package]] name = "dna" -version = "0.1.0" +version = "0.1.1" dependencies = [ "depthai-viewer", "itertools", @@ -1576,6 +1592,15 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +[[package]] +name = "encoding_rs" +version = "0.8.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +dependencies = [ + "cfg-if", +] + [[package]] name = "enumflags2" version = "0.7.7" @@ -1767,6 +1792,18 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "findshlibs" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64" +dependencies = [ + "cc", + "lazy_static", + "libc", + "winapi", +] + [[package]] name = "fixed" version = "1.20.0" @@ -2236,6 +2273,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + [[package]] name = "http" version = "0.2.8" @@ -2300,6 +2348,19 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "iana-time-zone" version = "0.1.53" @@ -2445,6 +2506,12 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "ipnet" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" + [[package]] name = "is-terminal" version = "0.4.2" @@ -2746,6 +2813,12 @@ dependencies = [ "libc", ] +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + [[package]] name = "matrixmultiply" version = "0.3.2" @@ -2830,9 +2903,15 @@ dependencies = [ "libmimalloc-sys", ] +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + [[package]] name = "minimal" -version = "0.1.0" +version = "0.1.1" dependencies = [ "depthai-viewer", ] @@ -2845,7 +2924,7 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "minimal_options" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "clap 4.1.4", @@ -2925,6 +3004,24 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "ndarray" version = "0.15.6" @@ -3263,7 +3360,7 @@ dependencies = [ [[package]] name = "objectron" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "clap 4.1.4", @@ -3285,6 +3382,50 @@ version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +[[package]] +name = "openssl" +version = "0.10.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.15", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "orbclient" version = "0.3.42" @@ -3316,6 +3457,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "os_info" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" +dependencies = [ + "log", + "serde", + "winapi", +] + [[package]] name = "os_str_bytes" version = "6.4.1" @@ -3881,7 +4033,7 @@ checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" [[package]] name = "raw_mesh" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "bytes", @@ -3921,7 +4073,7 @@ dependencies = [ [[package]] name = "re_analytics" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "crossbeam", @@ -3942,7 +4094,7 @@ dependencies = [ [[package]] name = "re_arrow_store" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash 0.8.2", "anyhow", @@ -3969,7 +4121,7 @@ dependencies = [ [[package]] name = "re_build_build_info" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "time 0.3.20", @@ -3977,18 +4129,18 @@ dependencies = [ [[package]] name = "re_build_info" -version = "0.1.0" +version = "0.1.1" [[package]] name = "re_build_web_viewer" -version = "0.1.0" +version = "0.1.1" dependencies = [ "cargo_metadata", ] [[package]] name = "re_data_store" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash 0.8.2", "criterion", @@ -4011,14 +4163,14 @@ dependencies = [ [[package]] name = "re_error" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", ] [[package]] name = "re_format" -version = "0.1.0" +version = "0.1.1" dependencies = [ "arrow2", "arrow2_convert", @@ -4028,7 +4180,7 @@ dependencies = [ [[package]] name = "re_int_histogram" -version = "0.1.0" +version = "0.1.1" dependencies = [ "criterion", "insta", @@ -4039,7 +4191,7 @@ dependencies = [ [[package]] name = "re_log" -version = "0.1.0" +version = "0.1.1" dependencies = [ "env_logger", "js-sys", @@ -4052,7 +4204,7 @@ dependencies = [ [[package]] name = "re_log_encoding" -version = "0.1.0" +version = "0.1.1" dependencies = [ "criterion", "ehttp", @@ -4077,7 +4229,7 @@ dependencies = [ [[package]] name = "re_log_types" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash 0.8.2", "array-init", @@ -4116,7 +4268,7 @@ dependencies = [ [[package]] name = "re_memory" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash 0.8.2", "backtrace", @@ -4136,7 +4288,7 @@ dependencies = [ [[package]] name = "re_query" -version = "0.1.0" +version = "0.1.1" dependencies = [ "arrow2", "criterion", @@ -4154,7 +4306,7 @@ dependencies = [ [[package]] name = "re_renderer" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash 0.8.2", "anyhow", @@ -4207,7 +4359,7 @@ dependencies = [ [[package]] name = "re_sdk" -version = "0.1.0" +version = "0.1.1" dependencies = [ "arrow2_convert", "document-features", @@ -4227,7 +4379,7 @@ dependencies = [ [[package]] name = "re_sdk_comms" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash 0.8.2", "anyhow", @@ -4243,7 +4395,7 @@ dependencies = [ [[package]] name = "re_smart_channel" -version = "0.1.0" +version = "0.1.1" dependencies = [ "crossbeam", "instant", @@ -4251,7 +4403,7 @@ dependencies = [ [[package]] name = "re_string_interner" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash 0.8.2", "nohash-hasher", @@ -4262,7 +4414,7 @@ dependencies = [ [[package]] name = "re_tensor_ops" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash 0.8.2", "ndarray", @@ -4272,7 +4424,7 @@ dependencies = [ [[package]] name = "re_tuid" -version = "0.1.0" +version = "0.1.1" dependencies = [ "arrow2", "arrow2_convert", @@ -4286,7 +4438,7 @@ dependencies = [ [[package]] name = "re_ui" -version = "0.1.0" +version = "0.1.1" dependencies = [ "eframe", "egui", @@ -4305,7 +4457,7 @@ dependencies = [ [[package]] name = "re_viewer" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ahash 0.8.2", "anyhow", @@ -4356,6 +4508,7 @@ dependencies = [ "re_ui", "re_ws_comms", "rfd", + "sentry", "serde", "serde_json", "slotmap", @@ -4376,7 +4529,7 @@ dependencies = [ [[package]] name = "re_web_viewer_server" -version = "0.1.0" +version = "0.1.1" dependencies = [ "cargo_metadata", "ctrlc", @@ -4393,7 +4546,7 @@ dependencies = [ [[package]] name = "re_ws_comms" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "bincode", @@ -4463,9 +4616,46 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" +[[package]] +name = "reqwest" +version = "0.11.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +dependencies = [ + "base64 0.21.2", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + [[package]] name = "rerun_py" -version = "0.1.0" +version = "0.1.1" dependencies = [ "arrow2", "depthai-viewer", @@ -4569,7 +4759,7 @@ dependencies = [ [[package]] name = "run_wasm" -version = "0.1.0" +version = "0.1.1" dependencies = [ "cargo-run-wasm", "pico-args", @@ -4637,6 +4827,28 @@ dependencies = [ "webpki", ] +[[package]] +name = "rustls" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e32ca28af694bc1bbf399c33a516dbdf1c90090b8ab23c2bc24f834aa2247f5f" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.9" @@ -4675,6 +4887,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +dependencies = [ + "windows-sys 0.42.0", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -4716,6 +4937,29 @@ dependencies = [ "tiny-skia", ] +[[package]] +name = "security-framework" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c4437699b6d34972de58652c68b98cb5b53a4199ab126db8e20ec8ded29a721" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "1.0.14" @@ -4725,6 +4969,114 @@ dependencies = [ "serde", ] +[[package]] +name = "sentry" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b0ad16faa5d12372f914ed40d00bda21a6d1bdcc99264c5e5e1c9495cf3654" +dependencies = [ + "httpdate", + "native-tls", + "reqwest", + "sentry-backtrace", + "sentry-contexts", + "sentry-core", + "sentry-debug-images", + "sentry-panic", + "sentry-tracing", + "tokio", + "ureq", +] + +[[package]] +name = "sentry-backtrace" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11f2ee8f147bb5f22ac59b5c35754a759b9a6f6722402e2a14750b2a63fc59bd" +dependencies = [ + "backtrace", + "once_cell", + "regex", + "sentry-core", +] + +[[package]] +name = "sentry-contexts" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcd133362c745151eeba0ac61e3ba8350f034e9fe7509877d08059fe1d7720c6" +dependencies = [ + "hostname", + "libc", + "os_info", + "rustc_version", + "sentry-core", + "uname", +] + +[[package]] +name = "sentry-core" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7163491708804a74446642ff2c80b3acd668d4b9e9f497f85621f3d250fd012b" +dependencies = [ + "once_cell", + "rand", + "sentry-types", + "serde", + "serde_json", +] + +[[package]] +name = "sentry-debug-images" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a5003d7ff08aa3b2b76994080b183e8cfa06c083e280737c9cee02ca1c70f5e" +dependencies = [ + "findshlibs", + "once_cell", + "sentry-core", +] + +[[package]] +name = "sentry-panic" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4dfe8371c9b2e126a8b64f6fefa54cef716ff2a50e63b5558a48b899265bccd" +dependencies = [ + "sentry-backtrace", + "sentry-core", +] + +[[package]] +name = "sentry-tracing" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aca8b88978677a27ee1a91beafe4052306c474c06f582321fde72d2e2cc2f7f" +dependencies = [ + "sentry-backtrace", + "sentry-core", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sentry-types" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e7a88e0c1922d19b3efee12a8215f6a8a806e442e665ada71cc222cab72985f" +dependencies = [ + "debugid", + "getrandom", + "hex", + "serde", + "serde_json", + "thiserror", + "time 0.3.20", + "url", + "uuid", +] + [[package]] name = "serde" version = "1.0.147" @@ -4756,9 +5108,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.89" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" +checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3" dependencies = [ "itoa", "ryu", @@ -4785,6 +5137,18 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + [[package]] name = "sha-1" version = "0.10.0" @@ -5123,7 +5487,7 @@ dependencies = [ [[package]] name = "test_image_memory" -version = "0.1.0" +version = "0.1.1" dependencies = [ "depthai-viewer", "mimalloc", @@ -5314,13 +5678,23 @@ dependencies = [ "syn 1.0.103", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls", + "rustls 0.20.7", "tokio", "webpki", ] @@ -5333,12 +5707,12 @@ checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log", - "rustls", + "rustls 0.20.7", "tokio", "tokio-rustls", "tungstenite", "webpki", - "webpki-roots", + "webpki-roots 0.22.5", ] [[package]] @@ -5401,6 +5775,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "tracing-core", ] [[package]] @@ -5428,13 +5812,13 @@ dependencies = [ "httparse", "log", "rand", - "rustls", + "rustls 0.20.7", "sha-1", "thiserror", "url", "utf-8", "webpki", - "webpki-roots", + "webpki-roots 0.22.5", ] [[package]] @@ -5472,6 +5856,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "uname" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8" +dependencies = [ + "libc", +] + [[package]] name = "unicode-bidi" version = "0.3.8" @@ -5525,20 +5918,21 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "ureq" -version = "2.6.2" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338b31dd1314f68f3aabf3ed57ab922df95ffcd902476ca7ba3c4ce7b908c46d" +checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9" dependencies = [ - "base64 0.13.1", + "base64 0.21.2", "flate2", "log", + "native-tls", "once_cell", - "rustls", + "rustls 0.21.2", + "rustls-webpki", "serde", "serde_json", "url", - "webpki", - "webpki-roots", + "webpki-roots 0.23.1", ] [[package]] @@ -5550,6 +5944,7 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -5575,6 +5970,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "value-bag" version = "1.0.0-alpha.9" @@ -5585,6 +5986,12 @@ dependencies = [ "version_check", ] +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "vec1" version = "1.10.1" @@ -5967,6 +6374,15 @@ dependencies = [ "webpki", ] +[[package]] +name = "webpki-roots" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" +dependencies = [ + "rustls-webpki", +] + [[package]] name = "weezl" version = "0.1.7" @@ -6260,6 +6676,15 @@ dependencies = [ "x11-dl", ] +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + [[package]] name = "wit-parser" version = "0.2.0" diff --git a/Cargo.toml b/Cargo.toml index 46bd58949df0..1ae977296fc5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,39 +16,39 @@ include = ["../../LICENSE-APACHE", "../../LICENSE-MIT", "**/*.rs", "Cargo.toml"] license = "MIT OR Apache-2.0" repository = "https://github.com/rerun-io/rerun" rust-version = "1.67" -version = "0.1.0" +version = "0.1.1" [workspace.dependencies] # When using alpha-release, always use exact version, e.g. `version = "=0.x.y-alpha.z" # This is because we treat alpha-releases as incompatible, but semver doesn't. # In particular: if we compile rerun 0.3.0-alpha.0 we only want it to use # re_log_types 0.3.0-alpha.0, NOT 0.3.0-alpha.4 even though it is newer and semver-compatible. -re_sdk_comms = { path = "crates/re_sdk_comms", version = "0.1.0" } -re_analytics = { path = "crates/re_analytics", version = "0.1.0" } -re_arrow_store = { path = "crates/re_arrow_store", version = "0.1.0" } -re_build_build_info = { path = "crates/re_build_build_info", version = "0.1.0" } -re_build_info = { path = "crates/re_build_info", version = "0.1.0" } -re_build_web_viewer = { path = "crates/re_build_web_viewer", version = "0.1.0" } -re_data_store = { path = "crates/re_data_store", version = "0.1.0" } -re_error = { path = "crates/re_error", version = "0.1.0" } -re_format = { path = "crates/re_format", version = "0.1.0" } -re_int_histogram = { path = "crates/re_int_histogram", version = "0.1.0" } -re_log = { path = "crates/re_log", version = "0.1.0" } -re_log_encoding = { path = "crates/re_log_encoding", version = "0.1.0" } -re_log_types = { path = "crates/re_log_types", version = "0.1.0" } -re_memory = { path = "crates/re_memory", version = "0.1.0" } -re_query = { path = "crates/re_query", version = "0.1.0" } -re_renderer = { path = "crates/re_renderer", version = "0.1.0", default-features = false } -re_sdk = { path = "crates/re_sdk", version = "0.1.0" } -re_smart_channel = { path = "crates/re_smart_channel", version = "0.1.0" } -re_string_interner = { path = "crates/re_string_interner", version = "0.1.0" } -re_tensor_ops = { path = "crates/re_tensor_ops", version = "0.1.0" } -re_tuid = { path = "crates/re_tuid", version = "0.1.0" } -re_ui = { path = "crates/re_ui", version = "0.1.0" } -re_viewer = { path = "crates/re_viewer", version = "0.1.0", default-features = false } -re_web_viewer_server = { path = "crates/re_web_viewer_server", version = "0.1.0" } -re_ws_comms = { path = "crates/re_ws_comms", version = "0.1.0" } -depthai-viewer = { path = "crates/rerun", version = "0.1.0" } +re_sdk_comms = { path = "crates/re_sdk_comms", version = "0.1.1" } +re_analytics = { path = "crates/re_analytics", version = "0.1.1" } +re_arrow_store = { path = "crates/re_arrow_store", version = "0.1.1" } +re_build_build_info = { path = "crates/re_build_build_info", version = "0.1.1" } +re_build_info = { path = "crates/re_build_info", version = "0.1.1" } +re_build_web_viewer = { path = "crates/re_build_web_viewer", version = "0.1.1" } +re_data_store = { path = "crates/re_data_store", version = "0.1.1" } +re_error = { path = "crates/re_error", version = "0.1.1" } +re_format = { path = "crates/re_format", version = "0.1.1" } +re_int_histogram = { path = "crates/re_int_histogram", version = "0.1.1" } +re_log = { path = "crates/re_log", version = "0.1.1" } +re_log_encoding = { path = "crates/re_log_encoding", version = "0.1.1" } +re_log_types = { path = "crates/re_log_types", version = "0.1.1" } +re_memory = { path = "crates/re_memory", version = "0.1.1" } +re_query = { path = "crates/re_query", version = "0.1.1" } +re_renderer = { path = "crates/re_renderer", version = "0.1.1", default-features = false } +re_sdk = { path = "crates/re_sdk", version = "0.1.1" } +re_smart_channel = { path = "crates/re_smart_channel", version = "0.1.1" } +re_string_interner = { path = "crates/re_string_interner", version = "0.1.1" } +re_tensor_ops = { path = "crates/re_tensor_ops", version = "0.1.1" } +re_tuid = { path = "crates/re_tuid", version = "0.1.1" } +re_ui = { path = "crates/re_ui", version = "0.1.1" } +re_viewer = { path = "crates/re_viewer", version = "0.1.1", default-features = false } +re_web_viewer_server = { path = "crates/re_web_viewer_server", version = "0.1.1" } +re_ws_comms = { path = "crates/re_ws_comms", version = "0.1.1" } +depthai-viewer = { path = "crates/rerun", version = "0.1.1" } ahash = "0.8" anyhow = "1.0" diff --git a/crates/re_renderer/shader/depth_cloud.wgsl b/crates/re_renderer/shader/depth_cloud.wgsl index 407197a6f353..34d7dd7cbc7a 100644 --- a/crates/re_renderer/shader/depth_cloud.wgsl +++ b/crates/re_renderer/shader/depth_cloud.wgsl @@ -256,13 +256,13 @@ fn fs_main_picking_layer(in: VertexOut) -> @location(0) UVec4 { @fragment fn fs_main_outline_mask(in: VertexOut) -> @location(0) UVec2 { - discard; // TODO(filip): This outline looks really bad... It would be neat to have it tho - implement better + // TODO(filip): Proper outline mask for a single point? // Output is an integer target, can't use coverage therefore. // But we still want to discard fragments where coverage is low. // Since the outline extends a bit, a very low cut off tends to look better. - // let coverage = sphere_quad_coverage(in.pos_in_world, in.point_radius, in.point_pos_in_world); - // if coverage < 1.0 { - // discard; - // } - // return depth_cloud_info.outline_mask_id; + let coverage = sphere_quad_coverage(in.pos_in_world, in.point_radius, in.point_pos_in_world); + if coverage <= 1.0 { + discard; + } + return depth_cloud_info.outline_mask_id; } diff --git a/crates/re_ui/data/icons/app_icon_mac.png b/crates/re_ui/data/icons/app_icon_mac.png index 1b951089cf2a6bb35d753d2bba96ef226cf01134..decd05d31ed4363e55ec6c568b568af9b69e6db6 100644 GIT binary patch literal 2256 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�Pzt8a|G;J4*r6#%t~*3$&N1^A1geQ|&aER(!^ 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 diff --git a/crates/re_ui/data/icons/app_icon_windows.png b/crates/re_ui/data/icons/app_icon_windows.png index 1b951089cf2a6bb35d753d2bba96ef226cf01134..decd05d31ed4363e55ec6c568b568af9b69e6db6 100644 GIT binary patch literal 2256 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�Pzt8a|G;J4*r6#%t~*3$&N1^A1geQ|&aER(!^ zclq0~R=YdA}&<1?@|K>_+73bVKZ3R|Y~E0IBNcqfqk*a8%H~ zgaXw^t(Ja0(=>6b*V4vo!D5+T-EuK%Ug5JZ|IdibGt%|qg6XZtdMzEI08pu|Zn;@i z?gvH%?M>(qona&TLTyd!UwbO+rPxqOq7jp5y%+dK(7p@fds(1MB5!G z^MkN`5Mn?cNG4kTYAA2^eGHJQZv7^z_xNr1Q@~b>&dy|~tUHi5`5FMpnwH~@mFIv` zKkXg>-M|OH7GNhzI{=1pD5F)GAi|U&9W21Q_I7*R6U`OvgMCBPr8m7vCR!#ND-RQ% zFTYbnUqV@F)x4_F?l&ilsc8DiE7CR4n-(TEjqSFbGsKu96?-CTPDONvUrra`=+R~7 zP7Yu`#iu)fN^PR`8R<#c3Xo?}!mQaI5I&Ek*? z)7jXvL7nN^6$r)eegh)6+I&f!iv^Y5q$)SoXrz0ws9X+=acOG+c3>m3(oK^$6gts) z04z+rKee0aT41beTmA5c3O8y)tlp30ir$=eUol7B~8jL(B^MHba(V-F5=j#GzHRk`^H%U#;& ziy{w?C^1((_~zsmKkXKxwz~PtqViLpi&S#fjyQ6lpFL+2LCKkGM<5h6Pkn%NAY5Ia zjU~hOQ2we<_KKpm zy7h8Vy#pxm!CW`W7t)RKH~M?g$sORF85<8#_-7Z|{jkoO=$D4emk&_i5W7b#X8_xM zFc(F*et$1I34l>Hf1NtVU(Oib|cV6r6gYdewBhGy2Pe*KaZp#swZ0xsKJ)NG?a+gHJRDyBUS02Pocz18fCYz8^a&+;kP z)Hh9e5^;UqD9IahP2Yo_20(41?Q6JB=N2waXJd^{Z3IBNA$G68fRi@GBEp5qnQKS% zKIUlv2zIfTdi@xyG0y@ZIkRmHh|3hO?5M6? z*E-Y>oX6Ks-YzN^)6+Y^2^Lw@`)|(zKsxQ&I4tN8(X0RKo$0$>>4$~7#@PR&^53rX z1wCu-w9OwcPI(sqR?qiJt1l`%R@X4)m#*}~h825l&tTUHBTJ(lAAeV#1VD0T+ZaU7 z@ItE}tYE+ANIR5dvQsvqdaFAN`tdlxlK_bB=42e*{uOyN-B9tS3+*stb;MotUUt*zd8EO<2ru=-_BbowCh+e~A{ zD=xH$18Smo15OfJB5F?o4+7wfL_;Ye#})6=z9_QPh3;@+&mz}zF0>U+0f-h;Rs^8J zbd-_axb+D-JEL9o4s;8WocZ2FvnyJqM&clyqWZx$+1?OD?_UvpKvhohT36u&07)fs z&L$m-=D1@4$+8 zCTs!z;6mG$mezze0P==k`(dZHDz{jXXAdx0^W0A1rDSF97-x?4M#agsP%AUS8UQ;t zR>c3$wUJbH>pT(eWoWs1M;ODi3lr~8_1dq#h_SzMp{t@{4FKJ+dbK!BkVsW-tU+}t z#U;kZyNRZI@*v!iH*!D~zk^4@`4b>2Z#g$&x^D!^JW!gQs%lMnptE0Qu8+M7c)k!O z=%i2v0HOtJ+KQnkK~m;+b@74-6*z z=$K?xTcT*k213bsuPNaS070GR%ZqaAfF~&L7-Nr3XXD4Ev+;x=7Xfylw?xo^HH${K zc`hj$&HzANr%B6zBX>3O-Q^o9J|2hEWn)W$x`8$IFi%|D4`Pgq{}ka201?^c*u=hjeTNm5?V-E_h+3zu*dqDJ3JRxQM}f}|a!b0` zoENJIaql%XoB^OBPTQ_M)KuO8c$jOTP8(tD$=`D^&k)W4K;8Gh4J=hNBv z!^L~Ff7Z@uJp#N>x>00PI0FEgF=viC9iLANASz z&#g6I0R~%ppo%{x|wD6FFY zW(`|_WfnQ9J{wCe-%#On;%6@x9RBVEML+LC+jMkn5HGTVMde3cIn|3UV{COc)n$DAY*W1+|IX*9Cs&wXQ;2eKsD8rn6Hr#R#2|Xeb@a zA>YUQQEG`=Ndf=qv2HDvVYo0 z)_iy<;Hv8C*WguYm=Pz{E5He<$`&V8N5cVQyRXDiD?c?oQ`eq|tIG3U==6*5PtLSM zOtSK$alqv+v;{UDwW0iv;86gSmgyS6#dxW7iIpSuA`hl}Bv1zO^_I@0;@i*wwPyX$#`n{g&^+C{Y)mG;gxU>-@-E`fJ zn{|JnXY`*h-Sl+tW1a>;{f6?DfYSvMQSNqLgb@I#M9USxLYFpFc`&nf<|kG@J)UF` zMdVIzHTPk>5&KMXTATMNQUNi)y5&re+Z~(fidehP4lbV0GPUo_FO`C6*F{rlqW0O| z9WRF~$(okqRV9t%U0em0KJ<3QyM2#)9so}?SF|hY#{$kVrO}RGUU2xk6MV4cgxads zlZ-V_1EU?A%Bzj^yJG8Pp4pa0ZU+45=RZ3?qI8WPO&Yu=Rh>IaM4tt9AHYIpf4hh} z34qMn@*N`hHG6k-H_61$dc*!+be0j6AF=5k23K0` z1xFY$FQlq--|@-bkT_??#zRtxTphw4__uTWT?3`AIc;rHn`o&OB<<2hKdi7OdS%#l z5?fG}JJkw50jhj7n~PF1V_A06eoM>!*gNnvIgy^CjcR{f9u)Vbv++Ui-sbC|Bw5uw%ZOQngF;7-=mwgBtpYn#*$IF!9vA~m z0Aj(pSCBW_+wBQYG*=8dFT>|iX(+}62P<0;JNrPl*YUkHES-(thvItW>(j<=6?^Vb z_Erj{HZa{7yGG#WLD)VBv4SqDZ>ShjZAL)Fp`!V0>@rjj+HGKcL%F&xJ7vfXDgvtx z&LDZ)(S0GXIw&88I|AQJH^z%fzzMWGJoElxySB0YbkIkF^kW#32f3my8!vjr)%T}> z{z#&cNTT(}d%AUe#=vxna#3Al+>=GNPy|2^Dygcrn-D#ycL*<%ZALk7d1KtOo`fL^ zfF4p+trsEsWBf^$7*4!}l1w+o-|$j2bS+}ijj;!ev9kb2+oTLjmf2EsoY!AIgzyfq zmxYN;Hq>sexEA?p$&k&%&*F&RJfgR&%t|+z)N|{rJ1JqA068X zKXa#T9$#A0@gtPQ3=^M=U<<+$+Yq}egE-kZx;Mk>V$QG3eMJqo08ZMb1&oTw10`0k zUD_CL^ULV43IOP7ocv~0Yc0YL2-iA%5y(@ZKS*cezw_O)-v+&6&K!-Fzt?(+2-o3n zrma^f@IO}V4VlJ@SAue4*apB}mY`-`W$tt_=1S1h2;rk`A9jeyBl*1E>Uw}T7>0cS z^d?!=mN4jLh@KBj589tzSd>*DOYKN`G_$tc@vdlt=b#FJ-po(5eF3%eRG0?@(PgY1 zSR*RGibz-8vh36X`xFJkK^p+QnP2t6VM^pAg%d@XP0v$=*QHt8P<>5=RTy2FFWLNJ z&_yYO;ZqR+eOYvDZgf|>sj;G!V5`JRB~T?I6BHe*$S8r)pyTKnQ*7xeu+UAwCRIKZ sp+QB~W9@nqjjpd-Ke;*BPc=0DAEYgz%6uAR3jhEB07*qoM6N<$g4I@6mjD0& diff --git a/crates/re_viewer/Cargo.toml b/crates/re_viewer/Cargo.toml index 0904e3683c31..bf55a3d6cb83 100644 --- a/crates/re_viewer/Cargo.toml +++ b/crates/re_viewer/Cargo.toml @@ -124,6 +124,7 @@ arboard = { version = "3.2", default-features = false, features = [ pyo3 = { version = "0.18.0", features = ["auto-initialize"] } pyo3-asyncio = { version = "0.18", features = ["attributes", "tokio-runtime"] } async-std = "1.9" +sentry = "0.31.5" puffin_http = "0.11" puffin.workspace = true diff --git a/crates/re_viewer/src/app.rs b/crates/re_viewer/src/app.rs index 58a0fac35025..333d6852c1bf 100644 --- a/crates/re_viewer/src/app.rs +++ b/crates/re_viewer/src/app.rs @@ -14,6 +14,7 @@ use re_log_types::{ApplicationId, LogMsg, RecordingId}; use re_renderer::WgpuResourcePoolStatistics; use re_smart_channel::Receiver; use re_ui::{toasts, Command}; +use sentry; use crate::{ app_icon::setup_app_icon, @@ -148,6 +149,11 @@ impl App { rx: Receiver, shutdown: std::sync::Arc, ) -> Self { + // Setup Sentry + let _guard = sentry::init(("https://bb23d43cf3914af5956157b888342b02@o1095304.ingest.sentry.io/4505075212353536", sentry::ClientOptions { + release: sentry::release_name!(), + ..Default::default() + })); let (logger, text_log_rx) = re_log::ChannelLogger::new(re_log::LevelFilter::Info); if re_log::add_boxed_logger(Box::new(logger)).is_err() { // This can happen when `rerun` crate users call `spawn`. TODO(emilk): make `spawn` spawn a new process. diff --git a/rerun_py/Cargo.toml b/rerun_py/Cargo.toml index d6334c3b4f39..787d44ce4c62 100644 --- a/rerun_py/Cargo.toml +++ b/rerun_py/Cargo.toml @@ -16,7 +16,7 @@ default = ["extension-module", "native_viewer"] ## The features we turn on when building the `depthai-viewer` PyPi package ## for . -pypi = ["extension-module", "native_viewer", "web_viewer"] +pypi = ["extension-module", "native_viewer"] ## We need to enable the `pyo3/extension-module` when building the SDK, ## but we cannot enable it when building tests and benchmarks, so we diff --git a/rerun_py/depthai_viewer/_backend/device.py b/rerun_py/depthai_viewer/_backend/device.py index d874879f31ec..6b68e8315d81 100644 --- a/rerun_py/depthai_viewer/_backend/device.py +++ b/rerun_py/depthai_viewer/_backend/device.py @@ -330,30 +330,29 @@ def update_pipeline(self, runtime_only: bool) -> Message: sensor_resolution = size_to_resolution[ smallest_supported_resolution.width, smallest_supported_resolution.height ] - - sdk_cam = self._oak.create_camera( - cam.board_socket, - sensor_resolution.as_sdk_resolution(), - cam.fps, - encode=self.use_encoding, - name=cam.name.capitalize(), - ) - if not does_sensor_support_resolution: - sdk_cam.config_color_camera( - isp_scale=getClosestIspScale( - (smallest_supported_resolution.width, smallest_supported_resolution.height), res_x - ) - ) - is_used_by_depth = config.depth is not None and ( cam.board_socket == config.depth.align or cam.board_socket in config.depth.stereo_pair ) is_used_by_ai = config.ai_model is not None and cam.board_socket == config.ai_model.camera cam.stream_enabled |= is_used_by_depth or is_used_by_ai + # Only create a camera node if it is used by stereo or AI. if cam.stream_enabled: + sdk_cam = self._oak.create_camera( + cam.board_socket, + sensor_resolution.as_sdk_resolution(), + cam.fps, + encode=self.use_encoding, + name=cam.name.capitalize(), + ) + if not does_sensor_support_resolution: + sdk_cam.config_color_camera( + isp_scale=getClosestIspScale( + (smallest_supported_resolution.width, smallest_supported_resolution.height), res_x + ) + ) synced_outputs.append(sdk_cam.out.main) - self._cameras.append(sdk_cam) + self._cameras.append(sdk_cam) if config.depth: print("Creating depth") diff --git a/rerun_py/depthai_viewer/_backend/main.py b/rerun_py/depthai_viewer/_backend/main.py index 7c6345292d81..e7682ed32db5 100644 --- a/rerun_py/depthai_viewer/_backend/main.py +++ b/rerun_py/depthai_viewer/_backend/main.py @@ -3,7 +3,10 @@ from queue import Empty as QueueEmptyException from typing import Optional +import sentry_sdk + import depthai_viewer as viewer +from depthai_viewer import version as depthai_viewer_version from depthai_viewer._backend.config_api import Action, start_api from depthai_viewer._backend.device import Device from depthai_viewer._backend.device_configuration import DeviceProperties @@ -20,6 +23,15 @@ viewer.init("Depthai Viewer") viewer.connect() +sentry_sdk.init( + dsn="https://bb23d43cf3914af5956157b888342b02@o1095304.ingest.sentry.io/4505075212353536", + # Set traces_sample_rate to 1.0 to capture 100% + # of transactions for performance monitoring. + # We recommend adjusting this value in production. + traces_sample_rate=1.0, + release=f"depthai-viewer@{depthai_viewer_version()}", +) + class DepthaiViewerBack: _device: Optional[Device] = None diff --git a/rerun_py/depthai_viewer/_backend/packet_handler.py b/rerun_py/depthai_viewer/_backend/packet_handler.py index ea3cfca0e1c8..2e1c04c1ec00 100644 --- a/rerun_py/depthai_viewer/_backend/packet_handler.py +++ b/rerun_py/depthai_viewer/_backend/packet_handler.py @@ -41,6 +41,7 @@ class AiModelCallbackArgs(CallbackArgs): # type: ignore[misc] class Config: arbitrary_types_allowed = True + protected_namespaces = () class SyncedCallbackArgs(BaseModel): # type: ignore[misc] diff --git a/rerun_py/depthai_viewer/requirements.txt b/rerun_py/depthai_viewer/requirements.txt index 9db721fae628..600f12662da8 100644 --- a/rerun_py/depthai_viewer/requirements.txt +++ b/rerun_py/depthai_viewer/requirements.txt @@ -5,5 +5,6 @@ ahrs # depthai_sdk conflicts with depthai, so it's installed seperatelly in __main__.py depthai==2.22.0.0 websockets -pydantic +pydantic==1.9 deprecated +sentry-sdk