Configuration Reference

DifferentialLab reads configuration from .env in the project root.

  • Use .env.example as template.

  • Or use the in-app Configuration dialog (recommended).

  • On startup, values are validated against ENV_SCHEMA (src/config/env.py).

  • Invalid values are automatically replaced with defaults and logged.

How values are interpreted

  • bool: accepts true/false, 1/0, yes/no

  • int and float: parsed numerically with range checks where defined

  • str: non-empty; some keys enforce enumerated options

UI settings

Key

Default

UI_BACKGROUND

#181818

UI_FOREGROUND

#CCCCCC

UI_BUTTON_BG

#1F1F1F

UI_BUTTON_WIDTH

14

UI_BUTTON_FG

lime green

UI_BUTTON_FG_CANCEL

red2

UI_BUTTON_FG_ACCENT2

yellow

UI_FONT_SIZE

16

UI_FONT_FAMILY

Bahnschrift

UI_PADDING

8

Tooltip settings

Key

Default

UI_TOOLTIP_DELAY_MS

500

UI_TOOLTIP_WRAPLENGTH

350

UI_TOOLTIP_PADX

8

UI_TOOLTIP_PADY

4

Tooltip font size is derived automatically from UI_FONT_SIZE:

  • tooltip_size = max(6, round(UI_FONT_SIZE * 0.5))

  • There is no separate .env key for tooltip font size.

Plot settings

Layout and style

Key

Default

PLOT_FIGSIZE_WIDTH

12

PLOT_FIGSIZE_HEIGHT

6

DPI

100

PLOT_SHOW_TITLE

true

PLOT_SHOW_GRID

true

PLOT_LINE_COLOR

royalblue

PLOT_LINE_WIDTH

1.5

PLOT_LINE_STYLE

-

PLOT_COLOR_SCHEME

Set1

Markers

Key

Default

PLOT_MARKER_FORMAT

o

PLOT_MARKER_SIZE

3

PLOT_MARKER_FACE_COLOR

crimson

PLOT_MARKER_EDGE_COLOR

crimson

Phase-space and 3D/contour

Key

Default

PLOT_PHASE_START_COLOR

green

PLOT_PHASE_END_COLOR

red

PLOT_PHASE_MARKER_SIZE

8

PLOT_SURFACE_CMAP

viridis

PLOT_CONTOUR_LEVELS

20

PLOT_GRID_ALPHA

0.3

PLOT_SURFACE_ALPHA

0.9

PLOT_COLORBAR_SHRINK

0.6

Animation

Key

Default

PLOT_ANIMATION_LINE_WIDTH

2.0

PLOT_VLINES_LINE_WIDTH

1.5

PLOT_VLINES_ALPHA

0.6

PLOT_ANIMATION_Y_MARGIN

0.1

ANIMATION_MAX_FPS

30

Matplotlib font settings

Key

Default

FONT_FAMILY

serif

FONT_TITLE_SIZE

xx-large

FONT_TITLE_WEIGHT

semibold

FONT_AXIS_SIZE

16

FONT_AXIS_STYLE

italic

FONT_TICK_SIZE

12

Solver defaults

Key

Default

SOLVER_MAX_STEP

0.0

SOLVER_RTOL

1e-8

SOLVER_ATOL

1e-10

SOLVER_NUM_POINTS

1000

Supported methods in UI:

  • RK45

  • RK23

  • DOP853

  • Radau

  • BDF

  • LSODA

Logging and update checks

Key

Default

LOG_LEVEL

INFO

LOG_FILE

differential_lab.log

LOG_CONSOLE

false

CHECK_UPDATES

true

UPDATE_CHECK_INTERVAL_DAYS

7

CHECK_UPDATES_FORCE

false

UPDATE_CHECK_URL

https://raw.githubusercontent.com/DOKOS-TAYOS/DifferentialLab/main/pyproject.toml

Practical recommendations

  • Keep solver tolerances strict for stiff/nonlinear systems.

  • Lower SOLVER_NUM_POINTS for exploratory runs, increase for publication output.

  • Keep ANIMATION_MAX_FPS moderate (20-30) to avoid UI saturation.

  • Enable LOG_CONSOLE=true while debugging.

Source of truth

If this page and runtime behavior differ, runtime behavior is authoritative. The canonical schema lives in src/config/env.py (ENV_SCHEMA).