Skip to content

Initialization

def rerun.init(application_id, recording_id=None, spawn=False, init_logging=True, default_enabled=True, strict=False, exp_init_blueprint=False, exp_add_to_app_default_blueprint=True)

Initialize the Rerun SDK with a user-chosen application id (name).

You must call this function first in order to initialize a global recording. Without an active recording, all methods of the SDK will turn into no-ops.

For more advanced use cases, e.g. multiple recordings setups, see rerun.new_recording.

Parameters:

Name Type Description Default
application_id str

Your Rerun recordings will be categorized by this application id, so try to pick a unique one for each application that uses the Rerun SDK.

For example, if you have one application doing object detection and another doing camera calibration, you could have rerun.init("object_detector") and rerun.init("calibrator").

required
recording_id Optional[str]

Set the recording ID that this process is logging to, as a UUIDv4.

The default recording_id is based on multiprocessing.current_process().authkey which means that all processes spawned with multiprocessing will have the same default recording_id.

If you are not using multiprocessing and still want several different Python processes to log to the same Rerun instance (and be part of the same recording), you will need to manually assign them all the same recording_id. Any random UUIDv4 will work, or copy the recording id for the parent process.

None
spawn bool

Spawn a Rerun Viewer and stream logging data to it. Short for calling spawn separately. If you don't call this, log events will be buffered indefinitely until you call either connect, show, or save

False
default_enabled bool

Should Rerun logging be on by default? Can be overridden with the RERUN env-var, e.g. RERUN=on or RERUN=off.

True
init_logging bool

Should we initialize the logging for this application?

True
strict bool

If True, an exceptions is raised on use error (wrong parameter types, etc.). If False, errors are logged as warnings instead.

False
exp_init_blueprint bool

(Experimental) Should we initialize the blueprint for this application?

False
exp_add_to_app_default_blueprint bool

(Experimental) Should the blueprint append to the existing app-default blueprint instead of creating a new one.

True

def rerun.connect(addr=None, flush_timeout_sec=2.0, recording=None)

Connect to a remote Rerun Viewer on the given ip:port.

Requires that you first start a Rerun Viewer by typing 'rerun' in a terminal.

This function returns immediately.

Parameters:

Name Type Description Default
addr str | None

The ip:port to connect to

None
flush_timeout_sec float | None

The minimum time the SDK will wait during a flush before potentially dropping data if progress is not being made. Passing None indicates no timeout, and can cause a call to flush to block indefinitely.

2.0
recording RecordingStream | None

Specifies the rerun.RecordingStream to use. If left unspecified, defaults to the current active data recording, if there is one. See also: rerun.init, rerun.set_global_data_recording.

None

def rerun.disconnect(recording=None)

Closes all TCP connections, servers, and files.

Closes all TCP connections, servers, and files that have been opened with [rerun.connect], [rerun.serve], [rerun.save] or [rerun.spawn].

Parameters:

Name Type Description Default
recording RecordingStream | None

Specifies the rerun.RecordingStream to use. If left unspecified, defaults to the current active data recording, if there is one. See also: rerun.init, rerun.set_global_data_recording.

None

def rerun.spawn(port=9876, connect=True, recording=None)

Spawn a Rerun Viewer, listening on the given port.

This is often the easiest and best way to use Rerun. Just call this once at the start of your program.

You can also call rerun.init with a spawn=True argument.

Parameters:

Name Type Description Default
port int

The port to listen on.

9876
connect bool

also connect to the viewer and stream logging data to it.

True
recording RecordingStream | None

Specifies the rerun.RecordingStream to use if connect = True. If left unspecified, defaults to the current active data recording, if there is one. See also: rerun.init, rerun.set_global_data_recording.

None

def rerun.serve(open_browser=True, web_port=None, ws_port=None, recording=None)

Serve log-data over WebSockets and serve a Rerun web viewer over HTTP.

You can also connect to this server with the native viewer using rerun localhost:9090.

WARNING: This is an experimental feature.

This function returns immediately.

Parameters:

Name Type Description Default
open_browser bool

Open the default browser to the viewer.

True
web_port int | None

The port to serve the web viewer on (defaults to 9090).

None
ws_port int | None

The port to serve the WebSocket server on (defaults to 9877)

None
recording RecordingStream | None

Specifies the rerun.RecordingStream to use. If left unspecified, defaults to the current active data recording, if there is one. See also: rerun.init, rerun.set_global_data_recording.

None

def rerun.save(path, recording=None)

Stream all log-data to a file.

Parameters:

Name Type Description Default
path str

The path to save the data to.

required
recording RecordingStream | None

Specifies the rerun.RecordingStream to use. If left unspecified, defaults to the current active data recording, if there is one. See also: rerun.init, rerun.set_global_data_recording.

None

def rerun.memory_recording(recording=None)

Streams all log-data to a memory buffer.

This can be used to display the RRD to alternative formats such as html. See: [rerun.MemoryRecording.as_html][].

Parameters:

Name Type Description Default
recording RecordingStream | None

Specifies the rerun.RecordingStream to use. If left unspecified, defaults to the current active data recording, if there is one. See also: rerun.init, rerun.set_global_data_recording.

None

Returns:

Type Description
MemoryRecording

A memory recording object that can be used to read the data.