LATTIFORM
Lattiform FEA Preview 0.1.0 (build 8). Version 1.0 of this page, published 4 October 2026.
This page sets out what this version of the app does, what it does not do, how far its results have been checked, what it needs to run, and its known issues.
It is part of how we describe the app under the Lattiform Licence and Purchase Terms at lattiform.com/licence-terms, together with the in-app Help and the information on lattiform.com/pricing. The in-app Help in build 8 wrongly says that the app does no large-displacement or modal analysis. Build 8 offers both, as this page describes (see Known issues).
We publish a new version of this page with each version of the app. We keep every earlier version, and we will email you any of them free of charge if you ask at founder@lattiform.com.
What it does
Lattiform FEA Preview is a finite element analysis (FEA) app for macOS. It analyses one solid part at a time on a grid of cube-shaped elements, and it solves the study on your Mac.
Analysis types
Linear static. The main analysis. It finds deflection, stress and strain under steady loads. It assumes small deflections and a linear elastic material, so results scale in proportion to the load.
Nonlinear static (large displacement). For parts whose deflection or rotation is large enough to change their stiffness, such as a slender beam, a leaf spring or a flexure. The load is applied in steps, and each step is solved to equilibrium on the deformed shape. The material is elastic only (a St Venant–Kirchhoff model).
Modal. Natural frequencies and vibration mode shapes, without damping, for 1 to 128 modes (6 by default). It shows how much of the part’s mass each mode moves in each direction. It can repeat the solve on a finer or coarser grid to check how well the modes have settled. For a part with supports, it can also plot an estimate of how one point responds when the supports are shaken at a steady frequency (base excitation). That estimate uses a damping ratio you choose, because the modal solve itself has no damping.
Geometry and grid
Start from a built-in example (Cantilever, Compression Block or L-Bracket), or import a part.
Mesh files: STL, OBJ, PLY, OFF and legacy ASCII VTK. These files do not state a length unit, so the app asks you for one. The surface must be closed so that it can be filled as a solid.
CAD and other files: STEP (AP203, AP214 and AP242), IGES, Rhino 3DM, 3MF, glTF/GLB and AMF. The app reads the length unit from the file.
STEP and IGES import covers a subset of files. If the app cannot read a file correctly, it refuses it and leaves your study unchanged.
You can choose to repair some mesh faults, such as small holes and cracked seams. The app reports every change it makes.
An open surface can be imported as a shell after you enter a wall thickness. It is then analysed as a solid of that thickness.
If you import several bodies from one file, they are welded into one body, after you confirm.
Every part is analysed on a uniform grid of 8-node cube elements (HEXA8: trilinear, with 2×2×2 Gauss integration), lined up with the X, Y and Z axes. The app fits the grid around the part, and you choose the element size. It never scales the part to fit the grid.
Material, units, supports and loads
One isotropic, linear elastic material per study, defined by Young’s modulus, Poisson’s ratio, density and, if you want a factor of safety, yield strength. Pick a built-in material or one of your own saved materials, or type the values in.
Units: SI (m, N, Pa); mm, N, MPa; or in, lbf, ksi.
Supports: Fixed, Roller / Frictionless, Symmetry, Cylindrical / Pin-like and Custom. Each direction can be free, fixed or, in linear static studies only, given a prescribed displacement.
Loads: total force, force per element, face pressure, gravity, and a moment applied as a couple of equal and opposite forces.
Supports and loads can be placed on faces of the grid box, inside boxes, or on named selections, such as surfaces picked on the part. They can use named local coordinate systems (Cartesian or cylindrical).
Named load cases, in linear static studies only.
Results
Displacement (size and X, Y and Z parts). Stress components, von Mises stress, maximum and minimum principal stress and maximum shear stress. Maximum principal strain and strain energy density. Factor of safety against yield, when you give a yield strength.
Support reactions and moments, forces across internal section planes, values along a path, and readings at points you pin with the probe.
Modal studies: frequencies, mode shapes, mass participation and the base-excitation estimate. Mode shapes show the shape of each vibration, not its size.
Nonlinear static studies: the load reached, the load steps and the iterations each step took.
Every result comes with the solver’s own record: iterations, residuals, force and moment balance and energy checks. Warnings are shown, not hidden.
A mesh convergence sequence solves the same static study at 2× and 4× finer grids and compares them at a probe point, with warnings where a stress may not settle.
Local refinement of an internal region at 2× or 4×, in linear static studies only.
Batch studies: one static model solved for a range of load sizes, a set of materials, or every combination.
Export: a Markdown report and CSV tables, PNG images, and GIF, MP4 (H.264) or MOV (ProRes 422) animations and videos.
Where it runs
Studies are solved on your Mac. Models, geometry and results are not sent anywhere to be solved.
Linear static runs on the GPU using Apple’s Metal (the default, in single precision with the final residual checked in double precision) or on the CPU in double precision.
Nonlinear static runs on the CPU in double precision (the default) or with its main work on the GPU.
Modal runs on the GPU only.
The app checks for updates when you ask it to, and automatically if you allow it. Usage analytics are off unless you turn them on. Our privacy notice at lattiform.com/privacy explains what is sent.
What it does not do
Physics
No plasticity or other nonlinear material behaviour. Nonlinear static uses an elastic material only.
No contact, friction or gaps, either between parts or within a part.
No buckling analysis. Nonlinear static cannot follow a part through buckling, collapse or snap-through. If a load step will not converge even at the smallest step size, the solve stops.
No transient, shock, random-vibration or response-spectrum analysis. The only dynamic result is the steady base-excitation estimate in a modal study.
No fatigue, heat transfer, thermal stress or fluid flow analysis.
No anisotropic or composite materials.
Model
One material and one body per study. Assemblies, bonded interfaces and joints are not supported. Several bodies are analysed as one welded body.
Only the uniform grid of cube elements. There are no tetrahedral, shell or beam elements, and no curved or distorted elements.
Curved and inclined surfaces are represented by steps in the grid. Stress read at those surfaces is an approximation. Refine the grid, and use the mesh convergence sequence, before you rely on it.
Stress at a sharp inside corner or at a point load (a stress singularity) does not settle to one value as the grid is refined. No grid will fix this.
Some display modes draw results on the smooth imported surface. That is a picture only. The solve uses the stepped grid, which the Analysis Body view shows.
Limits within each analysis type
Prescribed displacement, named load cases and local refinement work with linear static studies only. In a nonlinear static study the app refuses them rather than approximating them.
Nonlinear static: loads keep their original direction and size as the part deforms, so a pressure does not follow the deformed surface. Supports must hold zero displacement. The largest grid depends on your Mac’s memory: about 1.09 million elements with 16 GB, and about 2.18 million with 32 GB or more.
Modal: loads and gravity are ignored. Supports must hold zero displacement. A part with no supports is analysed as a free body, with its rigid-body modes removed. The material needs a density above zero.
Modal refuses an imported part whose surface passes through grid cells and leaves them partly filled. This applies to most imported parts. Modal does run on models made only of whole grid cells, such as the built-in examples, and on imported parts whose faces line up with the grid.
Modal runs within a working-memory budget you set (2 GiB by default). Batch studies are not available for modal studies.
Forces across section planes are available only on internal planes lined up with the grid. A local refinement region must be inside the part, and it cannot contain supports, or loads other than gravity.
The mesh convergence sequence is not available when supports or loads use named selections.
A batch runs its cases one at a time. An interrupted case starts again from the beginning. The app stops your Mac going to sleep when idle during a batch, but it cannot keep it awake if you close the lid, choose Sleep, or the battery runs critically low.
How accurate are results
The app gives numerical approximations. Results depend on the geometry, the grid size, the material data, the loads, the supports and the settings you choose. Results can be wrong if any of these are wrong, or if a problem is outside what the app is designed to analyse.
No certification
The app and its results do not certify, approve or sign off a design for production, safety or regulatory use. No standards body or professional body has certified the app. We do not claim it is equivalent to any other analysis software.
Before anyone relies on a result for a decision about safety, regulatory compliance, or a part or structure that will be made or built, a competent person should check it independently. The check may use hand calculations, physical tests or a validated analysis.
Our verification evidence
Our verification evidence is published at lattiform.com/validation. It describes tests we have run on the solver and how it performed in them. It is not a certification, and it does not show that the app will give accurate results for your models.
Covered: linear static analysis. Report V4 (17 September 2026) tests linear static analysis on the regular HEXA8 grid, solved by the app’s default GPU (Metal) route. All 496 test rows passed. The tests include exact and manufactured solutions, checks of the element itself, comparison with the app’s own double-precision CPU solver on 160 random problems, uniform stress states, unit conversions, refusal of bad inputs, and grids of up to one million elements. Report V3 (4 September 2026) compares linear static results with published reference tables from NASA SP-224 and the MSC Nastran Verification Guide.
Not covered: nonlinear static and modal analysis. Both are in build 8, but the published evidence does not cover them. The nonlinear report V6 on the same page tests a later version of the nonlinear solver’s source code, not the version in build 8. There is no published verification evidence for modal analysis, including the base-excitation estimate.
Other limits of the evidence. V4 was run on the solver code as it stood on 17 September 2026, on one Mac (an Apple M5 Pro with macOS 26.5), and it is not repeated for each release. It checks results against known answers. It is not validation against measurements from physical tests. Comparing two Lattiform solvers cannot find a mistake that both share. Stress was compared away from singularities, so the evidence says nothing about peak stress at a sharp corner or at the edge of a support. Prescribed displacements other than zero were not tested. Results were shown to repeat exactly on one Mac with one build. We do not claim identical results on every Mac.
Checking your own results
Preflight names anything missing or wrong before a solve can start. Read the solver’s record and warnings with every result. Use the mesh convergence sequence to see whether a value has settled before you quote it.
Requirements
A Mac with Apple Silicon. The app does not run on Intel Macs.
macOS 14 (Sonoma) or later.
At least 16 GB of memory. Larger grids need more. The app refuses a linear static grid whose estimated memory need is more than half of your Mac’s memory, and it tells you before solving.
You do not need an account. You need an internet connection to download the app and to check for updates, but not to solve. The current app does not ask for a licence key.
We have tested this version on a limited number of Macs and macOS versions, not on every Mac and macOS version that meets these requirements.
Known issues
The in-app Help in build 8 is wrong about two analysis types. Its list of limits says the app does no large-displacement or modal analysis. Build 8 offers both, in the Analysis type menu of the Solver panel, as this page describes. We are correcting the Help in the next version.
Saved studies do not keep results. A study file saves the model and its settings. After you reopen a study, solve it again before you read results.
Not every file or setup is supported. Read the import and preflight messages. Large CAD assemblies can take too long to import or need more grid cells than the limits allow. At least one large assembly in our tests has not imported in full.
No iCloud storage in this version. Studies are saved on your Mac.
Updating from build 5 or earlier. Builds 5 and earlier cannot update themselves. Download and install the current version from lattiform.com once. Later versions then arrive through Check for Updates.
Licence terms
Your licence to use the app is set out in the Lattiform Licence and Purchase Terms at lattiform.com/licence-terms. Questions about this page: founder@lattiform.com.