Commit Graph

54 Commits

Author SHA1 Message Date
Aaron Fenyes 3170a933e4 Clean up example of three mutually tangent spheres 2024-02-15 17:16:37 -08:00
Aaron Fenyes f2000e5731 Test different sign patterns for cosines
It seems like there are real solutions if and only if the product of the
cosines is positive.
2024-02-15 16:25:09 -08:00
Aaron Fenyes ba365174d3 Find real solutions for three mutually tangent spheres
I'm not sure why the solver wasn't working before. It might've been just
an unlucky random number draw.
2024-02-15 16:16:06 -08:00
Aaron Fenyes ae5db0f9ea Make results reproducible 2024-02-15 16:00:46 -08:00
Aaron Fenyes 8d8bc9162c Store elements in arrays to keep order stable
This seems to restore reproducibility.
2024-02-15 15:42:26 -08:00
Aaron Fenyes 291d5c8ff6 Study mutually tangent spheres with two fixed 2024-02-15 13:28:01 -08:00
Aaron Fenyes e41bcc7e13 Explore the performance wall
Three points on two spheres is too much.
2024-02-13 04:02:14 -05:00
Aaron Fenyes 31d5e7e864 Play with two points on two spheres
Guess conditions that make the scaling constraint impossible to satisfy.
2024-02-12 22:48:16 -05:00
Aaron Fenyes a450f701fb Try displaying a chain of spheres
For three mutually tangent spheres, I couldn't find real solutions.
2024-02-12 21:14:07 -05:00
Aaron Fenyes 6cf07dc6a1 Evaluate and display elements 2024-02-12 20:34:12 -05:00
Aaron Fenyes 1f173708eb Move random cut routine into engine 2024-02-10 17:39:26 -05:00
Aaron Fenyes 6f18d4efcc Test lots of uniformly distributed hyperplanes 2024-02-10 15:10:48 -05:00
Aaron Fenyes 621c4c5776 Try uniformly distributed hyperplane orientations
Unit normals are uniformly distributed over the sphere.
2024-02-10 15:02:26 -05:00
Aaron Fenyes b3b7c2026d Separate the algebraic and numerical parts of the engine 2024-02-10 14:50:50 -05:00
Aaron Fenyes af1d31f6e6 Test a scale constraint
In all but a few cases (for example, a single point on a plane), we
should be able to us the radius-coradius boost symmetry to make the
average co-radius—representing the "overall scale"—roughly one.
2024-02-10 14:21:52 -05:00
Aaron Fenyes 8e33987f59 Systematically try out different cut planes 2024-02-10 13:46:01 -05:00
Aaron Fenyes 06872a04af Say how many sample solutions we found 2024-02-10 01:06:06 -05:00
Aaron Fenyes becefe0c47 Try switching to compiled system 2024-02-10 00:59:50 -05:00
Aaron Fenyes 34358a8728 Find witnesses on random rational hyperplanes
Choose hyperplanes that go through the trivial solution.
2024-02-09 23:44:10 -05:00
Aaron Fenyes 95c0ff14b2 Show explicitly that all coefficients are 1 in first cut equation 2024-02-09 17:09:43 -05:00
Aaron Fenyes f97090c997 Try a cut that goes through the trivial solution
The previous cut was supposed to do this, but I was missing some parentheses.
2024-02-08 01:58:12 -05:00
Aaron Fenyes 45aaaafc8f Seek sample solutions by cutting with a hyperplane
The example hyperplane yields a single solution, with multiplicity six. You can
find it analytically by hand, and homotopy continuation finds it numerically.
2024-02-08 01:53:55 -05:00
Aaron Fenyes 43cbf8a3a0 Add relations to center and orient the construction 2024-02-05 00:10:13 -05:00
Aaron Fenyes 21f09c4a4d Switch element abbreviation from "elem" to "elt" 2024-02-04 16:08:13 -05:00
Aaron Fenyes a3f3f6a31b Order spheres before points within each coordinate block
In the cases I've tried so far, this leads to substantially smaller
Gröbner bases.
2024-02-01 16:13:22 -05:00
Aaron Fenyes 65d23fb667 Use module names as filenames
You're right: this naming convention seems to be standard for Julia
modules now.
2024-01-30 02:49:33 -05:00
Aaron Fenyes 4e02ee16fc Find dimension of solution variety 2024-01-30 02:45:14 -05:00
Aaron Fenyes 6349f298ae Extend AbstractAlgebra ideals to rational coefficients
The extension should also let us work over finite fields of prime order,
although we don't need to do that.
2024-01-29 19:11:21 -05:00
Aaron Fenyes 0731c7aac1 Correct relation equations 2024-01-29 12:41:07 -05:00
Aaron Fenyes 59a527af43 Correct Minkowski product; build chain of three spheres 2024-01-29 12:28:57 -05:00
Aaron Fenyes c29000d912 Write a simple solver for the hitting set problem
I think we need this to find the dimension of the solution variety.
2024-01-28 01:34:13 -05:00
Aaron Fenyes 86dbd9ea45 Order variables by coordinate and then element
In other words, order coordinates like
  (rₛ₁, rₛ₂, sₛ₁, sₛ₂, xₛ₁, xₛ₂, xₚ₃, yₛ₁, yₛ₂, yₚ₃, zₛ₁, zₛ₂, zₚ₃)
