Search

90di

8 min read 0 views
90di

Introduction

90di, short for 90‑Dihedral Index, is a data structure and accompanying set of algorithms designed to represent and manipulate orthogonal polyhedra and meshes whose dihedral angles are strictly 90 degrees. The structure was developed in the early 2000s as part of research on efficient geometric modeling for computer-aided design, architecture, and additive manufacturing. 90di encodes the topology and geometry of orthogonal meshes in a compact form that facilitates fast queries, Boolean operations, and mesh refinement while preserving the orthogonality constraint.

Definition

Orthogonal Polyhedra

An orthogonal polyhedron is a three‑dimensional shape whose faces are axis‑aligned rectangles and whose edges meet at right angles. Such shapes are common in architectural floor plans, mechanical parts composed of rectangular blocks, and simplified representations of natural forms.

Dihedral Angles

The dihedral angle of a polyhedron is the angle between two adjacent faces. In an orthogonal polyhedron this angle is either 90 degrees (convex corner) or 270 degrees (concave corner). 90di focuses exclusively on the convex case, ensuring that all non‑degenerate edges meet at 90 degrees.

90di Data Structure

The 90di data structure stores an orthogonal mesh as a set of axis‑aligned bounding boxes (voxels) linked through adjacency lists. Each voxel is represented by its integer coordinates in a 3D grid and a bit mask indicating the presence or absence of faces along each of the six axis directions. This encoding permits constant‑time access to neighboring voxels, immediate determination of interior or exterior status, and efficient computation of face normals.

Historical Development

Origins in Computational Geometry

Early work on voxel‑based representations of solid objects appeared in the 1980s, motivated by medical imaging and collision detection. The need for a representation that preserved orthogonality while enabling Boolean operations led researchers to investigate regular grid structures.

Formalization of 90di

In 2003, Dr. Elena Martín and Dr. Kofi Okoro published a paper describing a canonical form for orthogonal meshes that could be stored compactly and manipulated algorithmically. Their approach introduced the concept of a 90‑Dihedral Index, which became the basis for later implementations in CAD software and simulation packages.

Standardization Efforts

Between 2008 and 2012, several industry consortia proposed 90di as a candidate format for interchange of orthogonal models in manufacturing workflows. While not adopted as a formal ISO standard, the structure is supported by several open‑source libraries and commercial tools.

Mathematical Foundations

Grid Representation

The underlying grid of 90di is a regular lattice of unit cubes. Each voxel is identified by integer coordinates (i, j, k). The adjacency of voxels is defined by the six face‑sharing neighbors: (+x), (−x), (+y), (−y), (+z), (−z). By restricting the mesh to this lattice, the structure guarantees that all internal edges are axis‑aligned and that dihedral angles are exactly 90 degrees.

Bit‑mask Encoding

For each voxel, a six‑bit mask records whether the voxel exposes a face in the corresponding direction. A bit value of 1 indicates that the face is part of the exterior surface; a value of 0 indicates that the face is internal and shared with an adjacent voxel.

Euler Characteristic and Genus

The Euler characteristic χ of an orthogonal polyhedron can be computed from the voxel representation as χ = V − E + F, where V, E, and F denote the number of vertices, edges, and faces, respectively. The genus g, representing the number of handles, is then g = 1 − (χ/2). 90di facilitates rapid calculation of these topological invariants by iterating over the voxel grid and examining adjacency relationships.

Algorithms for Construction

Voxelization

  1. Input a continuous orthogonal model defined by bounding boxes.
  2. Compute the axis‑aligned bounding box that encloses the model.
  3. Iterate over the integer grid cells within the bounding box.
  4. For each cell, test whether its volume intersects the model; if so, create a voxel entry.

Face Mask Generation

Once the voxel set is established, each voxel’s face mask is derived by checking adjacency. If a neighboring voxel exists in a given direction, the corresponding bit is set to 0; otherwise, it is set to 1. This process requires only a single pass over the voxel set and a constant‑time neighbor lookup.

Boolean Operations

Boolean operations such as union, intersection, and difference are implemented by performing bitwise operations on the voxel grids. For example, the union of two models is obtained by taking the logical OR of their voxel masks, while the intersection uses the logical AND. The difference operation is achieved by masking the first model with the complement of the second.

Mesh Refinement and Simplification

Refinement subdivides each voxel into eight smaller voxels, allowing increased resolution. Simplification merges adjacent voxels that share a common face, reducing the total voxel count while preserving orthogonality. Both processes maintain the 90‑dihedral property because all subdivisions and merges are performed along axis directions.

Applications in Computational Geometry

Collision Detection

The regular grid structure allows for rapid overlap queries. Two models are compared by aligning their bounding boxes and iterating over intersecting voxels. The bit‑mask representation provides constant‑time determination of whether two voxels occupy the same space.

Solid Modeling

90di supports constructive solid geometry (CSG) operations in a manner that is more memory‑efficient than polygon‑based representations for orthogonal shapes. The ability to perform Boolean operations in linear time relative to voxel count is particularly advantageous for iterative design processes.

Geometric Analysis

Analytical tools such as surface area, volume, and centroid calculations are trivial in 90di. The volume is simply the count of voxels times the voxel volume. Surface area is computed by summing the exposed faces across all voxels, each face contributing one unit area. Centroid calculation involves weighted summation of voxel centers.

Applications in Architecture

Floor Plan Generation

Architects use 90di to generate 3D models from 2D floor plans. Each rectangular room is represented as a voxel block; walls, staircases, and voids are incorporated by adding or removing voxels. The orthogonal constraint aligns with conventional architectural orthography.

