Files
OneCAD-Simulation/docs/features.md
T
5afd1addb9 Structured hex: extrude, revolve, sweep and mapped all-hex meshing (M5) (#40)
* Structured hex meshing: multi-level extrude and revolve, one-to-one sweep, mapped blocks (M5)

modelcraft_mesh::hex::hex_mesh meshes a face-tagged boundary surface with
hexahedra by the first structured method that fits: a straight or
rotational multi-level sweep (imprinted cross-section arrangement, cuts at
reflex corners, mapped/annulus/free regions), a one-to-one sweep through
rings of linking faces (least-squares affine layers with residual
correction), or a mapped logical cube (trivariate transfinite
interpolation). Interval assignment couples shared curves; boundary quads
carry B-rep face tags; the certified validity gate, a tiling check and a
fidelity check guard the output; hex20 mid-edge nodes go onto the faces.
Shape::face_surfaces exposes the analytic face surfaces; the corpus runner
gets a structured hex column.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* mesh.hex.generate: structured hex meshing as a command

Meshes one body, every body of the open design or an imported surface,
replaces the mesh, tags element faces with the B-rep faces (so sets by
geometry resolve) and reports per body the method, counts and quality.
The quality pass certifies each element once and feeds the validity gate
(quality::validity_gate_checks). Shape::size gives the cached body size
for defaults instead of a full measure.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Hex: disk O-grids, convex interval cost, early size guard, hex20 corpus column

Smooth single-loop sections (cylinders, tori, vases) get a butterfly O-grid
instead of the free mesher; interval assignment raises counts by the
squared relative error so equal sides share increments evenly; a mesh far
beyond the element limit is refused before any work and mapped limits are
no longer swallowed. The corpus reports hex8 and hex20 quality.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Catalogue: structured hex commands ready (mesh.hex.sweep, mesh.hex.mapped, mesh.hex.generate)

mesh.hex.sweep and mesh.hex.mapped run mesh.hex.generate with the sweeping
methods or the mapped one; mesh.hex.generate is the sweep entry's related
command. The planned M6 octree entry moves to mesh.hex.octree (its icon
renamed with it). docs/features.md regenerated.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Docs: structured hex literature (B8), architecture, roadmap, parity; corpus hex column

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Hex: simplify review fixes

Prepare each sweep frame's cross-section once (arrangement, cuts, fill)
and reuse it across refinement retries; candidate frames come from one
setup pass. Edge triangles come from the feature edges, layer counts go
through size::edge_divisions, sweep residual weights are computed once
per node, flux shape functions live on the stack, and the arrangement's
exact side test and distances serve the region probe. The engine takes
the boundary options mesh.tet.generate takes and names unnamed faces by
index like it; the corpus hex20 run reuses the winning method; the
mapped entry lists mesh.hex.generate too; the octree icon is redrawn
under its new id.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Regenerate docs/features.md and docs/meshing/corpus.md after rebasing

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Regenerate docs/features.md and docs/meshing/corpus.md after rebasing onto main

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Regenerate docs/features.md and docs/meshing/corpus.md after rebasing onto main

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Regenerate docs/features.md and docs/meshing/corpus.md after rebasing onto main

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Regenerate docs/features.md after rebasing onto main

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Regenerate docs/features.md after rebasing onto main

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

* Regenerate docs/features.md after rebasing onto main

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm

---------

Co-authored-by: jyviko <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-13 22:25:50 -04:00

13 KiB
Raw Blame History

Features

Generated from the capability catalogue (crates/engine/src/catalogue.rs) by cargo run -p modelcraft-cli -- features > docs/features.md; a test fails when it is out of date. Every entry is a toolbar button. Ready entries run their command; coming soon entries are shown greyed with the roadmap milestone that brings them (ROADMAP.md). Scripts, the command line, the control channel and AI agents over MCP (docs/mcp.md) run the same commands.

54 ready, 49 coming soon.

Geometry

Panel Capability Status Command
Import Open Design — Open a SolidCraft design: its bodies with persistent face names ready geometry.open
Import Tagged Mesh — Read a face-tagged surface mesh (3MF) ready geometry.import.mesh
Inspect Bodies — List the open design's bodies, volumes and named faces ready geometry.bodies
Inspect Tessellate — Tessellate a body into a face-tagged boundary surface ready geometry.tessellate
Inspect Check Surface — Weld, closed, manifold, orientation and self-intersection checks; feature edges ready mesh.surface.check
Prepare Partition — Split bodies and faces as SolidCraft features coming soon (M5)
Prepare Datum Plane — Construction planes for partitions coming soon (M5)
Prepare Midsurface — Extract midsurfaces of thin parts for shell meshes coming soon (M8)

Mesh

Panel Capability Status Command
Size Global Size — One element size for the whole part coming soon (M2)
Size Seed Edges — Element counts, sizes and bias per edge and face coming soon (M2)
Size Curvature — Refine by curvature and proximity coming soon (M2)
Tet Tet Mesh — Constrained Delaunay tet mesh of a body: every boundary triangle kept, faces tagged (refinement comes next) ready mesh.tet.generate
Tet Quadratic — Second-order elements with mid-side nodes on the geometry coming soon (M2)
Tet Delaunay Points — Delaunay tetrahedralization of a point list (debugging aid) ready mesh.delaunay.points
2D 2D Mesh — Quad or triangle mesh of a planar face or polygon in the XY plane for plane stress, plane strain and axisymmetric models; edges tagged ready mesh.planar
Structured Hex Quad Faces — All-quad meshes of faces on shared edge nodes coming soon (M5)
Structured Hex Mapped Hex — Mapped hex mesh of a six-sided block (curved faces allowed) ready mesh.hex.mapped, mesh.hex.generate
Structured Hex Sweep Hex — Hex mesh swept along extrusions (several levels), around revolutions, or from a source face to a target ready mesh.hex.sweep, mesh.hex.generate
Structured Hex Decompose — Find sweepable and mappable regions and propose the splits coming soon (M5)
Structured Hex Transition — Conforming tet–hex interfaces with pyramids coming soon (M5)
Automatic Hex All-Hex — Octree dual all-hex mesh of any part coming soon (M6)
Automatic Hex Hex-Dominant — Hex-dominant mesh by recombining tets coming soon (M6)
Automatic Hex Polycube — Polycube hex mesh of blocky parts coming soon (M6)
Improve Smooth — Smooth node positions, keeping every element valid coming soon (M6)
Improve Untangle — Repair inverted elements coming soon (M6)
Improve Layers — Boundary padding and layers through thin walls coming soon (M6)
Edit Node — Add a node ready mesh.node.add, mesh.node.remove
Edit Element — Add an element on existing nodes, or a mapped block of them ready mesh.element.add, mesh.element.remove, mesh.block
Edit Merge Nodes — Merge coincident nodes coming soon (M6)
Edit Remesh Region — Remesh a region in place; split and collapse elements coming soon (M6)
Edit Orphan Mesh — Import a mesh without geometry coming soon (M6)
Verify Quality — Quality metrics and the certified validity check, failing elements listed ready mesh.quality
Verify Verify Set — Quality and validity per set coming soon (M2)
Verify Tag Geometry — Tag elements, faces, edges and nodes with the geometry they mesh ready mesh.tag, mesh.tag.clear

Properties

Panel Capability Status Command
Materials Material — Elastic (isotropic, orthotropic) material with density ready model.material.create, model.material.edit, model.material.delete
Materials Plasticity — Von Mises plasticity: bilinear, hardening table or Johnson–Cook ready model.material.plasticity
Materials Hyperelastic — Hyperelastic material models coming soon (M8)
Materials Damage — Johnson–Cook damage and element erosion ready model.material.damage
Materials Thermal — Conductivity, specific heat and expansion coming soon (M8)
Materials Equation of State — Polynomial, ideal gas, Mie–Grüneisen, JWL and tabulated equations of state coming soon (M11)
Sections Section — Solid, shell, beam, rod or 2D (plane stress, plane strain, axisymmetric) section assigned to a set, with its element formulation ready model.section.create, model.section.edit, model.section.delete
Sections Composite — Composite layups and continuum shells coming soon (M8)
Sections Orientation — Material orientations coming soon (M8)
Sets Set — A set of nodes, elements and faces, or of named geometry that survives remeshing ready model.set.create, model.set.edit, model.set.delete, model.set.resolve
Model Units — The model's unit system (never converted) ready model.units

Assembly

Panel Capability Status Command
Instances Instances — Part instances placed from SolidCraft occurrences coming soon (M7)

Steps

Panel Capability Status Command
Steps Step — A linear static or frequency step with its output ready model.step.create, model.step.edit, model.step.delete
Steps Activate — Choose which loads and boundary conditions act in a step ready model.step.activate
Steps Step Table — The step by load and boundary condition table ready model.activity
Procedures Amplitude — Time and frequency amplitudes coming soon (M7)
Procedures Nonlinear — Nonlinear static steps coming soon (M7)
Procedures Explicit — Explicit dynamic steps coming soon (M8)
Procedures Heat Transfer — Heat transfer steps coming soon (M8)

Loads & BCs

Panel Capability Status Command
Boundary Conditions Boundary Condition — Fixed, displacement or symmetry condition on a set or reference point ready model.boundary_condition.create, model.boundary_condition.edit, model.boundary_condition.delete
Loads Load — Force, moment, pressure, traction, gravity or body force ready model.load.create, model.load.edit, model.load.delete
Flow Fluid Domain — The box of fluid cells, its fluid, and the obstacle bodies voxelised from their face-tagged surfaces ready model.fluid_domain.create, model.fluid_domain.edit, model.fluid_domain.delete
Flow Inlet & Outlet — Velocity inlets, pressure outlets, walls, moving and slip walls, periodic faces ready model.fluid_domain.boundary

Interactions

Panel Capability Status Command
Constraints Reference Point — A reference point for couplings, loads and boundary conditions ready model.reference_point.create, model.reference_point.edit, model.reference_point.delete
Constraints Coupling — Kinematic or distributing coupling of a set to a reference point ready model.coupling.create, model.coupling.edit, model.coupling.delete
Constraints Tie — Tie non-matching meshes together coming soon (M7)
Contact General Contact — Contact between everything that touches, with friction coming soon (M7)
Contact Contact Pair — Contact between two surfaces coming soon (M7)
Contact Find Contacts — Detect contact pairs automatically coming soon (M7)
Contact Rigid Wall — Rigid walls for explicit dynamics coming soon (M10)
Connectors Bolt Load — Bolt pretension coming soon (M7)
Connectors Spring — Spring or dashpot to the ground or between two points, along a direction or their line ready model.spring.create, model.spring.edit, model.spring.delete
Connectors Point Mass — Point mass and rotary inertia at nodes or a reference point ready model.mass.create, model.mass.edit, model.mass.delete
Connectors Connector — Connector elements between points coming soon (M7)
Coupled FSI Interface — The fluid–structure interface coming soon (M13)

Solve

Panel Capability Status Command
Run Solve — Solve every step in order and show the results ready solve.run
Check Check Model — Name every missing or bad definition before writing or solving ready model.check
Decks Abaqus Input — Write an Abaqus input file (.inp) ready deck.write {"format":"abaqus"}
Decks Nastran Deck — Write Nastran bulk data (SOL 101, 103) ready deck.write {"format":"nastran"}
Decks LS-DYNA Deck — Write an LS-DYNA keyword file ready deck.write {"format":"lsdyna"}
Decks Read Deck — Read a deck, keeping keywords ModelCraft does not know coming soon (M9)
Implicit Static — Linear static (or coupled temperature–displacement) solve of a step with ModelCraft's own solver; heat transfer in the drop-down ready solve.static, solve.heat
Implicit Frequency — Natural frequencies and mode shapes of a frequency step ready solve.frequency
Explicit Explicit — Transient dynamics of an explicit step by central differences (contact and erosion coming in M10) ready solve.explicit
Explicit Blast & Impact — EOS-driven fluids with fluid–structure contact (ALE or SPH) coming soon (M14)
Fluids Lattice Boltzmann — Lattice Boltzmann flow of a fluid step on the CPU, with wall forces ready solve.fluid
Fluids Fluid–Structure — Coupled fluid and structure solve coming soon (M13)

Results

Panel Capability Status Command
Display Deformed — The deformed shape of a solved step, to scale ready results.deformed, results.clear
Display Contours — Contours of displacement and stress, with a legend ready results.contour
Display Mode Shapes — Mode shapes and frequencies of a frequency step ready results.modes
Display Animate — Animate the deformed shape, a mode or an explicit step's frames ready results.animate, results.frame
Query Probe — Displacement, rotation, reaction and stress at nodes, element section forces, a mode shape, or an explicit field frame (or click the model) ready solve.probe, solve.history
Query Reactions — Reaction force and moment sums per set ready results.reactions
Query Free Body — Free-body forces across a cut coming soon (M9)
Plots XY Plot — Plot a quantity against time or another coming soon (M9)
Plots Path Plot — Plot a quantity along a path coming soon (M9)
Plots Cut — Section cuts through the model coming soon (M9)
Plots Display Group — Show and hide parts of the model coming soon (M9)
Plots Streamlines — Streamlines and flow fields coming soon (M12)
Files Read Results — Read results in public formats coming soon (M9)
Files Convergence — Mesh convergence studies coming soon (M9)

Tools

Panel Capability Status Command
Model Model Info — Node and element counts and the model summary ready model.info
File Open Model — Open a .modelcraft model ready file.open
File Samples — Open a sample model, ready to solve ready file.sample
File Save — Save the model to its .modelcraft file ready file.save
File Save As — Save the model to a new .modelcraft file ready file.save_as
File Recover — Open a model autosaved by an app that crashed or closed with unsaved changes ready file.recover, file.recovery.list, file.recovery.discard
History Undo — Undo the last command that changed the model ready edit.undo
History Redo — Redo the command undone last ready edit.redo