Skip to content

Drawing components

An Eidograph “component” is an Eidolang construction object. Objects refer to one another by name, and changing an upstream object recalculates every derived object through the dependency graph.

Free, bound, and derived

Every object belongs to one freedom tier:

TierExampleInteraction
Free (orange)point A 0 0Drag directly; coordinates are written back
Bound (purple)point P on c at 0.25Drag only along its carrier; the parameter is written back
Derived (gray)point M = midpoint(A, B)Cannot be dragged; move its inputs instead

The same rule applies in 2D and 3D, and it is the first thing to check when a point does not drag.

Plane components

Points and linear objects

txt
space plane
point A -3 -1
point B 3 -1
segment base A B
point M = base.mid
perpendicular p M base

Common linear objects include segment, line, ray, vector, parallels, and perpendiculars. A point may be free or bound to a segment, circle, curve, or another path.

Circles, arcs, ellipses, and polygons

txt
circle c M through A
point P on c at 45deg
arc a A P B
polygon tri A P B
label P text "P"

Each result is a first-class object that later commands can reference. Circles, ellipses, and polygons can become regions for union, intersection, and difference; any paths can be intersected.

Functions and motion

plot, curve, polar, equation, and locus produce paths. param supplies an adjustable value, animate varies a parameter or bound object over time, and stage organizes a sequential presentation.

txt
param r 2 range 0.5 4
circle c M radius r
animate r duration 2s mode alternate

Solid components

A 3D figure starts with space solid. Its primitives include point3, segment3, vector3, planes, spheres, circles, boxes, prisms, pyramids, cylinders, and cones, plus spatial curves, loci, frames, and function surfaces.

txt
space solid
point3 O 0 0 0
point3 T 0 0 3
sphere s O radius 2
cylinder body O T radius 1

Use the Pointer tool to orbit the camera. Selected objects still expose type, status, and editable properties in the Objects panel. A 3D SVG is a regenerated wireframe/contour projection from the current view, not a screenshot of the WebGL canvas.

Style, labels, and groups

style controls color, width, opacity, fill, and 2D dash style. label adds text or a complete $$…$$ LaTeX formula. textbox adds wrapped content on a 2D canvas. group lets several objects share hide, show, and style operations.

The properties popover is a visual editor for these commands. Whether changed there or in the source editor, the result is an ordinary text edit that can be undone and read by an agent.