Migrating from 0.20 to 0.21

Near clip plane for Spatial2D views now defaults to 0.1 in 3D scene units. near-clip-plane-for-spatial2d-views-now-defaults-to-01-in-3d-scene-units

Previously, the clip plane was set an arbitrary value that worked reasonably for cameras with large focal lengths, but become problematic for cameras with smaller focal length values. This value is now normalized based on the focal length of the camera.

If the default value of 0.1 is still too large for your use-case it can be configured using the new near_clip_plane of the VisualBounds2D blueprint property, either through the UI, or through the SDK in Python:

rr.send_blueprint(
    rrb.Spatial2DView(
        origin="world/cam",
        contents="/**",
        visual_bounds=rrb.VisualBounds2D(
            near_clip_plane=0.01,
        ),
    )
)

Blueprint types and fields got renamed from .*space_view.*/.*SpaceView.* to .*view.*/.*View.* blueprint-types-and-fields-got-renamed-from-spaceviewspaceview-to-viewview

Various types and fields got changed to refer to "views" rather than "space views". This exclusively affects the Python blueprint sdk.

Field/argument changes

  • ViewportBlueprint(...auto_space_views=...) -> ViewportBlueprint(...auto_views=...)
  • Blueprint(...auto_space_views=...) -> Blueprint(...auto_views=...)

Type changes

Utilities
  • SpaceView -> View
Archetypes
  • SpaceViewBlueprint -> ViewBlueprint
  • SpaceViewContents -> ViewContents
Components
  • AutoSpaceViews -> AutoViews
  • SpaceViewClass -> ViewClass
  • SpaceViewOrigin -> ViewOrigin
  • SpaceViewMaximized -> ViewMaximized

3D transform arrow visualization show up less often by default 3d-transform-arrow-visualization-show-up-less-often-by-default

Previously, the viewer would show 3 arrows for every logged transform if any of the following was true:

  • enabled visualizer via VisualizerOverrides or ui
  • AxisLength component is present as well
  • there's a pinhole camera at the same path
  • no other visualizer would be active by default on the path

For many usecases this led to too many arrows being shown by default. We therefore removed the last condition - arrows will no longer show by default if they're the only visualizer. The easiest way to opt-in to transform arrows is to set AxisLength (axis_length field on the Transform3D archetype) on your transforms.

DisconnectedSpace archetype/component deprecated disconnectedspace-archetypecomponent-deprecated

The DisconnectedSpace archetype and DisconnectedSpace component have been deprecated. To achieve the same effect, you can log any of the following "invalid" transforms:

  • zeroed 3x3 matrix
  • zero scale
  • zeroed quaternion
  • zero axis on axis-angle rotation

Previously, the DisconnectedSpace archetype played a double role by governing view spawn heuristics & being used as a transform placeholder. This led to a lot of complexity and often broke or caused confusion (see https://github.com/rerun-io/rerun/issues/6817, https://github.com/rerun-io/rerun/issues/4465, https://github.com/rerun-io/rerun/issues/4221). By now, explicit blueprints offer a better way to express which views should be spawned and what content they should query. (you can learn more about blueprints here).

DisconnectedSpace will be removed in a future release.

RotationAxisAngle with zero rotation axis is no longer treated as identity rotationaxisangle-with-zero-rotation-axis-is-no-longer-treated-as-identity

Previously, RotationAxisAngle with a zero rotation axis was treated as identity. This is no longer the case, instead it makes the transform invalid in the same way a zeroed transformation matrix does.