53d8c38047
In previous commits, the `circles-in-triangle` example converged much more slowly in BigFloat precision than in Float64 precision. This turned out to be a sign of a bug in the Float64 computation: converting the Gram matrix using `Float64.()` dropped the explicit zeros, removing many constraints and making the problem much easier to solve. This commit corrects the Gram matrix conversion. The Float64 search now solves the same problem as the BigFloat search, with comparable performance. |
||
---|---|---|
coffeetest | ||
doc | ||
engine-proto | ||
notes | ||
src | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
package-lock.json | ||
package.json | ||
README.md |
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.
Note that currently this is just the barest beginnings of the project, more of a framework for developing dyna3 rather than anything useful.
Implementation goals
-
Comfortable, intuitive UI
-
Able to run in browser (so implemented in WASM-compatible language)
-
Produce scalable graphics of 3D diagrams, and maybe STL files (or other fabricatable file format) as well.