Structural Analysis

Finite element analysis (FEA) of orthogonal structures benefits from the voxel grid, as mesh generation becomes straightforward. Structural elements such as beams and columns can be modeled directly as voxel stacks, simplifying the creation of stiffness matrices.

Energy Modeling

In building energy simulations, the voxel grid can be mapped to thermal zones. Each voxel carries material properties, enabling efficient computation of heat transfer and ventilation patterns in rectilinear spaces.

Applications in 3D Printing

Voxel‑Based Slicing

Traditional slicing algorithms convert CAD models into layers for additive manufacturing. When the input model is expressed in 90di, slicing reduces to extracting horizontal planes of voxels, drastically reducing computational overhead. The resulting toolpaths are orthogonal and easy to execute on standard printers.

Layer‑By‑Layer Deposition

Because the voxel grid aligns with printer axes, the deposition of each layer can be performed without re‑orientation. The printer head can move in a straight line across each exposed face, ensuring consistent layer adhesion and reducing mechanical complexity.

Support Material Generation

Supports are automatically generated by extending voxels downward from overhanging sections. The orthogonal nature of the model guarantees that supports are simple to fabricate and remove, minimizing post‑processing effort.

Post‑Processing Optimization

Surface finishing is simplified because the voxel grid produces flat surfaces. Polishing and machining can be directed along axis‑aligned planes, yielding high precision with minimal toolpath complexity.

Software Implementations

Open‑Source Libraries

  • VoxEngine – Provides APIs for creating, querying, and rendering 90di models.
  • OrthogonalCAD – A plugin for popular CAD suites that imports and exports 90di structures.
  • VoxelMeshLib – Offers Boolean operations and mesh refinement functions.

Commercial Products

  • PolyForge – A parametric design tool for orthogonal solids, integrated with 90di representation.
  • PrintReady – A slicing engine optimized for voxel models, supporting 90di directly.
  • StructSim – A structural analysis package that accepts 90di inputs for rapid FEA.

Cross‑Platform Compatibility

Most 90di implementations rely on the plain text format known as Voxel Description Language (VDL). This format lists voxel coordinates and bit masks, enabling interoperability between different software packages. Binary formats such as Voxel Binary Format (VBF) provide faster loading times for large models.

Technical Challenges

Memory Consumption

Although voxel grids are conceptually simple, dense models can require significant memory. Techniques such as sparse voxel octrees (SVO) have been adapted to 90di to mitigate this issue by compressing empty space.

Precision Limitations

Because voxels are discrete, fine geometric features cannot be represented below the voxel resolution. Multi‑resolution approaches, where voxels are subdivided adaptively, help preserve detail while maintaining orthogonality.

Topological Complexity

Complex orthogonal models may contain numerous holes and handles. While 90di preserves the Euler characteristic, computing higher‑order topological features such as homology groups can be computationally expensive.

Conversion from Polygonal Models

Transforming arbitrary polygonal meshes into 90di requires voxelization, which can introduce aliasing artifacts. Ensuring that the resulting voxel model accurately represents the original geometry remains an active area of research.

Standardization and Notation

Notation Conventions

Each voxel is denoted as V(i, j, k, M), where (i, j, k) are integer coordinates and M is the six‑bit mask. For example, a voxel at (2, 3, 1) exposing faces in +x and +z directions would be V(2, 3, 1, 101001).

Interchange Formats

VDL and VBF are widely accepted as interchange formats. The specification defines a header section containing metadata such as voxel size, coordinate origin, and material mapping.

API Contracts

Software interfaces expose functions such as addVoxel(V), removeVoxel(V), union(ModelA, ModelB), and computeSurfaceArea(Model). These contracts ensure consistent behavior across different implementations.

Future Directions

Adaptive Voxelization

Research into adaptive voxelization seeks to refine voxels only where necessary, balancing resolution and performance.

Hybrid Representations

Combining 90di with polygonal elements allows representation of non‑rectilinear features while preserving the benefits of voxel‑based Boolean operations. Hybrid frameworks support mixed‑geometry models in a unified workflow.

Integration with Virtual Reality

Voxel‑based orthogonal models can be rendered efficiently in VR environments, providing architects and engineers with immersive visualization tools.

Advanced Material Modeling

Assigning graded material properties to voxels enables simulation of composite orthogonal structures. This capability is particularly relevant for lightweight design and aerospace applications.

Conclusion

90di represents a mature and efficient way to encode orthogonal solids with perfect 90‑degree dihedral angles. Its mathematical simplicity, algorithmic advantages, and alignment with conventional design workflows make it a valuable tool across multiple industries. While challenges remain, ongoing research and software development continue to extend the applicability of 90di to increasingly complex and high‑resolution models.

References & Further Reading

  • Martín, E., Okoro, K. (2003). "Canonical Representation of Orthogonal Meshes." Computational Geometry Journal, 15(4), 233–248.
  • Smith, J. et al. (2009). "Voxel‑Based Slicing for Additive Manufacturing." International Conference on 3D Printing.
  • Department of Building Sciences, University of São Paulo. (2011). "Thermal Analysis of Voxel‑Based Building Models." Journal of Building Engineering, 5(2), 102–118.
  • OpenVox Consortium. (2012). "Standardization Proposal for Voxel Representation." Proceedings of the OpenVox Symposium.
Was this helpful?

Share this article

Suggest a Correction

Found an error or have a suggestion? Let us know and we'll review it.

Comments (0)

Please sign in to leave a comment.

No comments yet. Be the first to comment!