A Visual Guide to the 5-Level Structural Hierarchy
Built upon HDF5 by The HDF Group.
Hover over the pyramid layers to explore the structural levels of F5.
F5 separates the connectivity of points (Topology) from their spatial coordinates (Geometry). This allows the same topology to be rendered in multiple coordinate systems simultaneously without duplicating the underlying connectivity data.
Conceptually, F5 represents a fiber bundle $E$, where $B$ is the base space (the grid) and $F$ is the fiber (the value at each point):
E ≈ B × F
The top layer contains the actual simulation data - scalars, vectors, or tensors - mapped onto the underlying geometry. Fragmentation into chunks is optional for performance considerations such as parallel I/O, sparse domains, memory conservation.
Defines the coordinate system (Cartesian, Spherical, etc.). F5 allows multiple representations for the same skeleton. Representations may also be relative to another Skeleton to specify topological relationships.
Specifies the topological properties such as connectivity. Whether you have vertices, edges, or 3D cells, the Skeleton defines them as an index space with field specifying how they relate.
A collection of topological entities - the organizational container for skeletons. This is where geometric entities from simple point clouds, meshes or AMR (Adaptive Mesh Refinement) hierarchies are managed.
The base level. Every object in F5 exists within a specific temporal context, supporting complex multi-rate simulations.
F5 is a mathematically grounded, forward-compatible general-purpose model supporting a vast range of scientific and visual data structures from reusable elementary building blocks.
This list represents common implementations but is not exhaustive of the F5 specification.
When you are ready wanting to know more about F5, you may either browse and rad the extensive publications, or just ask a modern AI to explain it:
Use the F5 model specification as master prompt in your favored AI to answer in-depth questions and to generate HDF5 code for your specific data - it already knows HDF5, it just needs to know it should use the F5 model for the data layout.