Articles

How Houdini Handles Time: Frames, Seconds & Subframes Explained

Includes one exclusive complete course

The exclusive course — a full production tutorial you won't find anywhere else, never sold alone.

Best Seller
Most Loved
Tutorial Camera Rig

ADVANCED CUSTOM CAMERA RIG

ANIMATION · CONSTRAINTS · CUSTOM UI

BUILD A FULLY CUSTOM CONSTRAINT-BASED CAMERA RIG IN HOUDINI WITH A CUSTOM UI PANEL. DESIGN FLEXIBLE SYSTEMS FOR PRECISE, CINEMATIC CAMERA ANIMATION ON ANY PROJECT.

€29.99

Freebies
Free Studio HDRI Pack box by Artivoxa showing 60 studio lighting setups with softboxes wrapped around the packaging

Studio HDRI Collection

ASSETS · EXR & HDR · 60 HDRIS

DOWNLOAD 60 STUDIO HDRIS CAPTURED IN A REAL PHOTO STUDIO. LIGHT YOUR PRODUCT AND BEAUTY RENDERS LIKE A PHOTOGRAPHER — SOFTBOX, LANTERN, STRIP AND GRID SETUPS, READY FOR ANY RENDERER.

FREE

ARTILABZ™

Everything You Need to master Houdini.

ARTILABZ™ gives you unlimited access to all Houdini courses, 3D assets, simulation files, textures and tools. updated every month.

01

Premium Houdini Tutorials

Full access to every course — fluid simulation, procedural FX, brand visuals and more.

02

Monthly New Content

Fresh tutorials and assets added every month — your library grows with you.

03

Instant Access to Everything

The moment you join, the full library is yours — no drip-feed, no waiting.

04

Project Files Included

Every tutorial comes with the full Houdini scene file — open every node, learn every detail.

FROM 14.99€/MONTH

How Houdini Handles Time: Frames, Seconds & Subframes Explained

Ever tried lining up an animation in Houdini and lost count of frames? Are you confused by the difference between frame rate and real time? You’re not alone in feeling frustrated when your simulation jumps ahead or lags behind.

Understanding how Houdini treats frames and seconds can feel like learning a new language. Is one frame 1/24th of a second or something else entirely? Without clarity, your animations can end up off sync.

Then there are subframes. What role do they play in smoothing motion? You might see strange jitters or unexpected results because you don’t know when to use substeps or subframes.

This guide cuts through the jargon. You’ll discover how to convert between frames and seconds, why subframes matter, and how to avoid common timing mistakes in Houdini.

By the end, you’ll feel confident setting up your timeline, tweaking playback speed, and creating seamless animations without guesswork. Let’s demystify time in Houdini step by step.

What do ‘frames’, ‘seconds’, and ‘subframes’ mean in Houdini?

In Houdini, a frame is the basic unit of animation, represented by an integer on the timeline. When you press Play or drag the playbar, you jump from one whole frame number to the next. Behind the scenes, Houdini evaluates parameters, updates SOPs, and advances DOP simulations exactly once per frame by default.

A second is real-world time, calculated as frame number divided by the scene’s FPS (frames per second) setting in the Global Animation Options. For example, at 24 FPS frame 48 corresponds to 2 seconds. Houdini converts frames to seconds in expressions using $F/$FPS or the built-in $T variable, ensuring your keyframe curves and time-based expressions remain consistent when you change FPS.

A subframe is any fractional point between two whole frames. Houdini uses subframes to:

  • Interpolate geometry in Time Blend or TimeShift SOPs
  • Compute motion blur samples in Mantra and Karma
  • Advance DOP simulations with multiple substeps per frame for stable collisions
  • Sample CHOP channels at high temporal resolution

Under the hood, when you request frame 5.25, Houdini evaluates each procedural node at that exact time, blending or simulating at the requested fraction. This fractional evaluation empowers smoother playback, accurate motion blur, and more stable physics without forcing you to render or simulate extra integer frames.

How does Houdini convert between frames and seconds?

Houdini bases all timing on the project’s Frames Per Second setting, found under “Global Animation Options.” Internally, each frame is an integer count, and Houdini calculates seconds by dividing the current frame by the FPS. For example, at 24 FPS frame 48 corresponds to 48 / 24 = 2 seconds. This simple ratio underpins every time-dependent operation.

In Houdini expressions, $F returns the current frame, while $FPS returns the scene’s frame rate. To drive a parameter by real time, you use $F/$FPS or the built-in $T, which directly yields time in seconds. In VEX, the functions getframe() and gettime() serve the same purpose. This conversion is automatic in procedural networks, ensuring consistent timing across all nodes.

