SingSurf mathematical visualisation program


SingSurf is program to visualise mathematical curves and surfaces. The program can calculate many of the objects found in Singularity theory and geometry:

Basic types created

Algebraic curves defined by a single polynomial equation in two variables. e.g. electric motor y^2(y^2-9)-x^2(x^2-10);

Electric motor

Algebraic surfaces defined by a single polynomial equation in three variables. e.g. a Chubs surface x^4 + y^4 + z^4 - x^2 - y^2 - z^2 + 0.5;

Chubs surface

Parameterised curves defined by a 3D vector expression in a single variable. e.g. a helix [cos(pi t), sin(pi t), t];


Parameterised surfaces defined by a 3D vector expression in two variables. e.g. a cross-cap [x,x y,y^2]

Cross cap

Intersection of surfaces with sets defined by another equation. For example the intersection of a conical surface with the set defined by a plane a x b y + cz =d.

Intersection of a cone with a plane

This module can be used to calculate non-polynomial curves. For example a super ellipse pow(abs(x/a),p)+pow(abs(y/b),p)-1


Clipping, part of a surface inside a set define by an implicit equation, like the set inside a box min(min(min(xh-x,x-xl),min(yh-y,y-yl)),min(zh-z,z-zl)), or clipped by a sphere x^2+y^2+z^2-r^2

Clipped cross cap

Mapping from R^3 to R^3 defined by 3D vector equation in three variables. e.g. a rotation [cos(pi th) x - sin(pi th) y,sin(pi th) x + cos(pi th) y,z];

Torus and its rotation

Vector Fields, including unoriented vector field, and binary differential equations

vector field

Integral Curves. Uses the points in a geometry to define the starting points

Limit cycle

Colourise: sets the colour of a surface depending on an expression. For example to colour by the z coordinate [(z+1), 0,(1-z)]; setting the red, green, and blue components for each point.

Colour by height

Extrude: produces surfaces of revolution and similar surfaces which depend on a curve and an equation. Can be used to produce families of curves. Surface of revolution

Generalised Operations

Several of these models have versions where the equation of another curve or surface can be used as part of the definition

Generalised Mappings where the equation depends on another surface. For example projection of a curve onto a surface. For example Gauss Map of a surface

    N / sqrt(N.N);   // Unit normal
    N = Sx ^^ Sy;    // calculate normal using cross product
    Sx = diff(S,x);  // derivatives of surface S
    Sy = diff(S,y);  // Definition of S read from the input surface

cusp of gauss map

Generalised Intersections where the equation depends on the definition of another curve or surface. e.g. The profile of a surface, or parabolic lines

        // The profile of a surface
        N . [A,B,C];
        N = diff(S,x) ^^ diff(S,y);	
Profile of a torus

Generalised Clipping: e.g. the part of surface contained inside another already defined implicit surface

Generalised Colourise: colour by Gaussian or mean curvature

Gauss curvature of a torus

Generalised Extrude: e.g. tangent developable of a curve, or envelope of normals

        S + t T;            // Point on surface plus a multiple of unit tangent
        T = TT/sqrt(TT.TT); // unit length
        TT = diff(S,x);     // tangent to curve

tangent developable

Generalised Vector Fields: e.g. principle directions which are calculated using the definition of the input surface

Principle directions

Generalised Integrals Curves: e.g. principle curves of a surface calculated using the definition of the input surface

principle curve

Specialised modules

Ridge Intersections: curves which depend on a surface and a vector field, for example the ridges of a surface

Ridges and sub-parabolic lines

BiIntersection Intersections where the equations depends on a pair of curves. For example the pre-symmetry set of a curve.

BiMap Mapping where the equation depends on a pair of curves. For example the Symmetry set.

symmetry set

Projective varieties: algebraic surfaces defined in real projective space, with options for stereographic projections and rotations in 4D

Sarti's surface

Download and Installation

The program is open-source and runs on all operating systems which support Java.

See download and installation.

Msqli defined