Interactive Features
This section covers features that allow real-time and parametric exploration of circuits without redrawing or creating new files.
Design Variables
Design variables are symbolic (non-numeric) names used as component values. They let you change a parameter across the entire circuit in one place, rather than editing each component individually.
Typical uses:
- Comparing designs with different component values
- Sensitivity and tolerance analysis
- Building reusable, "tunable" circuit templates
Creating Design Variables
A design variable is created simply by typing a non-numeric name in a component's Value field:
- Right-click a component on the canvas ? Properties (or double-click it)
- In the Value field, type a symbolic name, for example
RorCx - Click OK - the component now shows the variable name on the canvas instead of a number
GEEC automatically detects which names are symbolic by checking whether the value can be parsed as a number. Any non-numeric string (or expression containing a non-numeric identifier) is treated as a design variable.
Tips
Variable names are case-sensitive. R and r are different variables.
Expressions in Component Values
Component values can also contain mathematical expressions that reference design variables:
R*2 # Double the variable R
1/(2*pi*f*C) # Frequency-dependent expression
100k + tol*R # Combined numeric and symbolic
Cin + Cout # Sum of two variables
Standard math operators (+, -, *, /, ^) and functions (sin, cos, sqrt, log, exp, pi, ...) are supported.
Managing Design Variables
Once variables are used in a circuit, set their numeric values through the Design Variables dialog:
- Click the Analysis tab ? Settings sub-tab ? Design Variables button
- The dialog lists every variable found in the circuit with three columns:
| Column | Description |
|---|---|
| Name | Variable name (read-only - derived from component values) |
| Value | Numeric value to substitute during simulation |
| Use in semisymbolic | When checked, this variable's value is substituted in semi-symbolic analyses; unchecked keeps it symbolic |
- Edit the Value field for each variable
- Click Close - all analyses are re-run automatically with the new values
Warning
Design variable values must be non-empty numbers. Saving with an empty value field will show an error and the dialog will not close.
Design Variables in Semi-symbolic Analysis
The Use in semisymbolic checkbox controls whether a variable is numerically substituted in semi-symbolic analyses (e.g., OP Semi, AC Semi):
- Checked ? the variable is replaced by its numeric value, giving a simplified numeric result
- Unchecked ? the variable stays as a symbol in the result expression
This lets you substitute some component values (e.g., resistors) while keeping others symbolic (e.g., frequency), producing a partially simplified transfer function.
Interactive Sliders
Interactive sliders provide a floating control panel that lets you drag a slider to change a design variable value and immediately see all analyses re-run with the new value.
Adding a Slider
- In the left menu, click Slider under General tools
- A slider is added with default settings and its edit dialog opens automatically
Slider Settings
| Field | Description | Default |
|---|---|---|
| Variable | Name of the design variable to control (use the gear icon to browse available variables) | (empty) |
| From | Minimum value of the slider range | 100 |
| To | Maximum value of the slider range | 1000 |
| Number of steps | How many discrete positions the slider has | 20 |
| Logarithmic | When checked, steps are spaced logarithmically instead of linearly | unchecked |
Values accept SI suffix notation: 1k = 1000, 10u = 0.00001, 2.2Meg = 2 200 000.
The Slider Panel
When one or more sliders exist, a floating panel appears in the top-right corner of the canvas. Each row shows:
- The variable name and its current value (e.g.,
R = 1.5k) - A draggable slider with min/max labels
- A pencil icon to edit the slider settings
- A trash icon to delete the slider
Moving the slider immediately updates the variable value and triggers a re-run of all open analyses.
Linear vs. Logarithmic Spacing
| Spacing | When to use |
|---|---|
| Linear | Narrow ranges where equal steps make sense (e.g., 1 kΩ to 10 kΩ) |
| Logarithmic | Wide ranges spanning multiple decades (e.g., 100Ω to 1 MΩ) |
With logarithmic spacing, step n has value .
Example: RC Low-Pass Filter Tuning
Circuit: RC low-pass filter with design variables Rs (series resistor) and Cs (capacitor)
- Set
Rs = 1k,Cs = 1uin the Design Variables dialog to get a starting point - Add a slider for
Rs: From100, To100k, Steps20, Logarithmic ? - Add a slider for
Cs: From1n, To10u, Steps20, Logarithmic ? - Open an AC graph analysis (frequency response)
- Drag the
Rsslider - watch the cutoff frequency shift in real time - Drag the
Csslider - observe how the roll-off steepness changes
Parametric Sweep vs. Sliders
Sliders let you explore one parameter value at a time interactively. Parametric sweeps (configured inside a graph analysis dialog) run the simulation for a range of values automatically and plot a family of curves. See Basic Analyses / Parametric Sweep for details.
Result boxes
A Result Box is a canvas element that displays a live analysis result value. It updates automatically after each analysis run, supports text formatting, and can change its background color based on the result value.

