77 lines
2.5 KiB
Python
Executable File
77 lines
2.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""Example of using the blueprint APIs to configure Rerun."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
|
|
import numpy as np
|
|
|
|
import rerun as rr # pip install rerun-sdk
|
|
import rerun.blueprint as rrb
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser(description="Different options for how we might use blueprint")
|
|
|
|
parser.add_argument("--skip-blueprint", action="store_true", help="Don't send the blueprint")
|
|
parser.add_argument("--auto-views", action="store_true", help="Automatically add views")
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.skip_blueprint:
|
|
blueprint = None
|
|
else:
|
|
# Create a blueprint which includes 2 additional views each only showing 1 of the two
|
|
# rectangles.
|
|
#
|
|
# If auto_views is True, the blueprint will automatically add one of the heuristic
|
|
# views, which will include the image and both rectangles.
|
|
blueprint = rrb.Blueprint(
|
|
rrb.Grid(
|
|
rrb.Spatial2DView(name="Rect 0", origin="/", contents=["image", "rect/0"]),
|
|
rrb.Spatial2DView(
|
|
name="Rect 1",
|
|
origin="/",
|
|
contents=["/**"],
|
|
defaults=[rr.Boxes2D.from_fields(radii=2)], # Default all rectangles to have a radius of 2
|
|
overrides={"rect/0": rr.Boxes2D.from_fields(radii=1)}, # Override the radius of rect/0 to be 1
|
|
),
|
|
),
|
|
rrb.BlueprintPanel(state="collapsed"),
|
|
rrb.SelectionPanel(state="collapsed"),
|
|
rrb.TimePanel(
|
|
state="collapsed",
|
|
timeline="custom",
|
|
time_selection=rrb.components.AbsoluteTimeRange(10, 25),
|
|
loop_mode="selection",
|
|
play_state="playing",
|
|
),
|
|
auto_views=args.auto_views,
|
|
)
|
|
|
|
rr.init("rerun_example_blueprint", spawn=True, default_blueprint=blueprint)
|
|
|
|
rr.set_time("custom", sequence=0)
|
|
|
|
img = np.zeros([128, 128, 3], dtype="uint8")
|
|
for i in range(8):
|
|
img[(i * 16) + 4 : (i * 16) + 12, :] = (0, 0, 200)
|
|
rr.log("image", rr.Image(img))
|
|
|
|
rr.set_time("custom", sequence=10)
|
|
rr.log(
|
|
"rect/0",
|
|
rr.Boxes2D(mins=[16, 16], sizes=[64, 64], labels="Rect0", colors=(255, 0, 0)),
|
|
)
|
|
|
|
rr.set_time("custom", sequence=20)
|
|
rr.log(
|
|
"rect/1",
|
|
rr.Boxes2D(mins=[48, 48], sizes=[64, 64], labels="Rect1", colors=(0, 255, 0)),
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|