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 scene together with some conclusions coni about it.


represents a collection of specific instances of the same scene.


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
    CircularArcThrough[{pt1,}]circular arc through points
    InfiniteLineThrough[{pt1,}]infinite line through unordered 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]point is in a region
    xequality of values or objects
    x>, x<, inequalities between values
    GeometricAssertion[objs,prop]named assertion about geometric objects
    GeometricStep[{hyp1,hyp2,}]step consisting of multiple hypotheses
  • 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:
  • "AlgebraicFormulation"algebraic expression giving the constraints on the points and quantities
    "Conclusions"list of conclusions
    "Graphics"diagram of the scene, as a Graphics object
    "GraphicsList"list of Graphics for scenes with multiple steps and/or instances
    "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
    "Properties"list of all supported properties
    "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 with a SetterBar to choose which instance to show.
  • 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:
  • UnconstrainedParameters Nonelist of unconstrained parameters
    GeometricStylingRules Automaticstyling of primitives in the geometric scene
  • Functions such as FindGeometricConjectures fill in conclusions in GeometricScene objects.
  • Functions such as GeometricSolveValues solve for symbolic geometric quantities in GeometricScene objects. »


open allclose all

Basic Examples  (4)

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:

Retrieve the rules giving coordinates for the points:

Represent a geometric scene with explicit coordinates for points:

Display an interactive scene that constructs an equilateral triangle in steps:

Consider a scene featuring a right triangle with its leg lengths specified but its hypotenuse unknown:

Use GeometricSolveValues to solve for the hypotenuse :

Scope  (4)

Find multiple instances of a scene depicting a triangle, one of whose sides is a diameter of its circumcircle:

Combine the instances into a single GeometricScene object:

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

Represent a scene depicting line-circle tangency using a GeometricAssertion:

Find conjectures about the scene:

Extract the conclusions from the GeometricScene object:

Represent the construction of the infinite line bisecting the angle formed by points points a, b, c with GeometricStep:

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

Options  (2)

UnconstrainedParameters  (1)

Represent a scene where the points a, b, c are unconstrained, and the remaining points must conform to the triangle made by the unconstrained points:

GeometricStylingRules  (1)

Specify how primitives in a scene are to be styled:

Applications  (7)

Solve for a missing radius, given the radii of four pairwise tangent circles:

Represent a scene with a triangle circumscribed by a circle whose diameter forms 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:

Bisect a given arc, as specified by Euclid's Book 3, Proposition 30:

Properties & Relations  (2)

Geometric scenes with symbolic points do not format:

Geometric scenes where all points have numerical values format graphically:

The conditions for a GeometricScene to hold can be extracted with the subvalue "AlgebraicFormulation":

GeometricTest directly finds these conditions:

These are the same conditions as were returned by the GeometricScene subvalue "AlgebraicFormulation":

Neat Examples  (1)

Decompose a polygon into similar triangles:

Wolfram Research (2019), GeometricScene, Wolfram Language function, (updated 2020).


Wolfram Research (2019), GeometricScene, Wolfram Language function, (updated 2020).


Wolfram Language. 2019. "GeometricScene." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020.


Wolfram Language. (2019). GeometricScene. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_geometricscene, author="Wolfram Research", title="{GeometricScene}", year="2020", howpublished="\url{}", note=[Accessed: 24-June-2024 ]}


@online{reference.wolfram_2024_geometricscene, organization={Wolfram Research}, title={GeometricScene}, year={2020}, url={}, note=[Accessed: 24-June-2024 ]}