# simplicial: Simplicial topology in Python¶

## What is simplicial topology?¶

*Topology* is the study of shapes. It is separate from *geometry* in that it is interested
in properties that are preserved under smooth transformations such as stretching,
bending, and rotating – but not tearing. Classical point-set topology forms shapes using
sets of points and functions between them. The theory is extremely elegant, but often
not particularly tractable for computational use.

There are various forms of *discrete* or *cellular* topology that are more computation-friendly.
*Simplicial* topology is a discrete topology based around collections of points, lines,
triangles, tetrahedra, and their extensions to higher dimensions. It is probably the simplest
topological machine there is that’s amenable to computation, since its built from
combinatorial, rather than continuous, operations and functions.

You can use simplicial topology to model any number of things: approximations of curved surfaces, point-cloud data, the relationships between elements of a dataset, constraints on solutions to a problem, and so forth. Once you’ve modelled a problem in this way, you can use topological techniques to study it.

## What is `simplicial`

?¶

`simplicial`

is a Python library for creating, manipulating, and exploring simplicial
complexes. It aims to provide a useful set of features for programmers and mathematicians
while remaining scalable to deal with large complexes. “Large” here means a few-thousands of points
and simplices: `simplicial`

isn’t suitable for dealing with large image datasets or extremely
high-dimensional spaces, which require more advanced programming techniques.

## Current features¶

- Compatible with both Python 2.7 and Python 3.7 (and later).
- Represents finite closed simplicial complexes, with a lot of checking to ensure that that they stay legal as simplices are added and removed (a common source of errors)
- Allows complexes to be embedded into spaces of arbitrary dimension to allow geometric as well as topological calculations to be performed
- Computes derived structures such as flag complexes, Vietoris-Rips complexes, and the like
- Performs homology computations, computes Euler characteristics, does Euler characteristic integration, and other interesting operations