▼V Reference
52 Find a task or a name
53 Modules to require
54 Scenes and sampling
55 Scene states
56 Animation requests
57 Native model details
58 Visuals
59 Geometry
60 Number Lines and Coordinate Decorations
61 Point Markers, Scatter Plots, and Filled Areas
62 Probability and Statistical Diagrams
63 Calculus lessons
64 Colors
65 Slides
66 Slide command-line tools
67 Source Programs and Authored Timelines
68 Interactive Preview and Inspection
69 Preview controls and diagnostics
70 Projects and Final Rendering
71 Project execution and cache details
72 Pict Renderer Protocol
73 3D reference map
74 3D:   Objects, groups, and paths
75 3D:   Cameras and projection
76 3D:   Views inside a Scene
77 3D:   Animating 3D objects
78 3D:   Animating the 3D camera
79 3D:   Cuts, caps, and section measurements
80 3D:   Supplementary surface, section, and annotation bindings
81 3D:   Cuts, sections, and numerical volume
82 3D:   Vectors
83 3D:   Linear maps and rotations
84 3D:   Affine transforms
85 3D:   Bounds, rays, and planes
86 3D:   Spatial maps and homotopies
87 3D:   Materials and lights
88 3D:   Lighting inspection
89 3D:   Shadow descriptors and stable bounds
90 3D:   Finite-light animation
91 3D:   Software finite-light evaluation
92 3D:   Colour space and final output
93 3D:   Relations and geometric annotations
94 3D:   Projected labels
95 3D:   Textured billboards
96 3D:   Spatial curves and vector diagrams
97 3D:   Spatial anchors and label layout
98 3D:   Anchors and projected labels
99 3D:   Parametric surfaces and calculus
100 3D:   Adaptive, trimmed, and implicit surfaces
101 3D:   Constructive solids
102 3D:   Surface constructors and queries
103 3D:   Meshes
104 3D:   Triangle topology
105 3D:   Polygonal faces
106 3D:   Deterministic convex hulls
107 3D:   Polyhedral duals
108 3D:   Schlegel diagrams and polyhedral nets
109 3D:   Conservative mesh correspondence
110 3D:   Topology-safe mesh matching
111 3D:   Checking and repairing mesh orientation
112 3D:   Clipping, sections, and transparency
113 3D:   Prepared spatial ODE trajectories and vector fields
114 3D:   Seeds and streamline sets
115 3D:   Poincare sections and return maps
116 3D:   Equilibria and local linearization
117 3D:   Flow maps and volume change
118 3D:   Drawing and inspecting trajectories
119 3D:   Reading prepared trajectories
120 3D:   Drawing vector fields and particles
121 3D:   Trajectory display
122 3D:   Spatial inspection and exact picking
123 3D:   Retained renderer backends
124 3D:   Compiled geometry and instances
125 3D:   Frame requests and results
126 3D:   Software rendering and statistics
127 3D:   Optional Racket/  Open  GL backend
128 Experimental Derived Visuals
129 Source Package Hygiene
On this page:
jacobian3d
jacobian3d-result?
equilibrium-points3d
equilibrium-search3d?
equilibrium-seed-result3d?
equilibrium-solver3d
equilibrium-solver3d?
default-equilibrium-solver3d
eigensystem3d-of
eigensystem3d?
linearize3d
linearization3d?
linearization-diagram3d
9.3

116 3D: Equilibria and local linearization🔗ℹ

procedure

