// undine docs

Debug

Fluid simulation systems are inherently sensitive to numerical instability.

This chapter collects the diagnostic readouts and support mindset exposed across the Actions, Sim Params, and Meshify panels.

Why diagnostics matter

Small inconsistencies between solver stages can produce artifacts such as excessive kinetic energy, unstable particle motion, particle clustering, or unrealistic surface behavior.

For this reason, Undine emphasizes consistency between solver subsystems and careful numerical design.

Actions tab readouts

The Actions tab provides the most immediate runtime diagnostics while the solver or meshifier is active.

These values are not final quality metrics, but they are useful for spotting slowdowns, unexpected particle growth, or incomplete caches.

ReadoutWhat it indicatesNext place to look
POINTSCurrent or recent particle count.Emitters, particle distribution, density strength, and viewport limits.
SNAP FPS / AVGViewport playback/update throughput.SNAP preset and playback expectations.
SIM FPS / AVGSolver throughput.Grid resolution, substeps, pressure iterations, bricks, and GPU backend.
Triangle count during meshifyCurrent mesh complexity.Voxel size, influence radius, decimation, smoothing, and anisotropy.
Meshify frame progressCurrent frame count through the mesh build.Missing cache frames and backend fallback behavior.

Preset overrides

The Sim Params panel can show values that override the selected material preset.

Override readouts are useful because they explain why the current scene no longer behaves exactly like Water, Oil, Honey, Chocolate, Slime, or another preset baseline.

Override typeMeaningUse
PIC BlendCurrent PIC damping differs from the preset.Check when motion feels too energetic or too damped.
Pressure ItersCurrent pressure iteration count differs from the preset.Check when incompressibility or speed changes unexpectedly.
Pressure FallbackFallback policy differs from the preset.Check when GPU or pressure behavior does not match expectations.
CFL TargetTime-step safety differs from the preset.Check when a scene is slower or more unstable than expected.
Density StrengthDensity correction differs from the preset.Check when volume or particle distribution appears wrong.
Surface TensionSurface cohesion differs from the preset.Check when droplets, sheets, or edges look too tight or too loose.

Viewport limits

Viewport Limits are visual-only controls. They help inspect dense simulations without changing the actual solver result.

Use them to reduce display density while keeping the underlying simulation unchanged.

ControlPurposeNotes
Density %Scales viewport display density.The screenshots show 100%, meaning full visual density.
Max/CellCaps displayed particles per cell.A value of 0 usually means no display cap.
Liquid OnlyRestricts display to liquid particles.Useful when debug or auxiliary particles would clutter the viewport.

Debug toggles and cache state

Several sections expose Debug Metrics toggles or cache-state readouts.

Enable metrics when diagnosing a specific issue, then disable them when returning to normal iteration so the panel stays focused.

AreaVisible itemDiagnostic use
BricksDebug MetricsInspect active brick behavior and dense fallback decisions.
Particle DistributionDebug MetricsInspect reseeding or particle distribution behavior.
MeshifyMeshify cache: frames, missingIdentify incomplete frame caches before final mesh creation.
MeshifyDone: frames, fallbackConfirm whether mesh creation completed through the preferred path or a fallback path.

Artifact categories worth watching

Numerical instability

  • Excessive kinetic energy
  • Unstable particle motion
  • Particle clustering
  • Unrealistic surface behavior

Why stage boundaries help

The staged design of the solver makes it easier to reason about where divergence begins, because each stage has a defined role within the simulation step.

Current documentation boundary

This page documents the visible readouts from the current screenshots. Future builds can add exact debug overlay descriptions, solver logs, and per-frame diagnostic workflows here.