instead of like
  (rₛ₁, sₛ₁, xₛ₁, yₛ₁, zₛ₁, rₛ₂, sₛ₂, xₛ₂, yₛ₂, zₛ₂, xₚ₃, yₚ₃, zₚ₃).

In the test cases, this really cuts down the size of the Gröbner basis.
2024-01-27 14:21:03 -05:00
Aaron Fenyes 463a3b21e1 Realize relations as equations 2024-01-27 12:28:29 -05:00
Aaron Fenyes 4d5aa3b327 Realize geometric elements as symbolic vectors 2024-01-26 11:14:32 -05:00
Aaron Fenyes b864cf7866 Start drafting engine prototype 2024-01-24 11:16:24 -05:00
Glen Whitney c48d685ad6 doc: Extend comments on coordinatization; add a theory.md notes file 2023-11-07 17:06:19 -08:00
Glen Whitney 15159302c3 doc: Add Aaron's observations on inversive coords 2023-11-06 11:47:53 -08:00
Glen Whitney daed435826 doc: Add a few implementation goals to README 2023-11-01 13:08:20 -07:00
Glen Whitney 2cfcfacb5a doc: Add new notes directory with design notes 2023-11-01 12:58:08 -07:00
Glen Whitney fce8be5b56 Adjust lighting and camera for decent initial rendering of polyhedra
Note that the version of three.js also incidentally bumped, since it's set
  to take the latest
2019-12-31 07:20:33 -08:00
Glen Whitney 9c2038e3c9 Enable mouse rotate, pan, and zoom with TrackballControls 2019-12-12 14:04:11 -05:00
Glen Whitney c7f2feab1f First pass at coordinate axes 2019-12-12 02:44:33 -05:00
Glen Whitney 413a8b5b81 Switch to good old make to reduce redundancies in build 2019-12-12 00:33:59 -05:00
Glen Whitney 2c17758987 0.1.1 2019-12-11 13:21:01 -05:00
Glen Whitney 6717a76f21 Copy only the production dependencies to the site directory 2019-12-11 13:20:31 -05:00
Glen Whitney 5fef463aba 0.1.0 2019-12-11 12:43:50 -05:00
Glen Whitney c3995d6fcb Set up testing with Ava 2019-12-11 12:07:43 -05:00
Glen Whitney eb81cee609 Generate documentation by assembling markdown and litcoffee files 2019-12-09 20:52:42 -05:00
Glen Whitney 83318c7884 Set up npm run build to build dyna3 2019-12-09 12:08:05 -05:00
Glen Whitney 660f42b31f Automatically generate externals.js from package-lock.json
This commit adds a utility to parse package-lock.json and write the proper
  contents of externals.js to standard output. In addition, if the utility
  (src/helpers/pkglock_to_externals.litcoffee) is invoked with a --doc option,
  it instead emits a Markdown bulleted list of all of the external dependencies.
2019-12-08 23:22:52 -05:00