forked from 1b-agent/fieldcraft-upstream
README: what FieldCraft does today, and the current status
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
This commit is contained in:
1 parent
65bd16a342
commit
d2fe8a8303
1 file changed
+37
-7
@@ -1,13 +1,13 @@
|
|||||||
# FieldCraft
|
# FieldCraft
|
||||||
|
|
||||||
An open-source, clean-room CAE modeling application in pure Rust: geometry to analysis-ready
|
An open-source, clean-room CAE application in pure Rust: from a parametric SolidCraft part to a
|
||||||
finite element models, with robust tetrahedral and hexahedral meshing, solver decks for Abaqus,
|
verified finite element analysis, with tetrahedral and hexahedral meshing, its own implicit,
|
||||||
Nastran and LS-DYNA, and its own linear static and modal solver. Desktop, browser and AI agents
|
explicit, thermal and lattice Boltzmann solvers, and decks for Abaqus, Nastran and LS-DYNA. The
|
||||||
drive the same commands.
|
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
|
**Status:** early but working end to end — open a part, mesh it, define the analysis, solve,
|
||||||
geometry boundary (SolidCraft's kernel and tessellator) are in place; meshing is next. See
|
see the results. Hex meshing is the centre of gravity; the next large step is the nonlinear
|
||||||
[ROADMAP.md](ROADMAP.md).
|
implicit solver that contact, elastomers and composites need. See [ROADMAP.md](ROADMAP.md).
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -17,6 +17,34 @@ solves, and shows the von Mises stress and the deformed shape (tip deflection 0.
|
|||||||
theory with shear 0.177 mm).
|
theory with shear 0.177 mm).
|
||||||
[MP4](docs/media/ibeam-analysis.mp4) · regenerated by [tools/demo-video](tools/demo-video/README.md).
|
[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
|
## Build
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -32,6 +60,8 @@ Rust 1.95 or later, with the `wasm32-unknown-unknown` target for `cargo xtask ci
|
|||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
- [Architecture](docs/architecture.md): crates, layers and the meshing pipeline
|
- [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)
|
- [Libraries and licences](docs/adr/0001-libraries.md)
|
||||||
- [AI agents (MCP)](docs/mcp.md): `claude mcp add fieldcraft -- /path/to/fieldcraft-cli mcp`
|
- [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
|
- [Control protocol](docs/control-protocol.md): driving the desktop app
|
||||||
|
|||||||
Reference in new issue
Block a user