Comp Details
Outputs the active composition's dimensions, frame rate, and duration as values.
Category: Utility Menu path: Utility > Comp Details
Ports
| Port | Type | Direction | Description |
|---|---|---|---|
width | scalar | output | Composition width in pixels |
height | scalar | output | Composition height in pixels |
size | vec2 | output | (width, height) as a single vec2 |
aspectRatio | scalar | output | width / height (0 if height is 0) |
frameRate | scalar | output | Frames per second |
duration | scalar | output | Total duration in frames |
Parameters
None — the node reads its values directly from the active composition.
How It Works
A pure CPU value source. On every evaluation, the node reads the composition's metadata from the engine's EvalContext and emits each field as a typed output port. The values change whenever the user adjusts the composition settings (dimensions, frame rate, duration); downstream cached nodes invalidate automatically.
Usage Examples
Basic: Anchor a layout to comp center
Wire size into a MakeVector or directly into a Transform2D position to keep something pinned to the center as the comp resizes — for example Transform2D.position = size * 0.5.
Creative: Frame-rate-aware oscillation
Multiply the frameRate output into a Time-based math expression to keep an animation's perceived speed constant when you switch between 24fps and 60fps comps.
Practical: Aspect-ratio-aware Noise scale
Drive Noise's scale from aspectRatio so a curl-noise field has square cells regardless of comp shape.
Tips
- Output is cached aggressively because it doesn't vary per frame; bumping comp settings invalidates downstream automatically.
- For per-frame values like the playhead, use the Time node instead.