Adding a Result Box
Place a Result Box on the canvas from the component menu. Right-click the box to open its settings dialog.
Settings Dialog
Result Link
The Result field identifies which analysis result to display. It uses the format:
"AnalysisName".resultVariable
For example: "DC Analysis".v(1) or "AC Sweep".i(R1).
Click the gear icon to open a variable selector that lets you pick the analysis and result variable interactively.
Prefix and Postfix
- Prefix — text displayed before the result value (e.g.
v(1) =). Automatically set when selecting a variable via the picker. - Postfix — text displayed after the result value (e.g.
V,Ω,%).
Default Color
The background color picker sets the default background color of the box. This color is used when conditional coloring is disabled or when no condition matches.
Border
- Border checkbox — toggles the box border on/off.
- Border color picker — sets the border color. When the box is selected on the canvas, it also uses this color for the selection outline.
Analysis Shortcut
The box automatically shows an analysis type label (e.g. OP, AC) in a left-side cell, helping to identify which analysis the value comes from.
Conditional Coloring
Enable the Enable conditional color checkbox to dynamically change the box background color based on analysis results. Two coloring modes are available:
Mode: Conditions
Select Conditions from the dropdown. This mode evaluates a list of conditions top-to-bottom and applies the color of the first matching condition.
| Column | Description |
|---|---|
| Condition | An expression that evaluates to "true" or "false". Leave empty to always match (acts as a default/else case). |
| Color | The background color to apply when the condition matches. |
Click Add condition to add a new rule. Conditions are evaluated in order — the first one that evaluates to "true" wins. If no condition matches, the default color is used.
Example — traffic-light coloring:
| Condition | Color |
|---|---|
v(1) > 5 | green |
v(1) > 2 | yellow |
| (empty) | red |
Mode: Color Range
Select Range from the dropdown. This mode maps a numeric result value to a smooth color gradient, discretized into a fixed number of steps.
| Column | Description |
|---|---|
| Variable | Result link for the value used in the range mapping (same "AnalysisName".variable format). |
| Input value range | Two comma-separated numbers defining the expected value range: min,max (e.g. 0,10). |
| Output color range | Two comma-separated hex colors defining the gradient endpoints: startColor,endColor (e.g. #0000FF,#FF0000). |
| Steps | Number of discrete color buckets in the gradient (default: 10). |
How it works:
- The result value is read from the specified variable.
- The value is clamped to the input range
[min, max]. - The clamped value is mapped to one of the discrete color buckets.
- The corresponding interpolated color is applied as the background.
Values at or below min get the start color; values at or above max get the end color.
Palette preview: When both colors in the output range are valid hex values, a preview strip of the generated discrete palette is shown below the settings row.
Example — blue-to-red temperature map:
| Variable | Input range | Output range | Steps |
|---|---|---|---|
"OP".p(R1) | 20m,100m | #0000FF,#FF0000 | 8 |
This creates 8 discrete color steps from blue (20mW) to red (100mW).
Result Representation
The result value is rendered as:
- Plain text — for standard numeric/text results.
- LaTeX — for symbolic results, rendered with KaTeX.
The representation type is determined automatically by the analysis module.
Error Handling
If the linked analysis is not found, the variable does not exist, or the result cannot be evaluated, the Result Box shows a small red alert icon at the top-left corner of the box.
The raw error text is not rendered inside the box content. Instead, when you open the Result Box settings dialog, the dialog shows the full error message in an error alert at the top.
If the error happens during a refresh, the box keeps its current displayed content and uses the icon as the visual error indicator until the issue is fixed.
Tips
- A Result Box with an empty result link will not display any value until configured.
- The color picker supports hex color values
#RRGGBBformat. - In the range mode, increasing the number of steps produces a smoother gradient; fewer steps produce more distinct color bands.
- The box automatically resizes to fit its content on the canvas.
Next: Go to Results & Export to learn how to view and share your analysis results.
