# Function representation

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Function_representation
> Markdown URL: https://mediated.wiki/source/Function_representation.md
> Source: https://en.wikipedia.org/wiki/Function_representation
> Source revision: 1307390452
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

**Function Representation** (FRep [1] or F-Rep) is used in [solid modeling](/source/Solid_modeling), volume modeling and [computer graphics](/source/Computer_graphics). FRep was introduced in "Function representation in [geometric modeling](/source/Geometric_modeling): concepts, implementation and applications" [2] as a uniform representation of multidimensional geometric objects (shapes). An object as a point set in multidimensional space is defined by a single continuous real-valued function f ( X ) {\displaystyle f(X)} of point coordinates X [ x 1 , x 2 , . . . , x n ] {\displaystyle X[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 {\displaystyle f(x_{1},x_{2},...,x_{n})\geq 0} belong to the object, and the points with f ( x 1 , x 2 , . . . , x n ) < 0 {\displaystyle 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 {\displaystyle f(x_{1},x_{2},...,x_{n})=0} is called an [isosurface](/source/Isosurface).

## Geometric domain

The geometric domain of FRep in 3D space includes solids with [non-manifold models](/source/Non-manifold_model) and lower-dimensional entities (surfaces, curves, points) defined by zero value of the function. A primitive can be defined by an equation or by a "black box" procedure converting point coordinates into the function value. Solids bounded by algebraic surfaces, skeleton-based [implicit surfaces](/source/Implicit_surface), and convolution surfaces, as well as procedural objects (such as solid noise), and [voxel](/source/Voxel) objects can be used as primitives (leaves of the construction tree). In the case of a voxel object (discrete field), it should be converted to a continuous real function, for example, by applying the trilinear or higher-order interpolation.

Many operations such as set-theoretic, blending, offsetting, projection, non-linear deformations, metamorphosis, sweeping, hypertexturing, and others, have been formulated for this representation in such a manner that they yield continuous real-valued functions as output, thus guaranteeing the closure property of the representation. [R-functions](/source/R-function) originally introduced in V.L. Rvachev's "On the analytical description of some geometric objects",[3] provide C k {\displaystyle C^{k}} [continuity](/source/Smooth_function) for the functions exactly defining the set-theoretic operations (min/max functions are a particular case). Because of this property, the result of any supported operation can be treated as the input for a subsequent operation; thus very complex models can be created in this way from a single functional expression. FRep modeling is supported by the special-purpose language [HyperFun](/source/HyperFun).

## Shape Models

FRep combines and generalizes different shape models like

- algebraic surfaces

- skeleton based "implicit" surfaces

- set-theoretic solids or CSG ([Constructive Solid Geometry](/source/Constructive_Solid_Geometry))

- sweeps

- volumetric objects

- parametric models

- procedural models

A more general "constructive hypervolume"[4] allows for modeling multidimensional point sets with attributes (volume models in 3D case). Point set geometry and attributes have independent representations but are treated uniformly. A point set in a geometric space of an arbitrary dimension is an FRep based geometric model of a real object. An attribute that is also represented by a [real-valued function](/source/Real-valued_function) (not necessarily continuous) is a mathematical model of an object property of an arbitrary nature (material, photometric, physical, medicine, etc.). The concept of "implicit complex" proposed in "Cellular-functional modeling of heterogeneous objects"[5] provides a framework for including geometric elements of different dimensionality by combining polygonal, parametric, and FRep components into a single cellular-functional model of a heterogeneous object.

## See also

- [Boundary representation](/source/Boundary_representation)

- [Constructive Solid Geometry](/source/Constructive_Solid_Geometry)

- [Solid modeling](/source/Solid_modeling)

- [Isosurface](/source/Isosurface)

- [Signed distance function](/source/Signed_distance_function)

- [HyperFun](/source/HyperFun)

- [Digital materialization](/source/Digital_materialization)

## References

1. **[^](#cite_ref-1)** [""Shape Modeling and Computer Graphics with Real Functions""](https://f-rep.org/frep/main). [Archived](https://web.archive.org/web/20250820075745/https://f-rep.org/frep/main) from the original on 2025-08-20.

1. **[^](#cite_ref-2)** A. Pasko, V. Adzhiev, A. Sourin, V. Savchenko, "Function representation in geometric modeling: concepts, implementation and applications", The Visual Computer, vol.11, no.8, 1995, pp.429-446.

1. **[^](#cite_ref-3)** V.L. Rvachev, "On the analytical description of some geometric objects", Reports of Ukrainian Academy of Sciences, vol. 153, no. 4, 1963, pp. 765-767 (in Russian).

1. **[^](#cite_ref-4)** A. Pasko, V. Adzhiev, B. Schmitt, C. Schlick, "Constructive hypervolume modelling", Graphical Models, 63(6), 2001, pp. 413-442.

1. **[^](#cite_ref-5)** V. Adzhiev, E. Kartasheva, T. Kunii, A. Pasko, B. Schmitt, "Cellular-functional modeling of heterogeneous objects", Proc. 7th ACM Symposium on Solid Modeling and Applications, Saarbrücken, Germany, ACM Press, 2002, pp. 192-203. 3-540-65620-0

## External links

- [https://f-rep.org/hyperfun/main](https://f-rep.org/hyperfun/main)

- [http://libfive.com/](http://libfive.com/)

- [http://www.implicitcad.org/](http://www.implicitcad.org/)

---
Adapted from the Wikipedia article [Function representation](https://en.wikipedia.org/wiki/Function_representation) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Function_representation?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
