[MAS.865](../../index.html) > [Design](../index.html) > geoemtry representation
# Geometry Representation
##CSG (Constructive Solid Geometry)
- An object is constructed from __primitives__ by means of allowable operations
- These are typically Boolean operations on sets: union, intersection and difference, as well as geometric transformations of those sets.
- CSG objects can be represented by __binary trees__, where leaves represent primitives, and nodes represent operations.
- A primitive can typically be described by a procedure which accepts some number of parameters.
##Brep (Boundary Representation)
- A method for representing shapes using the __limits__.
- A solid is represented as a collection of __connected surface elements__, the boundary between solid and non-solid.
- It has a much __richer operation__ set. In addition to the Boolean operations, B-rep has extrusion (or sweeping), chamfer, blending, drafting, shelling, tweaking and other operations which make use of these.
#### Polygon Mesh Models
- The main topological items are: faces, edges and vertices.
#### NURBS (Non Uniform Rational Basis Splines)
- An elegant mathematical description of a physical drafting aid as a (set of) parametric equation(s).
- The boundaries are defined by lines, conics, polylines, surface curves, or b spline curves.
- [On NURBS: A Survey](http://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf)
## Visrep
-[Brep vs Visrep Models](https://transmagic.com/brep-vs-visrep-models/)
##Frep (Functional Representation)
- An object as a __point set__ in space is defined by a __function__ of point coordinates f(x_{1},x_{2},...,x_{n}) which is evaluated at the given point
by a procedure traversing a tree structure with **primitives in the leaves** and **operations in the nodes** of the tree.
- The points with f(x_{1},x_{2},...,x_{n}) ≥ 0 belong to the object.
- The points with f(x_{1},x_{2},...,x_{n})<0 are outside of the object.
- The point set with f(x_{1},x_{2},...,x_{n})=0 is called an *isosurface*.
- Example: max( X*X+Y*Y-1, -(X*X+Y*Y-0.5))
- [Antimony](https://www.mattkeeter.com/projects/antimony/3/)
- [libfive](https://libfive.com/)
- [Function-based shape modeling: mathematical framework and specialized language](http://fab.cba.mit.edu/classes/S62.12/docs/Pasko_frep.pdf)
##Arep (Algorithmic Representation)
[Link to Page](../arep/index.html)