CalculiX-Preprocessor

The goal is to develop a Linux preprocessor for CalculiX that allows importing CAD geometry, meshing, and model setup.


Roadmap

ObjectivePriorityTools
Importing 3D Models1Gmsh or Rust STL parser
Meshing1Gmsh called as a plugin through libloading from .so file
General UI1GTK 4
3D Visualization1three-d, wgpu, bevy
CalculiX Model Development1GTK 4
.inp File Generation1Called a plugin through libloading allowing users to create plugins for any solver input file format
ccx Job Submission1Rust external commands
.inp Model Import2native Rust
scripting using lua or python2rlua for lua and pyo3 for python
Protocol for arbitrary meshing toolkit integration2wasmtime or wasmer for allowing interfacing with any WASM compatible language
Protocol for calling arbitrary external tools2tokio for async process calls
API exposure2axum, tonic, pyo3
Serializaion2serde, serde_json, prost, serde_yaml
CAD Functionality2OpenCASCADE or Gmsh occ API
Post Processing3Initially export .vtu files by converting .frd; eventually develop a custom viewer

Notes

  • Qt looks better than GTK 4 but Qt is not fully integrated with Rust yet.
  • UI inspiration comes from ANSA and Abaqus/CAE.
  • bevy is powerful but heavy and less GTK-friendly.

Phased Approach

The roadmap is divided into priorities to focus on core functionality first (priority 1), then add CAD modeling features (priority 2), and finally post-processing capabilities (priority 3). This phased approach ensures a stable, usable product early on, with gradual enhancements.


Extensibility

  • Provide API for function calls to allow scripting and automation.
    • APIs can accesses anything the the software does. This will be implemented by mapping every function in source to a python function in the API
    • In addition the API will be able to access data structures for mesh, materials, loads etc.
  • Provide archtecture for developing meshing plugins.
    • Allow writing in any WASM compatible language and loading through .so files
    • Allow async sys calls through tokio
    • Query plugin capabilities for geometry import, export etc

License

The software should use a less restrictive license like MIT to allow industry users to develop proprietary forks, which would ease adoption. The aim is not to make all extensions of the code strictly open source but to enable industry to adopt Linux for CAE.