Proto commits in aurora-opensource/xviz

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

Commit:e427525
Author:luke hsieh

add new style for texture support

Commit:e4911fd
Author:Timothy Wojtaszek
Committer:GitHub

Add "point_color_mode" and "point_color_domain" to the spec files (#559) Fix error where lowercase constants should have been uppercase. Support both for backwards compatibility.

The documentation is generated from this commit.

Commit:922d9f2
Author:Timothy Wojtaszek
Committer:GitHub

Remove duplicate Link message in protobuf (#561)

Commit:6564a5e
Author:Tim Wojtaszek
Committer:Tim Wojtaszek

Add "point_color_mode" and "point_color_domain" to the spec files Fix error where lowercase constants should have been uppercase. Support both for backwards compatibility.

Commit:306b835
Author:Tim Wojtaszek
Committer:Tim Wojtaszek

Remove duplicate Link message in protobuf

Commit:9cb3c30
Author:Tim Wojtaszek

Transform streams (#546) This adds scene graph support to XVIZ through the use of the new *links* entry in the state_update message. - Support parsing of links - Add link support to xviz-stream-buffer - Add link support to synchronizer - Add links to protobuf and round-trip tests - Add scenario demonstrating links in "scenario-orbit"

Commit:1a23c38
Author:Timothy Wojtaszek
Committer:GitHub

RFC: Scene Graph support for primitives (#524) Detail the addition of the **links** entry in the state_update message. The links entry relates two streams (either a primitive stream or a pose stream) in order to support position and orientation attributes to model a scene graph transform network.

Commit:d8cde7b
Author:Tim Wojtaszek
Committer:Tim Wojtaszek

Update RFC to address development and comments

Commit:5b12fec
Author:Timothy Wojtaszek
Committer:GitHub

Persistent specification updates (#507) Related to #403

Commit:d604c48
Author:Tim Wojtaszek
Committer:Tim Wojtaszek

Persistent specification updates Related to #403

Commit:e8ffb2b
Author:Timothy Wojtaszek
Committer:GitHub

Changes for better performance with protobuf.js instances (#503) Protobuf.js uses prototype object creation which has the effect of looking up the prototype chain for properties even if the instance does not have it set. This requires the use of 'hasOwnProperty()' in some places to distinguish between the instance and the prototype property. The library also assigns default values for fields, such as the empty array or a value of 0. Our parsing would look at presences to determine if a property was meaningfully set, but now we need to have additional validation due to the default values set by the protobuf.js library.

Commit:f84dcd6
Author:Timothy Wojtaszek
Committer:GitHub

Protobuf update for style and UI (#504) - Change prototype definition for color from uint32 to bytes - Change metadata ui_config to use the Struct type for the config field

Commit:60ca4a6
Author:Timothy Wojtaszek
Committer:GitHub

Add Protobuf Envelope and change doubles to floats (#495) - default tolerance is 1e-7

Commit:ee51a7c
Author:Joseph Lisee

Add in all value types

Commit:66b5d2d
Author:Timothy Wojtaszek
Committer:GitHub

Add 'log_info' definition to metadata schema (#448)

Commit:0c207dd
Author:Joseph Lisee

First try at a "PolygonGroup" type This is a "structure of arrays" style type that allows for much faster encode/decode and in a lot of cases use.

Commit:07a31b1
Author:Joseph Lisee

To make comparison easier make bulk position data float instead of double

Commit:1393e78
Author:Joseph Lisee

Try bytes added directly to protobuf info

Commit:5b5079e
Author:Joseph Lisee
Committer:GitHub

Fix protobuf Values documentation

Commit:a8cfc2b
Author:Timothy Wojtaszek
Committer:GitHub

Change specification enumerations to ALLCAPS (#477) Follow the convention that constant enumerated values should be in ALLCAPS. This is a spec change for XVIZ, but retains compatibility with lowercase by forcing a case conversion at the appropriate places within the modules. Spec change locations: declarative ui properties - component type - layout - interactions xviz message - type - xviz/start - session_type - message_format - log - xviz/metadata - stream metadata - category - scalar type, for time_series & variables - primitive type, for time_series & variables - annotation_type, for annotations - stream style - text_anchor - text_baseline - xviz/state_update - update_type - xviz/reconfigure - update_type

Commit:01fc3b2
Author:Joseph Lisee
Committer:Joseph Lisee

Lint protobuf files, move to xviz.v2 package, ensure bazel compat (#476) We are using Uber's prototool 1.7 for lint with the provided prototool.yaml setting which rules we are not following. These are not being followed so that JSON emitted and consumed by the protobuf types matches that in the JSON schema. Bazel compatibility allows other projects to pull in our source releases and use the protobuf rules directly. See the `docs/protocol-formats/protobuf-protocol.md` for more details on Bazel and lint/formatting.

Commit:a80151b
Author:Joseph Lisee
Committer:GitHub

Rename "snapshot" to "complete_state" and clarify meaning (#404) Right now "snapshot" is close to "incremental" but now we have defined them in such a way that we can implement things properly. Further changes will implement this functionally.

Commit:4737ee1
Author:Timothy Wojtaszek
Committer:GitHub

Spec: change Pose 'mapOrigin' to 'map_origin' to conform to snake_case (#395) Issue https://github.com/uber/xviz/issues/394

Commit:47df7d6
Author:z-k-r
Committer:Joseph Lisee

Switch treetable integer type to int32 (#411) Currently it reads "integer", should be "int32" instead to match the other XVIZ types.

Commit:73073dc
Author:Xiaoji Chen
Committer:GitHub

Conformance tests for all primitives (#325)

Commit:27385a3
Author:Xiaoji Chen
Committer:GitHub

Make schema validators work in the browser (#322)

Commit:d5b694a
Author:Joseph Lisee
Committer:GitHub

(Unstable) transform_point_in_time message spec & docs (#227) The `transform_point_in_time` message gives a client the ability to ask for the latest value of a set of XVIZ streams up to a particular point in time. This is useful for generating 3D or 2D images of logs, or continuously viewing a time of interest as you reconfigure the XVIZ transform done by the server.

Commit:6261b13
Author:Joseph Lisee
Committer:GitHub

Session protocol docs & transform message specs (#226) This explicitly defines the XVIZ 2 session protocol and all the messages it contains. We describe in details the flow of: - connect - client sends `start` - server sends `metadata` - optional: client sends `reconfigure` - client sends `transform_log` - server sends `state_update` (many of them) - server sends `transform_log_done` - optional: server sends `error` To fully specify this we defined the follow new message: - `reconfigure` (this was just the envelope support) - `transform_log` - `transform_log_done` - `error` Also some links were fixed in the documentation page, and we fixed the `start` message schema and added more examples.

Commit:bf3e78c
Author:Joseph Lisee
Committer:GitHub

Fully flesh out XVIZ stream metadata (#215) We want to be able say exactly what data is on what stream so we can inform the front end of the fact. This properly sets up a two tiered system where you define the category a field is in, like "primitive" then say what exactly it is like "circle". The one interesting choice here is that we use the "scalar_type" field to represent the type of both "time_series" and "variable" data.

Commit:1cdfb94
Author:Joseph Lisee
Committer:GitHub

Specification for reconfigure message (#216) This allows a client to adjust how a server transform the data it sends in XVIZ format. In order to make this happen I had to add support for the google.protobuf.Struct well known type to protobuf.js. The upside it lets us basically embed JSON directly into protobuf for use cases like configuration updates. It also does it in a way that is faster or more dense than raw text.

Commit:078b0d1
Author:Joseph Lisee
Committer:GitHub

Define and update TreeTable schema (#191) We have translated the documented schema into a formal JSON and protobuf schema with a set of invalid and valid examples. The schema has changed to having all column values encoded as strings for now. In the future when we can figure out a more efficient protobuf compatible encoding we'll make a backwards compatible switch to that.

Commit:a859666
Author:Joseph Lisee
Committer:GitHub

Update changelog and docs for 0.2.0 and clean up code (#177) The markdown protocol docs have been updated to reflect the changes made for protobuf compatibility, and all the protobuf files have been marked unstable. To cleans things up a little bit the massive test for the proto validation code has had some utility code factored out and some function move out of the test.

Commit:5be15d6
Author:Joseph Lisee
Committer:GitHub

Finalize XVIZ protobuf with session types (Part 5) (#175) All XVIZ types, except declarative UI, now have a matching protobuf 3 types. The changes needed to do this were mostly non-breaking: - `DYNAMIC` transform now specifies it's function with `transform_callback` - The 3x3 and 4x4 Matrix types can now be passed flat, because that that is how they are represented in protobuf. - `ui_panel_info` can now represent the declarative UI content as raw string because that is how protobuf will pass the JSON format of the declarative UI files. In the final section we will update all the docs and the change log.

Commit:ec6013e
Author:Joseph Lisee
Committer:GitHub

Updates variable schema & builders to match proto3 IDL (Part 4) (#172) See part 1 commit for details, but background and context, the changes here are: - `variable` not contains a `values` object instead of a `values` array, that object has sub-arrays for each type - `object_id` in variable is moved to a separate `base` object

Commit:2ee9c15
Author:Joseph Lisee
Committer:GitHub

Updates timeseries schema & builds to match proto3 IDL (Part 3) (#171) See part 1 commit for details, but background and context, the change here is: - We have a new `values` type that holds arrays of different kinds of values. - `timeseries_state` now holds an array of stream names and instance of this `values` type. Both arrays are the same length.

Commit:bc9f376
Author:Joseph Lisee
Committer:GitHub

Updates future_instance schema to match proto3 IDL (Part 2) (#169) See part 1 commit for details, but background and context, the change here is: - `future_instances` now hold arrays of `primitive_state` (ie. an object with a subfield of each type of primitive), because we cannot have a polymorphic list of objects.

Commit:08bfb38
Author:Joseph Lisee
Committer:GitHub

Update schema and provided compatible proto3 IDL files (#168) The goal here is to increase adoption by letting people build quick clients with based on the protobuf IDL files and websocket library. Note we are excluding declarative UI because that is meant as a pure text protocol that is easy for humans to edit. The downside is we have to content with protobuf not supported: - Maps of arrays - Polymorphic types - Variant fields - No typedefs So the major changes we have to do for this is: - Move common fields from primitive, and annotation into base sub type - Replace polymorphic lists of primitives with lists per types - Add explicitly typed lists for time series and variables - (Part 2) Update future_instances to be non polymorphic - (Part 3) Update time_series to be non variant based - (Part 4) Update variables to be non variant based This also means protobuf will only ever support a subset of the JSON schema, with that subset being: - Numeric only colors (no hex or string support) - Flattened arrays only (no nested array support) (Maybe we'll even have some gRPC endpoints someday as well).