Proto commits in isl-org/Open3D

These 7 commits are when the Protocol Buffers files have changed:

Commit:2ae042a
Author:Ruibin Cheung
Committer:GitHub

Update license header to 2024 (#7011) * Update license header * Replace license text with SPDX license id in remaining files. --------- Signed-off-by: beinggod <beinggod@foxmail.com> Co-authored-by: Sameer Sheorey <sameer.sheorey@intel.com>

The documentation is generated from this commit.

Commit:03231bb
Author:Sameer Sheorey
Committer:GitHub

Replace license text with SPDX identifier. (#5868) * Update copyright year to 2023. * Replace full license text header with SPDX license identifier * Add icon to app * Do not access gcloud for forks.

Commit:b387122
Author:ssheorey
Committer:GitHub

TB plugin demo and docs (#4285)

Commit:5d941ef
Author:ssheorey
Committer:GitHub

Tensorboard plugin UI + ML3D visualizer (#4152) TensorBoard UI: - Synchronized view in multiple run widgets - Show / hide axes, ground plane, GUI settings panel. - TB look and feel (fonts + colors) - Widget zoom - small view for comparisons and full view for details. - Loading animation (large geometry may take a few seconds to load). ML3D visualizer: - Bounding boxes serialization, with labels and confidences. Label names are serialized separately for display. - Point clouds: Custom properties with RGB shader (first 3 dims as RGB), Any property / dimension can be used to assign colors with a color gradient. Color map is customizable. - Label UI allows hiding / showing chosen classes for both BBs and points. Co-authored-by: Benjamin Ummenhofer <benjaminum@gmail.com> Co-authored-by: Rene Sepulveda <errissa@gmail.com> Co-authored-by: Yixing Lao <yixing.lao@gmail.com>

Commit:3147bd1
Author:ssheorey
Committer:GitHub

Tensorboard plugin materials support (#4078) Co-authored-by: Benjamin Ummenhofer <benjaminum@gmail.com> Co-authored-by: Rene Sepulveda <errissa@gmail.com> Co-authored-by: Yixing Lao <yixing.lao@gmail.com>

Commit:4bb5582
Author:Yixing Lao

simplify

This commit does not contain any .proto files.

Commit:fe05104
Author:ssheorey
Committer:GitHub

Tensorboard plugin (#3956) * WIP. deadlock in PeerConnectionManager::Call * First working code. call_http_api still results in deadlock in CreatePeerConnection() Using civet web server on http://localhost:8888 as workaround Moved _async_event_loop to separate file for future use in plugin Dummy .proto message format template for metadata. Use for 3D data type, shape, external storage location (plugin assets) in the future. Support for mesh only. Extend to point cloud when triangles is absent. Demo creates a single run with 2 tags and 2 steps per tag. Extend demo to 2 runs. Only double data is supported (legacy API) Need more assertions when writing summary. * WIP TB plugin UI * Set window width and height from browser Better error handling Condition variable to wait for WebRTC init. * Debug WIP (Cannot see 3D scene) Need support for multiple tags No theme support in Open3D - move to JS selectors. * Replies for DataChannelCallback * Add webrtc to sphinx documented modules docstring namespace fix - don't replace ::<space> with .<space> since ::<space> is used in rst headings * Working prototype of plugin with JS UI Add docs Update JS console.log() to appropriate log levels JS Event handlers for data channel * Send frames from server after processing data channel message. * -added more fine grained functions for message generation and conversion -pass msgpack object handle instead of object to processing functions -add function for extracting geometry from a SetMeshData message buffer * Serialization to msgpack files, deduplication, LRU cache TODO: Deserialization, testing msgpack files contain geometry data in Plugin/Open3D subfolder of run folder Serialized geometry data is written asynchronously in a separate writer thread max_outputs limits size of batch written to disk TB event files contain an index of the data in protocol buffer format (plugin_data.proto) Geometry data is cached with LRU cache Deduplication: Any property can be added to step by reference to a previous step * Large scale demo 1.6M vertices and 3M triangles loading in ~0.4s Display logdir in frontend Correct color handling Correct handling of run folders and empty runs (runs without Open3D data) Don't subsample metadata in event files Better Python loging Updated property names for mesh (also in Yixing PR) TODO: Test reloading, property references TODO: Use tensorbaord web server instead of civetweb TODO: Benchmark numpy vs msgpack (de)serialization TODO: Move logging to common Open3D Python FIXME: color dtype handling speedup * split message receiving and processing into two separate objects * rename ReceiverBase to ZMQReceiver * hide hidden python classes in io.rpc in the documentation * Int32 indices, support for 1-element batch * fix random seed for cpp unit test on win for debugging * update function calls to TriangleMesh and Poincloud * apply style * Add docs * set linger time to 0 * removed seed * tGeometry rename, formatting * WIP * Working multi-run / multi-window UI - one window per run - common set of tags (union of all tags in all runs) - sync step / batch_idx Get full window_id string from WebRTC Pass correct functions with partial() to _AsyncEventLoop Don't specify video height in css TODO: - resize support - test property references - test reload - common view - limit # open files - remove LRUcache limit on total memory (not measured) ... * WIP Property reference demo Need serialization updates to allow writing and reading empty vertices / other properties * Property references work except for primary keys (positions, indices) demo / test Cache geometry before reference lookup to reduce redundant memory use * Clean up code, add docs * Prevent running on macOS (no WebRTC) * Codacy style fixes Move Python logger from Open3D __init__ to metadata.py * ReaderWriterLock for concurrent access to LRU cache Add license JS function to disable logging in production camelCase convention for JS All open msgpack files are closed during reload * Summary writing and visualization with PyTorch No TensorFlow install required. Primary keys can be references to previous steps. * Minor style fix, use JS imports * Fixed deadlock in webrtc during addIceCandidate call Skip addIceCandidate after datachannels are ready. Moved demo code to examples folder. Switch to O3dVisualizer AsyncEventLoop allows arguments * Fix TF 2.6.0 error. TF 2.6.0 does not provide an API to get the logdir. Ask user to explicitly provide it in TF. In PyTorch this is optional. reset_camera_to_default() when the scene is updated * Yixing comments Python tests for summary writer and data reader * Add CRC to msgpack files * Yixing review: Maintain set of peerids with ready datachannels to skip extra AddIceCandidate requests. * Debug async_event_loop * Add docs for add_3d to sphinx Add support for TODO directive (prevent warnings since we use it in a few places) Skip documentation for private classes and methods (first letter = '_') Add example in add_3d docs. * Added tests for LineSet and PointCloud and GUI test for Tensorboard app The GUI test for tensorboard is skipped by default since it will not work in cloud CI. Examples: move, make consistent (Yixing) * Fix Windows /new_window JSON response * Fix for Ubuntu 18.04 MouseEvent crash and CPU core full use on idle Add mutex to protect event_queue_ in BitmapWindowSystem. Enqueuing is wait-free but not reliable, while de-queueing is reliable but may block. Event loop now uses sleep() instead of yield() to avoid CPU use during idle. * Updated behavior for camera reset and blank scenes: * There is an unwanted camera reset when changing step, options, or tags The camera is now reset only when one tag is added to an empty scene, i.e. on first load and if all tags are removed and any tag is added. * The last tag stays visible even if all tags are unchecked Fixed. The scene is empty if all tags are removed. * TB data reload button makes state inconsistent Disabled TB reload button action for now. * Yixing final comments + remove debug logging * License header for plugin_data_pb2.py Co-authored-by: Benjamin Ummenhofer <benjaminum@gmail.com>