Skip to main content
se3labs.interface.eval.definition

Task Definitions

Task definitions sample semantic parameters once, realize an initial layout, and render a concrete Task_Spec for one episode. Parameters and geometry use independent random streams. Save the resulting tasks to repeat an evaluation with the same instructions, layouts, and scoring questions.

TaskParameters​

TaskParameters()

Typed semantic values; subclasses enforce their task's domain constraints.

Methods​

record() -> dict[str, Task_ParameterValue]​#

P​

P = TypeVar('P', bound=TaskParameters)

TaskDefinition​

class TaskDefinition(ABC, Generic[P])

Authoring API; only the concrete result of sample goes to the station.

Attributes​

name: str​#

Canonical task ID, matching the documentation and sampled Task_Spec.name.

layout: LayoutSpec​#
max_rollout_time: float​#

Methods​

sample_parameters(random: Random) -> P​#

Draw a valid assignment, including distinctness and order constraints.

task(parameters: P, max_rollout_time: float) -> Task_Spec​#

Render setup, policy instruction, and scoring from the same assignment.

sample(seed: int, *, max_rollout_time: float | None = None, parameters: P | None = None, max_attempts: int = 10000) -> Task_Spec​#

Realize an episode. An explicit parameter assignment overrides its random draw.

The definition supplies the time limit unless explicitly overridden. Geometry retries never change the semantic assignment.

sample_set(seed: int, *, episodes: int, max_rollout_time: float | None = None) -> tuple[Task_Spec, ...]​#

Generate a reproducible episode set to reuse across policies.