Skip to main content

Response Surface Analysis module

This module allows for the rapid exploration of the design space using virtual Design of Experiments (DOEs). By evaluating multiple design configurations automatically, this tool helps visualize the complex relationships between catheter design inputs and performance outputs via interactive 3D response surface plots.

Optimization Setup

This left panel is where you define the parameters of your virtual experiment.

  • Select Design Parameters: Choose the input variables you want to evaluate from the parameter tree. You can select up to two continuous variables and/or one categorical attribute for an A/B split test. Click the checkbox next to a parameter to add it.
    • Variables: Continuous parameters such as layer thickness or braid PPI.
    • Attributes: Categorical choices such as material selection or wire shape.
  • Active Variables: For each selected variable, define the Minimum and Maximum values to establish the boundaries of your design space.
  • Run Experiment: Click this button to begin the automated simulation sweep. VirtuCath™ generates a 5×5 grid (25 sample points) for 2-variable sweeps or a 5-point linear sweep for 1-variable sweeps, calculates the static and dynamic properties at every sample point, and fits a cubic response surface. If too many simulations error out to support the cubic fit, a simpler quadratic surface is fitted instead so you still get a usable result.

Running an experiment with two continuous variables generates a full 3D response surface, while selecting one variable produces a 2D response curve. Adding an attribute to either setup will generate a comparative A/B split analysis with two surfaces overlaid for direct comparison.

Response Surface Analysis

The middle panel provides an interactive 3D visualization of the experiment results.

  • Interactive 3D Plot: Displays the predicted performance metric across your defined design space. You can rotate the view with the left mouse button, pan with the middle button, and zoom with the scroll wheel or right button.

  • Surface visualization layers:

    • Fitted surface: The main 3D surface, color-mapped by the metric value.
    • Sample dots: Off-white spheres at each simulated design point so you can see exactly what was tested versus what is interpolated. The surface is a statistical fit, not an interpolator — small gaps between dot and surface are expected and reflect how well the cubic model captures the underlying behavior.
    • Floor contour projection: A 2D heatmap at the bottom of the cube showing the surface value as a function of the two input variables.
    • Scalar bar: Color legend on the right edge, labeled in the metric's display units.
  • A/B Split Comparison: If an attribute was included in your setup, the plot displays two solid-colored surfaces (Blue and Orange) for the two categorical choices. Two cursor spheres (one per surface) update together as you move the sliders.

  • Exploration Sliders (X & Y): Use the sliders below the plot to navigate specific points on the response surface. As you move a slider, a red cursor sphere (or a blue+orange pair in A/B mode) and a dashed drop line to the floor projection update in real-time to pinpoint your exact location within the design space.

  • Predicted Value: The numerical readout dynamically updates to display the model's predicted performance metric for the specific combination of inputs selected by the sliders, formatted in the metric's display units.

  • Fit Quality: Below the predicted value, a single adjusted R² score tells you how trustworthy the surface is for the selected metric. Adjusted R² stays honest when the data is noisy or near-flat, so you can read it directly without worrying about overfitting artifacts. The line is color-coded so you can read fit quality at a glance:

    • Green (adj R² ≥ 0.95) — the surface tracks the data closely; predictions are trustworthy within the swept range.
    • Amber (0.70 ≤ adj R² < 0.95) — the surface is usable but the underlying physics likely has features the cubic doesn't fully capture. Treat predictions directionally.
    • Red (adj R² < 0.70) — the surface is mostly fitting noise. Read values off the sample dots directly rather than relying on the prediction.
    • Gray (metric is essentially constant) — the selected metric barely varies across the design space, so a fit quality score isn't meaningful. The surface is still drawn but tells you the parameter sweep doesn't affect this output.

    In A/B mode, both surfaces' scores are shown and the color reflects the worse of the two.

Reset View snaps the camera back to the default isometric orientation. Save PNG exports the current plot view to a PNG file.

Performance Metrics

The right panel allows you to select which calculated output to visualize on the response surface.

  • Output Selection Tree: Choose from a comprehensive list of calculated metrics.
    • Static Metrics: Properties derived directly from the catheter's construction, such as bending stiffness (EI), torsional stiffness (GJ), axial stiffness (EA), burst pressure, crush pressure, linear density, elastic instability radius, tensile failure load, and torque failure.
    • Dynamic Metrics: Performance indicators derived from the MuJoCo simulation, such as tip deflection, tip position and orientation, wire tension, strain energy, and per-section bend radius / bending moment / ovalization.
  • Export Results to CSV: Click this button to export the raw data generated during the experiment sweep for further statistical analysis or reporting in external software. The CSV includes one row per sample point with the input variables in the leftmost columns and every calculated KPI in subsequent columns, named with their hierarchical path. A short summary of the export — timestamp, the metric the surface was fit to, and fit-quality scores — is included at the top of the file as #-prefixed comment lines so the archived CSV stays interpretable on its own. Pandas (read_csv(..., comment="#")) and most analysis tools skip these lines automatically; Excel shows them in the first column and still loads the data table below.