Scene

SceneBase and quaternion math utilities in WiTwin Core

Overview#

SceneBase is the abstract base class for all WiTwin scenes. Both witwin.channel.Scene and witwin.maxwell.Scene inherit from it. It manages lists of structures, sources, monitors, and metadata.

Users do not instantiate SceneBase directly — use witwin.channel.Scene or witwin.maxwell.Scene instead.


SceneBase#

Constructor#

SceneBase(
    structures=None,
    sources=None,
    monitors=None,
    metadata=None,
    device="cuda",
    verbose=False,
)
ParameterTypeDefaultDescription
structureslist | NoneNoneInitial list of Structure objects
sourceslist | NoneNoneInitial list of source objects
monitorslist | NoneNoneInitial list of monitor objects
metadatadict | NoneNoneOptional metadata
devicestr"cuda"PyTorch device string
verboseboolFalseEnable verbose logging

Attributes#

AttributeDescription
scene.structuresList of Structure objects
scene.sourcesList of source objects
scene.monitorsList of monitor objects
scene.metadataScene metadata dictionary
scene.deviceDevice string
scene.verboseVerbose flag

Quaternion Math#

WiTwin Core provides quaternion utilities for rotation operations. These are used internally by geometry primitives and can be used directly for custom rotation workflows.

from witwin.core import (
    quat_identity,
    quat_from_euler,
    quat_multiply,
    quat_to_rotation_matrix,
    quat_to_rotation_matrix_np,
)

quat_identity()#

Returns the identity quaternion (0, 0, 0, 1).

quat_from_euler(roll, pitch, yaw)#

Construct a quaternion from Euler angles in radians.

q = quat_from_euler(roll=0.0, pitch=0.0, yaw=1.57)

quat_multiply(q1, q2)#

Multiply two quaternions — equivalent to composing two rotations.

q = quat_multiply(q1, q2)

quat_to_rotation_matrix(q)#

Convert a quaternion to a 3×3 rotation matrix as a PyTorch tensor.

R = quat_to_rotation_matrix(q)  # returns torch.Tensor of shape (3, 3)

quat_to_rotation_matrix_np(q)#

Convert a quaternion to a 3×3 rotation matrix as a NumPy array.

R = quat_to_rotation_matrix_np(q)  # returns np.ndarray of shape (3, 3)

Next Steps#

Scene | Witwin-core