Skip to content

JuanCaGC/HomotopyGetsReal.jl

Repository files navigation

HomotopyGetsReal

CI Documentation

Julia reimplementation of Homotopy gets real — numerical algebraic geometry for decomposing real algebraic curves and surfaces using HomotopyContinuation.jl.

Full documentation: https://JuanCaGC.github.io/HomotopyGetsReal.jl

Install

Not yet registered in Julia’s General registry. Install from GitHub:

using Pkg
Pkg.add(url = "https://github.com/JuanCaGC/HomotopyGetsReal.jl")

Or develop a local clone:

using Pkg
Pkg.activate("/path/to/HomotopyGetsReal")  # or `] dev /path/to/HomotopyGetsReal`
Pkg.instantiate()

Requires Julia 1.12+ (enforced by Project.toml compat on julia / LinearAlgebra). Licensed under the MIT License (see LICENSE).

Quick start — unit sphere end-to-end

using HomotopyContinuation
using HomotopyGetsReal
using GLMakie

@var x y z
F = System([x^2 + y^2 + z^2 - 1], variables = [x, y, z])
cfg = HomotopyConfig{Float64}()  # defaults: edge_sample_density=50, midslice_sample_density=100

vertices, edges, faces, mesh = decompose_3d_surface(F, cfg)

fig = plot_surface_decomposition(mesh; color_by = :z, cfg = cfg)
GLMakie.save("sphere.png", fig)

For a 2D slice only (standalone — does not depend on the block above):

using HomotopyContinuation
using HomotopyGetsReal
using GLMakie

@var x y z
F = System([x^2 + y^2 + z^2 - 1], variables = [x, y, z])
cfg = HomotopyConfig{Float64}()

v2d, e2d = slice_at_z(F, 0.0, cfg)
fig2d = plot_curve_decomposition(v2d, e2d; cfg = cfg)
GLMakie.save("sphere_equator.png", fig2d)

Testing

Fast suite (default, skips slow Taubin integration):

using Pkg
Pkg.test("HomotopyGetsReal")

Full suite (adds test_taubin.jl, ~77s for Taubin alone in this environment):

HOMOTOPYGETSREAL_RUN_SLOW_TESTS=1 julia --project -e 'using Pkg; Pkg.test()'

Historical validation scripts from the Phases 1–6 rebuild live under dev/scratch/ (superseded by test/).

Layout

Path Purpose
src/ Package source (flat module)
test/ Formal Test.jl suite
dev/scratch/ Archived scratch-phase validation scripts
docs/ Documenter.jl site (docs/make.jl)

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages