dyna3

Abstract

Constraint-based three-dimensional dynamic geometry

Description

From a thorough web search, there does not seem to be a dynamic geometry software package which (a) began its life handling three dimensions, rather than just two, and (b) allows you to express the desired geometric configuration in terms of constraints on the entities (e.g. l and k are parallel, a, b, and c a collinear, etc.) rather than as a construction (e.g. l is the perpendicular bisector of a and b). The goal of the dyna3 project is to close this gap.

The first step is to produce a simple WebGL canvas which displays a point (as small spheres with a stipple texture) so that it can be dragged around.

A Brief Tour of dyna3

When you load dyna3, you should initially see a three-dimensional coordinate system with labeled axes.

Technical details

External dependencies

The dyna3 program depends on some externally-maintained JavaScript libraries/modules. The package uses npm to track these external dependencies. A module externals.js is automatically generated from the package_lock.json file created by npm to load the necessary modules at runtime.

The generation is performed by pkglock_to_externals.litcoffee, which also records the main importable file within the library, as there does not seem to be a systematic way to generate that filename from the module name.

Specific packages/implementation approaches for components of dyna3 include the following items. All packages are obtained from npm unless otherwise noted.

And here is the current complete list of external libraries on which operation of dyna3 depends:

Technology plan for implementation

The intial modest outline for bootstrapping dyna3 is as follows: