From d2fe8a83035a6a21efec33cee1ef73a4a217a09f Mon Sep 17 00:00:00 2001 From: jyviko <2501648+jyviko@users.noreply.github.com> Date: Wed, 14 Oct 2026 00:51:05 -0400 Subject: [PATCH] README: what FieldCraft does today, and the current status Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm --- README.md | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 014d4d5..1887acc 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # FieldCraft -An open-source, clean-room CAE modeling application in pure Rust: geometry to analysis-ready -finite element models, with robust tetrahedral and hexahedral meshing, solver decks for Abaqus, -Nastran and LS-DYNA, and its own linear static and modal solver. Desktop, browser and AI agents -drive the same commands. +An open-source, clean-room CAE application in pure Rust: from a parametric SolidCraft part to a +verified finite element analysis, with tetrahedral and hexahedral meshing, its own implicit, +explicit, thermal and lattice Boltzmann solvers, and decks for Abaqus, Nastran and LS-DYNA. The +desktop app, the command line and AI agents (over MCP) drive the same commands. -**Status:** early. The workspace, quality gates, the FE model, the command engine and the -geometry boundary (SolidCraft's kernel and tessellator) are in place; meshing is next. See -[ROADMAP.md](ROADMAP.md). +**Status:** early but working end to end — open a part, mesh it, define the analysis, solve, +see the results. Hex meshing is the centre of gravity; the next large step is the nonlinear +implicit solver that contact, elastomers and composites need. See [ROADMAP.md](ROADMAP.md). ![An AI agent analyses an I-beam cantilever in FieldCraft over MCP: open, hex mesh, steel, clamp and tip load, solve, von Mises contours, the deformed shape and an orbit round it](docs/media/ibeam-analysis.gif) @@ -17,6 +17,34 @@ solves, and shows the von Mises stress and the deformed shape (tip deflection 0. theory with shear 0.177 mm). [MP4](docs/media/ibeam-analysis.mp4) · regenerated by [tools/demo-video](tools/demo-video/README.md). +## What it does today + +- **Geometry in:** SolidCraft designs (`.solidcraft`) with persistent face, edge and body names, + and face-tagged 3MF meshes; surface checks (weld, manifold, orientation, self-intersection). +- **Meshing:** constrained Delaunay tetrahedra (tet4, tet10) with exact predicates and a + certified validity gate; structured hex by sweeping, revolving and mapping (hex8, hex20; 16 of + the 21 corpus parts mesh all-hex); 2D quad and tri meshes; quality metrics per element and set. +- **Elements:** solids (tet4, tet10, wedge6, hex8 with incompatible modes, hex20 full and + reduced, hybrid u–p for near-incompressible materials), plane stress, plane strain and + axisymmetric, trusses, Timoshenko beams, MITC3/MITC4 shells, springs, dashpots and point masses. +- **Model:** sets bound to geometry names, so they survive remeshing; isotropic and orthotropic + elasticity, J2 plasticity, Johnson–Cook damage, thermal properties; fixed, displacement, + symmetry and temperature conditions; forces, moments, pressure, gravity, centrifugal and heat + loads; reference points with kinematic and distributing couplings; undo, redo and a + text-diffable `.fieldcraft` file. +- **Solvers:** linear static and frequency (supernodal Cholesky, block Lanczos); steady and + transient heat transfer and coupled thermal stress; explicit dynamics with plasticity, damage, + erosion and rigid walls; D3Q19 lattice Boltzmann flow with forces on the part's faces. Results + never depend on the thread count. +- **Decks:** Abaqus, Nastran and LS-DYNA writers, each refusing by name what it cannot express. +- **Results:** contours of stress, strain and displacement with a legend, deformed shapes, mode + shapes, explicit frames, probes and reaction sums; the analysis setup drawn in the viewport. +- **Verification:** every capability is checked against closed forms and published benchmarks + (NAFEMS, MacNeal–Harder, Scordelis–Lo) in [`tests/oracle`](tests/oracle), with results frozen + so they cannot drift: [docs/oracle.md](docs/oracle.md). +- **Driving it:** a desktop app in the Craft family's layout, a CLI, a JSON control channel and an + MCP server; every capability is a command ([docs/features.md](docs/features.md)). + ## Build ```sh @@ -32,6 +60,8 @@ Rust 1.95 or later, with the `wasm32-unknown-unknown` target for `cargo xtask ci ## Documentation - [Architecture](docs/architecture.md): crates, layers and the meshing pipeline +- [Element library](docs/elements.md) and [verification and validation](docs/verification.md) +- [Capability checklist](docs/parity.md) and [roadmap](ROADMAP.md) - [Libraries and licences](docs/adr/0001-libraries.md) - [AI agents (MCP)](docs/mcp.md): `claude mcp add fieldcraft -- /path/to/fieldcraft-cli mcp` - [Control protocol](docs/control-protocol.md): driving the desktop app