(jacobian3d field    
  point    
  [#:time time    
  #:derivative derivative    
  #:step step    
  #:domain domain]) → jacobian3d-result?
  field : any/c
  point : vec3?
  time : finite-real? = 0
  derivative : (or/c false/c procedure?) = #f
  step : (or/c false/c positive?) = #f
  domain : (or/c false/c procedure?) = #f
Returns an immutable local derivative matrix for an ODE field at point. An analytic #:derivative follows the field’s usual (x y z) or (time x y z) calling convention and must return a finite linear3. Otherwise the result uses deterministic scale-aware symmetric finite differences. The optional #:domain predicate receives a vec3; it is the only reason a one-sided stencil is used. The result records its method, coordinate steps, total evaluations, and a local first-versus-second-order error indicator where it is available.

procedure

(jacobian3d-result? value) → boolean?

  value : any/c
Recognizes the transparent immutable result record returned by jacobian3d. Its constructor and accessors begin with jacobian3d-result-.

procedure

(equilibrium-points3d field 
  seeds 
  [#:solver solver 
  #:jacobian derivative 
  #:merge-distance merge-distance 
  #:domain domain 
  #:time time 
  #:cancellation-token cancellation-token]) 
 → equilibrium-search3d?
  field : any/c
  seeds : seed-set3d?
  solver : equilibrium-solver3d? = default-equilibrium-solver3d
  derivative : (or/c false/c procedure?) = #f
  merge-distance : positive? = 1e-6
  domain : (or/c false/c procedure?) = #f
  time : finite-real? = 0
  cancellation-token : any/c = #f
Runs bounded damped Newton searches from precisely the declared seed order. A successful root is clustered against earlier successful roots only, so the earliest seed is its canonical representative. Failed seeds remain as equilibrium-seed-result3d? entries with an explicit status such as 'singular-jacobian, 'out-of-domain, 'stalled, or 'iteration-limit. A cancellation token is checked between seed searches and Newton/backtracking iterations; it raises instead of returning a partial root collection.

procedure

(equilibrium-search3d? value) → boolean?

  value : any/c
Recognizes the immutable search result. Its seeds, roots, seed-results, and diagnostics accessors retain all seed outcomes rather than only the converged representatives.

procedure

(equilibrium-seed-result3d? value) → boolean?

  value : any/c
Recognizes one immutable seed outcome. Its accessors begin with equilibrium-seed-result3d-.

procedure

(equilibrium-solver3d residual-tolerance 
  step-tolerance 
  maximum-iterations 
  damping 
  minimum-damping) 
 → equilibrium-solver3d?
  residual-tolerance : positive?
  step-tolerance : positive?
  maximum-iterations : exact-positive-integer?
  damping : positive?
  minimum-damping : positive?
Constructs the explicit tolerances and deterministic backtracking schedule used by an equilibrium search.

procedure

(equilibrium-solver3d? value) → boolean?

  value : any/c
Recognizes an equilibrium solver settings value.
The default bounded damped Newton settings.

procedure

(eigensystem3d-of matrix    
  [#:tolerance tolerance]) → eigensystem3d?
  matrix : linear3?
  tolerance : positive? = 1e-10
Computes a bounded deterministic real 3×3 eigensystem. Eigenvalues are ordered by real component, then imaginary component, with the positive member of a conjugate pair first. Real eigenvectors use the sign whose largest-magnitude component is positive. Diagnostics report the characteristic discriminant and near-defect tolerance rather than concealing numerically ambiguous cases.

procedure

(eigensystem3d? value) → boolean?

  value : any/c
Recognizes immutable eigensystem data. Its accessors begin with eigensystem3d-.

procedure

(linearize3d field    
  point    
  [#:time time    
  #:jacobian derivative    
  #:tolerance tolerance]) → linearization3d?
  field : any/c
  point : vec3?
  time : finite-real? = 0
  derivative : (or/c false/c procedure?) = #f
  tolerance : positive? = 1e-8
Combines a Jacobian and deterministic eigensystem at a point. It classifies sink, source, saddle, spiral sink/source, center-like, nonhyperbolic, or indeterminate using the declared tolerance; complex pairs expose complementary invariant-plane data where a stable real normal is available.

procedure

(linearization3d? value) → boolean?

  value : any/c
Recognizes an immutable local linearization. Its accessors begin with linearization3d-.

procedure

(linearization-diagram3d value    
  [#:id id    
  #:scale scale]) → group3d?
  value : linearization3d?
  id : symbol? = 'linearization
  scale : positive? = 1
Lowers the retained real eigendirections to named finite 3D diagram lines. Stable, unstable, and center directions receive separately configurable stroke styles. The finite extent is explicitly author-chosen by scale; invariant planes remain data because no universal plane-patch size is mathematically correct.