represents an abstract 2D geometric scene defined by the hypotheses hypi in terms of the symbolic points pi.


represents a scene whose hypotheses depend on the symbolic scalar quantities ki.


represents a specific instance with explicit values for all points and scalar quantities.


represents a collection of specific instances of the same scene.


represents a scene together with some conclusions coni about it.


combines several scene instances into one scene object.

Details and Options

  • A GeometricScene object with explicit coordinates for all points and explicit values for all scalars is normally displayed as a graphical diagram.
  • In GeometricScene[{p1,p2,},], the pi can be strings, symbols or other symbolic expressions.
  • RandomInstance fills in specific values for the pi and ki in such a way as to satisfy the hypotheses given.
  • The hypotheses in a scene can list objects that must appear in the scene and can give relations and other assertions about those objects.
  • The following primitives can be used to represent geometric objects:
  • Circle[pt,r]circle
    Disk[pt,r]filled disk
    HalfLine[{pt1,pt2}]half-infinite line or ray
    InfiniteLine[{pt1,pt2}]infinite line
    Line[{pt1,}]straight line
    Point[pt]point set
    Polygon[{pt1,}]simple polygon
    RegularPolygon[n]regular polygon
  • The points and scalars in a geometric object can be symbolic or can have explicit values.
  • The following can be used to represent constructions applied to geometric objects:
  • AngleBisector[{pt1,pt2,pt3}]angle bisector, as an infinite line
    CircleThrough[{pt1,}]circle through points
    PerpendicularBisector[{pt1,pt2}]perpendicular bisector, as an infinite line
    RegionCentroid[reg]region centroid, as a point
    RegionNearest[reg, pt]nearest point in a region
    TriangleCenter[tri,type]triangle center of specified type
    TriangleConstruct[tri,type]triangle construct of specified type
  • The following assertions about geometric objects and their properties can be used:
  • ptreg, RegionMember[reg,pt]a point is in a region
    xequality of values or objects
    x>, x<, inequalities between values
    GeometricAssertion[objs,prop]named assertion about geometric objects
  • The following measurements on geometric objects can be used:
  • ArcLength[reg]arc length
    EuclideanDistance[pt1,pt2]Euclidean distance
    PolygonAngle[poly,pt]polygon angle
    RegionDistance[reg,pt]region distance
    RegionMeasure[reg]region measure
    SignedRegionDistance[reg,pt]signed region distance
    TriangleMeasurement[tri,type]triangle measurement
  • GeometricScene[]["prop"] gives property prop of a geometric scene. Possible properties include:
  • "Conclusions"list of conclusions
    "Graphics"diagram of the scene, as a Graphics object
    "Hypotheses"list of hypotheses
    "Instances"list of instances of the scene
    "Parameters"list of point and scalar value specifications for the scene
    "Points"list of point specifications for the scene
    "Quantities"list of scalar value specifications for the scene
  • With explicit scene instances scenei, GeometricScene[{scene1,scene2,}] is converted to a GeometricScene object in which multiple lists of points and scalar values are given so long as all the scenei are instances of the same abstract scene.
  • When GeometricScene represents multiple instances of an abstract scene, it is normally displayed as a MenuView object with one instance per menu item.
  • The display style of geometric objects can be specified using Style. Style specifications do not affect the geometric meaning of a scene.
  • The following options for GeometricScene can be given:
  • UnconstrainedParametersNonelist of unconstrained parameters
  • Functions such as FindGeometricConjectures fill in conclusions in GeometricScene objects.


open allclose all

Basic Examples  (2)

Represent a symbolic geometric scene containing a triangle with points a, b, c and a 30° angle:

RandomInstance fills in explicit coordinates for the points:

This gets the rules giving coordinates for the points:

Represent a geometric scene with explicit coordinates for points:

Scope  (3)

Find multiple instances of a scene:

Combine the instances into a single GeometricScene object:

Find the coordinates for the points in the scene corresponding to each instance:

Represent a scene using a GeometricAssertion:

Find conjectures about the scene:

Extract the conclusions from the GeometricScene object:

Style can be used to apply styles to objects in a geometric scene:

Options  (1)

UnconstrainedParameters  (1)

Represent a scene where some of the points are unconstrained:

Applications  (6)

Solve for a missing radius:

Represent a scene with a circumscribed triangle with the diameter as an edge:

Find conjectures:

Extract Thales's theorem:

Represent a scene with two sets of collinear points:

Find conjectures:

Discover Pappus's hexagon theorem:

Iteratively take circumcenters:

Find conjectures:

Discover Kosnita's theorem:

Solve for missing angles:

Describe a scene with two squares and a quadrilateral formed by taking midpoints:

Find conjectures:

Discover the FinslerHadwiger theorem:

Neat Examples  (2)

Decompose a triangle into similar triangles:

Decompose a polygon into similar triangles:

Introduced in 2019
Updated in 2020