3D camera, interaction, and solid export
The 3D canvas uses a perspective camera and WebGL, but camera motion never changes world coordinates. Orbit, zoom, and reset alter only the view, not Eidolang objects.
Camera controls
- Drag empty canvas to orbit around the current target.
- Wheel or pinch to zoom near the pointer.
- Pan with a right-drag, or Shift/Ctrl + left-drag; on touch, move two fingers together. The camera and its orbit target move together.
- Click the corner orientation axes to open the view menu. Reset view restores the origin target and initial distance. With objects selected, Orbit around selection also appears: it moves the orbit target to the center of the selection, keeping the viewing direction and distance, so later orbiting turns around those objects.
- The inset shows world x/y/z, with z up.
Camera position and target persist as local view state when switching figures and return on remount; they are not written to .eido. The current project's 3D minimum/maximum distance clamps zoom.
Select and drag 3D points
With Pointer, click objects to select. Picking prioritizes points, then line-like objects, then surfaces/solids, so a point inside a translucent sphere remains reachable.
- free
point3values drag on a camera-facing plane; - bound points move along segment3/line3/ray3;
- sphere-bound points move on the sphere;
- derived points cannot drag directly.
With auto-dock, a free point snaps to a point coordinate or is rebound to a nearby linear carrier or sphere. The candidate highlights before release.
3D drawing tools
Point3 places a point on world z = 0; pressing and dragging vertically creates non-zero z. Segment3, Sphere, Cylinder, Cone, and other tools construct from existing/new control points with dashed or wireframe previews. The place z button in the status bar sets the height new points land on: type a value, return to the ground (0), or take the selected point's z. The grid rises to that height while the x/y axes stay at z = 0.
Expand Linear objects and choose Space line (L), then pick two distinct points. Expand Planar figures and sections and choose Plane, then pick three non-collinear points. A click where no point exists creates one on the placement plane (the place z height, z = 0 by default) or docked to nearby geometry, written together with the construction; for a point off the ground, create or lift it with Point3 first. Backspace undoes a pick, Escape cancels, and each completed construction is one undo step.
Use the created line as an axis for Revolution, or the plane as the cutting plane for Section. Box, prism, pyramid and pyramid frustum share Polyhedra; cylinder, cone and circular frustum share one group; sphere and spherical parts share another. See constructions for all categories and pick orders, or start by modifying a 3D example.
Adaptive grid and sizing
Grid step follows camera distance on a 1-2-5 ladder, with the current unit in a corner legend. The ground grid has no edge: it follows the view when you pan and fades out toward the horizon. Infinite lines and planes expand with view distance. Points, intersection markers, and labels remain approximately screen-constant for reliable selection.
3D PNG
PNG reads the WebGL render:
- Current view preserves composition;
- Fit content keeps view direction but temporarily centers and backs away to contain the model;
- 1×/2×/4× raster scale is available;
- the ground grid and orientation inset can be excluded;
- 3D always renders a background and is not transparent.
3D SVG
3D SVG is not a canvas screenshot. Eidograph regenerates a wireframe/contour projection from the evaluated model and camera: lines and curves become projected polylines, solids output edges and analytic silhouettes, and surfaces output iso-grid lines with translucent fills.
There is currently no hidden-line removal. Approximate depth ordering means complex overlap may differ from the solid WebGL image. SVG is suited to illustration and vector layout, not engineering projection.
3D GIF and MP4
GIF and MP4 can use the script animate/stage timeline or automatic camera orbit. Fit content creates a temporary export camera without changing the saved interactive camera. Both formats render the same frames; MP4 keeps the file far smaller for the same orbit. Lower frame rate, raster scale, duration, or surface samples if rendering is too large or slow.
