# polyxios > Fast, clean 3D mesh and geometry file I/O for Python. polyxios reads and writes 27 3D mesh and geometry file formats through one API, with a single runtime dependency (NumPy). It raises on malformed input rather than silently truncating, and can memory-map large binary files. ## Documentation - [polyxios - fast, clean mesh I/O for Python](https://polyxios.org/stable/index.html) - [Installation](https://polyxios.org/stable/installation.html): Clone the repo, then use spin to manage the build: - [Usage](https://polyxios.org/stable/usage.html): Anything with a read or a write works where a path does, so a mesh never has to touch disk: - [Supported formats](https://polyxios.org/stable/formats/index.html): polyxios ships forty-four codecs across fifty-seven extensions - the fifty-six below plus .plt, which is recognised but not read. Each is registered by… - [VTK Legacy](https://polyxios.org/stable/formats/vtk.html): .vtk read + write lazy: binary v5.1 zero-copy, v4.2 all but cells - [VTK RectilinearGrid](https://polyxios.org/stable/formats/vtr.html): .vtr is one of the VTK XML serial formats. A root wraps a piece whose extent is declared as six integer indices, and whose… - [VTK PolyData](https://polyxios.org/stable/formats/vtp.html): .vtp is the VTK XML format for surface and curve geometry. A declares its point and cell counts as attributes, then carries plus up to four… - [Wavefront OBJ](https://polyxios.org/stable/formats/obj.html): OBJ is a line-oriented ASCII format where each line is a keyword followed by whitespace-separated values: v for a geometric vertex, vn for a normal, vt for a… - [Stanford PLY](https://polyxios.org/stable/formats/ply.html): PLY - the Stanford Triangle Format - stores a mesh as a list of named elements, typically vertex and face, each declared in an ASCII header along with its… - [STL](https://polyxios.org/stable/formats/stl.html): STL describes a solid as an unordered set of triangles - a triangle soup with no vertex sharing and no topology. Each facet carries its own normal and its… - [3MF](https://polyxios.org/stable/formats/3mf.html): 3MF - the 3D Manufacturing Format of the 3MF Consortium - is the file a slicer takes in place of an STL. It is a ZIP package in the Open Packaging Conventions… - [OFF](https://polyxios.org/stable/formats/off.html): The Object File Format opens with an OFF magic line, optionally prefixed by variant letters, then a counts line giving the number of vertices, faces and edges… - [Abaqus](https://polyxios.org/stable/formats/abaqus.html): An Abaqus input deck is a keyword-driven text file. Lines beginning with * introduce a keyword with comma-separated parameters; the data lines that follow… - [AVS-UCD](https://polyxios.org/stable/formats/avs.html): AVS Unstructured Cell Data begins with a five-integer counts line: numbers of nodes, cells, node data values, cell data values and model data values. Node… - [Medit binary](https://polyxios.org/stable/formats/meshb.html): .meshb is the binary form of the INRIA Medit mesh format. The file is a stream of keyword-indexed fields: an integer keyword code, the byte position of the… - [Medit ASCII](https://polyxios.org/stable/formats/medit.html): A Medit file is a flat sequence of named sections. MeshVersionFormatted opens it and Dimension says whether the coordinates are 2-D or 3-D. Each entity section… - [DOLFIN / FEniCS XML](https://polyxios.org/stable/formats/dolfin.html): The legacy DOLFIN mesh format is a small XML tree: a root containing a whose celltype attribute names the element (interval, triangle… - [FLAC3D](https://polyxios.org/stable/formats/flac3d.html): .f3grid is Itasca’s ASCII grid exchange file. Records are keyword-led: G (or GRIDPOINT) lines declare a gridpoint id and its coordinates, Z lines declare a… - [glTF](https://polyxios.org/stable/formats/gltf.html): .gltf .glb read + write eager scene: read_scene + write_scene - [COLLADA](https://polyxios.org/stable/formats/collada.html): .dae read + write eager scene: read_scene + write_scene - [Gmsh](https://polyxios.org/stable/formats/gmsh.html): A Gmsh .msh file is a sequence of $Section / $EndSection blocks. $MeshFormat states the version, whether the file is ASCII or binary, and the size of a float… - [Nastran](https://polyxios.org/stable/formats/nastran.html): A Nastran bulk data file is a deck of fixed-column cards. Each card starts with a name in the first field and continues across eight further fields. Three… - [Tecplot ASCII](https://polyxios.org/stable/formats/tecplot.html): A Tecplot ASCII data file opens with an optional TITLE and a VARIABLES list naming every column, then one or more ZONE records. A finite-element zone declares… - [SU2](https://polyxios.org/stable/formats/su2.html): The SU2 native mesh is plain ASCII, keyed by uppercase tokens on their own lines. NDIME= gives the dimension, NELEM= precedes the volume element list - one… - [TetGen](https://polyxios.org/stable/formats/tetgen.html): TetGen splits a mesh across sidecar files that share a basename. .node starts with a counts line - number of points, dimension, number of attributes… - [Well-Known Text](https://polyxios.org/stable/formats/wkt.html): WKT is the OGC text encoding for vector geometry: a type keyword followed by parenthesised coordinate lists. POLYGON takes one or more rings, the first being… - [VTK UnstructuredGrid](https://polyxios.org/stable/formats/vtu.html): .vtu is the XML serial form of a VTK UnstructuredGrid: an arbitrary mix of cell types in one dataset. A root holds an… - [VTK StructuredGrid](https://polyxios.org/stable/formats/vts.html): .vts is the XML serial form of a VTK StructuredGrid: a curvilinear grid with an explicit coordinate per node but implicit connectivity. A root holds an carrying… - [VTKHDF](https://polyxios.org/stable/formats/vtkhdf.html): .vtkhdf read + write time series polyxios[hdf5] - [PVD (ParaView collection)](https://polyxios.org/stable/formats/pvd.html): A .pvd file is ParaView’s collection: a short XML document that holds no geometry and names the files that do. A root holds a… - [MFEM mesh](https://polyxios.org/stable/formats/mfem.html): An MFEM mesh file opens with a MFEM mesh v1.0 version line and is then a sequence of named sections, each a keyword on its own line followed by a count and… - [Netgen](https://polyxios.org/stable/formats/netgen.html): A Netgen .vol file opens with the word mesh3d and is then a sequence of named sections, each one a keyword line, a count line, and that many records. The… - [UGRID (AFLR)](https://polyxios.org/stable/formats/ugrid.html): A UGRID file opens with one header line of seven counts - nodes, triangles, quads, tetrahedra, pyramids, prisms, hexahedra - and then lists every section back… - [Gaussian splat](https://polyxios.org/stable/formats/splat.html): .splat is the 32-byte-per-Gaussian binary layout used by the WebGL Gaussian Splat Viewer and compatible tools. It has no header: the file is a flat array of… - [PCD (Point Cloud Library)](https://polyxios.org/stable/formats/pcd.html): PCD is the Point Cloud Library’s own file format and, through PCL, ROS and Open3D, the one most robotics and scanning pipelines exchange clouds in. A short… - [LAS / LAZ (ASPRS LiDAR)](https://polyxios.org/stable/formats/las.html): LAS is the ASPRS exchange format for LiDAR point clouds and the one every airborne, mobile and terrestrial scanning pipeline can produce or consume; LAZ is the… - [ASCII point clouds: XYZ, PTS, PTX](https://polyxios.org/stable/formats/xyz.html): The plainest point-cloud files are columns of numbers, one point per line, and nearly every scanner, photogrammetry package and GIS tool exports one. .xyz has… - [Kratos MDPA](https://polyxios.org/stable/formats/mdpa.html): A Kratos .mdpa file is a flat list of Begin
/ End
blocks, and everything the format holds lives in one of them. Nothing is counted in a… - [PERMAS](https://polyxios.org/stable/formats/permas.html): A PERMAS deck is plain ASCII made of $KEYWORD records, each followed by the data lines it governs until the next $. A ! opens a comment, and a line whose first… - [ANSYS Fluent](https://polyxios.org/stable/formats/fluent.html): A Fluent mesh is a run of parenthesised sections, each opening with an index that says what it holds: (0 "...") a comment, (1 "...") the header, (2 3) the… - [SVG](https://polyxios.org/stable/formats/svg.html): Scalable Vector Graphics is the W3C’s XML picture format: a root whose viewBox names the drawing’s coordinate extent and whose width and height, when… - [XDMF](https://polyxios.org/stable/formats/xdmf.html): .xdmf .xmf read + write lazy: binary and contiguous HDF5 time series - [MED](https://polyxios.org/stable/formats/med.html): MED is the mesh and field file of the Salome platform and of code_aster: one HDF5 file with a fixed tree. The meshes live under ENS_MAA, each a group named for… - [CGNS](https://polyxios.org/stable/formats/cgns.html): The CFD General Notation System describes a mesh and its solutions as a tree of typed nodes, the Standard Interface Data Structures, and stores that tree in… - [H5M (MOAB)](https://polyxios.org/stable/formats/h5m.html): H5M is the native file of MOAB, the Mesh-Oriented datABase used by DAGMC and the SIGMA toolkit. Everything sits under one HDF5 group, tstt: the coordinates in… - [HMF](https://polyxios.org/stable/formats/hmf.html): HMF is XDMF’s data model in one HDF5 file, with no XML beside it - the experimental format meshio invented for the case XDMF serves badly, a mesh whose arrays… - [Exodus II](https://polyxios.org/stable/formats/exodus.html): .e .exo .ex2 read + write eager needs netCDF4 - [Lazy loading](https://polyxios.org/stable/lazy_loading.html): For a large binary mesh, pass lazy=True. polyxios maps the file and, wherever the file stores an array as one run of bytes in the shape the array needs, hands… - [Transforms](https://polyxios.org/stable/transforms.html): Every transform takes a PolyData and returns a new one - nothing is modified in place - so they compose freely. - [Command line interface (pxios)](https://polyxios.org/stable/cli.html): polyxios comes with a command-line interface pxios to quickly fetch, list, convert, and visualize 3D models. - [Plugin system](https://polyxios.org/stable/plugins.html): Any third-party package can teach polyxios to read and write a new format - no fork required, no pull request needed. - [API Reference](https://polyxios.org/stable/api/index.html): Complete reference for all public functions, types, and exceptions. - [Contributing](https://polyxios.org/stable/contributing.html): Every commit subject line must start with one of these prefixes followed by a space: - [Development Guide](https://polyxios.org/stable/development.html): polyxios uses spin to manage the development workflow. All common tasks - building, testing, linting, and documentation - are available as spin sub-commands. - [Changelog](https://polyxios.org/stable/changelog.html): A binary legacy .vtk POLYDATA file whose cell sections carry no OFFSETS block no longer reads with an empty first cell ahead of its own, which shifted every… - [Credits](https://polyxios.org/stable/credits.html): polyxios is developed in the open under the FURY umbrella. Every codec, test and page in these docs came from someone’s spare evening.