When you need more advanced control—such as retiming or blending animation—you often employ CHOPs. Key nodes include:

  • Speed CHOP: Scales time by a multiplier, converting input frames into stretched or compressed seconds.
  • TimeShift CHOP: Offsets channels by a specified time in seconds or frames, respecting the project FPS.
  • TimeBlend CHOP: Interpolates between samples based on time intervals, allowing subframe evaluation for smooth motion.

By understanding these conversions and tools, you can precisely control timing in Houdini, whether you’re scripting complex rigs, syncing to audio, or creating photorealistic simulations that demand accurate physical seconds.

How do subframes work in Houdini and when should you use them?

Subframes in simulations: solver timesteps, substeps, and accuracy

In Houdini’s DOP context, subframes define how many internal integration steps a solver takes between whole frames. The solver’s timestep controls each step duration, while substeps subdivide that interval. Increasing substeps reduces tunneling and interpenetration in fast-moving RBD or FLIP sims, improving collision accuracy at the cost of CPU time.

  • Adjust “Substeps” on solvers like RBD or FLIP to refine contact resolution
  • Raise “Constraint Substeps” for simulated joints under high forces
  • Use more substeps when objects move rapidly or are very small

Remember that doubling substeps roughly doubles solve time. Profile your scene and increment only as needed for stable results.

Subframes for animation and motion blur: TimeBlend, TimeShift and render sampling

For keyframe-based animation, subframes let you sample motion at fractional times. The TimeBlend node interpolates transforms between frames, while TimeShift can resample geometry at any exact frame or timecode. This is essential for generating accurate motion blur vectors or smoothing a cached animation.

  • TimeBlend “Exact Frame” mode computes per-point velocity between adjacent frames
  • TimeShift can pull geometry from noninteger frames for retiming or loops
  • Configure renderer render sampling (shutter open/close) to use multiple subframes per pixel

During rendering, mantra or Karma subdivides shutter intervals into subframe samples. Ensuring your geometry is correctly resampled with TimeBlend/TimeShift guarantees crisp, artifact-free motion blur.

Where to set project time: FPS, start/end frame, and global time options

Houdini’s core timing parameters live in the playbar controls, the Global Animation Options and individual ROP nodes. Defining these early in your project ensures all simulations, expressions and renders share a unified time base. Changes here propagate via built-in variables like $FPS, $FSTART and $FEND.

To set the project FPS, open the Global Animation Options panel (Alt+P) and choose from presets or enter a custom value. This value writes into the HIP file header, drives time-dependent HDA samples, and becomes the default for new cameras, lights and simulation solvers unless overridden.

The start frame and end frame fields appear on the playbar’s left and right. Adjusting these updates the global timeline view. For rendering, ROP Output Driver nodes also include independent frame-range parameters—useful when batch-rendering multiple sequences from the same scene.

Within the Global Animation Options you’ll also find Time Samples and Time Format settings. Time Samples determine how many substeps Houdini computes when using $T or subframe interpolation. Time Format toggles between frames, seconds or SMPTE display, aiding precision in motion-graphic or film pipelines.

  • Playbar: timeline start/end entry, transport controls
  • Global Animation Options (Alt+P): FPS, Time Samples, Time Format
  • ROP Output Driver: override frame range per render

Practical timing workflows: animating, caching, and simulation best practices

When animating in Houdini, begin by setting your Frames Per Second (FPS) in the Global Animation Options. Think of seconds as the real-world duration and frames as the discrete playback steps. Work in frame display mode to place keyframes precisely, then preview in second mode to validate overall timing. Use the TimeShift node to freeze or retime clips before baking.

Efficient caching minimizes re-solves and preserves subframe accuracy. Deploy the File Cache node to write geometry or sim data to disk. Specify exact frame ranges, enable timestamp-based invalidation, and choose .bgeo.sc for compact, lossless storage. For clean subframe interpolation, enable “16bit” export and combine with a TimeBlend SOP to smooth between cached steps without full retimes.

Simulation workflows demand both frame-exact and subframe-correct data. Pull cached DOP output into SOPs using the DOP Import node, then activate subframe sampling there. This captures mid-timestep forces, reducing jitter in slow-motion tests. Always bake complex sims before lighting or compositing to lock down timing and memory usage.

  • Finalize FPS before animating or simulating; avoid switching mid-project.
  • Store caches per asset in folders labeled by frame range (e.g., “explosion_1-240”).
  • Use TimeBlend for fast interpolation, TimeWarp for custom remapping curves.

By unifying frames, seconds, and subframes across animation, caching, and simulation, you ensure predictable playback, streamlined caching, and physically accurate results throughout your Houdini pipeline.