a267e2d6f0be57c63260aae1ae0cc5744f200efa
Round design variables, objectives, and constraints to appropriate decimal precision based on physical units (4 decimals for mm, degrees, MPa). - Added _get_precision() method with unit-based precision mapping - Round design variables when sampled from Optuna - Round extracted results (objectives and constraints) - Added units field to objectives in config files - Tested: values now show 4 decimals instead of 17+ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Atomizer
Advanced optimization platform for Siemens NX Simcenter with LLM-powered configuration
Overview
Atomizer is a next-generation optimization framework for Siemens NX that combines:
- LLM-Driven Configuration: Use natural language to set up complex optimizations
- Advanced Algorithms: Optuna-powered TPE, Gaussian Process surrogates, multi-fidelity optimization
- Real-Time Monitoring: Interactive dashboards with live updates
- Flexible Architecture: Pluggable result extractors for any FEA analysis type
- MCP Integration: Extensible via Model Context Protocol
Architecture
┌─────────────────────────────────────────────────────────┐
│ UI Layer │
│ Web Dashboard (React) + LLM Chat Interface (MCP) │
└─────────────────────────────────────────────────────────┘
↕
┌─────────────────────────────────────────────────────────┐
│ MCP Server │
│ - Model Discovery - Config Builder │
│ - Optimizer Control - Result Analyzer │
└─────────────────────────────────────────────────────────┘
↕
┌─────────────────────────────────────────────────────────┐
│ Execution Layer │
│ NX Core (NXOpen) + Optuna Engine + Custom Scripts │
└─────────────────────────────────────────────────────────┘
Quick Start
Prerequisites
- Siemens NX 2412 with NX Nastran solver
- Python 3.10+ (recommend Anaconda)
- Node.js 18+ (for dashboard frontend)
Installation
-
Clone the repository:
git clone https://github.com/Anto01/Atomizer.git cd Atomizer -
Create Python environment:
conda create -n atomizer python=3.10 conda activate atomizer -
Install dependencies:
pip install -e . # For development tools: pip install -e ".[dev]" # For MCP server: pip install -e ".[mcp]" -
Configure NX path (edit
config/nx_config.json):{ "nx_executable": "C:/Program Files/Siemens/NX2412/NXBIN/ugraf.exe", "python_env": "C:/Users/YourName/anaconda3/envs/atomizer/python.exe" }
Basic Usage
1. Conversational Setup (via MCP)
You: My FEA is in C:\Projects\Bracket\analysis.sim, please import its features.
AI: I've analyzed your model:
- Solution: Static Analysis (NX Nastran)
- Expressions: wall_thickness (5mm), hole_diameter (10mm)
- Mesh: 8234 nodes, 4521 elements
Which parameters would you like to optimize?
You: Optimize wall_thickness and hole_diameter to minimize max stress while keeping mass low.
AI: Configuration created! Ready to start optimization with 100 iterations.
Would you like to review the config or start now?
You: Start it!
AI: Optimization launched! 🚀
Dashboard: http://localhost:8080/dashboard
2. Manual Configuration (JSON)
Create optimization_config.json:
{
"design_variables": {
"wall_thickness": {
"low": 3.0,
"high": 8.0,
"enabled": true
}
},
"objectives": {
"metrics": {
"max_stress": {
"weight": 10,
"target": 200,
"extractor": "nastran_stress"
}
}
},
"nx_settings": {
"sim_path": "C:/Projects/Bracket/analysis.sim",
"solution_name": "Solution 1"
}
}
Run optimization:
python -m optimization_engine.run_optimizer --config optimization_config.json
Features
✨ Core Capabilities
- Multi-Objective Optimization: Weighted sum, Pareto front analysis
- Smart Sampling: TPE, Latin Hypercube, Gaussian Process surrogates
- Result Extraction: Nastran (OP2/F06), NX Mass Properties, custom parsers
- Crash Recovery: Automatic resume from interruptions
- Parallel Evaluation: Multi-core FEA solving (coming soon)
📊 Visualization
- Real-time progress monitoring
- 3D Pareto front plots (Plotly)
- Parameter importance charts
- Convergence history
- FEA result overlays
🔧 Extensibility
- Pluggable result extractors: Add custom metrics easily
- Custom post-processing scripts: Python integration
- MCP tools: Extend via protocol
- NXOpen API access: Full NX automation
Project Structure
Atomizer/
├── mcp_server/ # MCP server implementation
│ ├── tools/ # MCP tool definitions
│ ├── schemas/ # JSON schemas for validation
│ └── prompts/ # LLM system prompts
├── optimization_engine/ # Core optimization logic
│ ├── result_extractors/ # Pluggable metric extractors
│ ├── multi_optimizer.py # Optuna integration
│ ├── config_loader.py # Configuration parser
│ └── history_manager.py # CSV/SQLite persistence
├── nx_journals/ # NXOpen Python scripts
│ ├── update_and_solve.py # CAD update + solver
│ ├── post_process.py # Result extraction
│ └── utils/ # Helper functions
├── dashboard/ # Web UI
│ ├── frontend/ # React app
│ └── backend/ # FastAPI server
├── tests/ # Unit tests
├── examples/ # Example projects
└── docs/ # Documentation
Configuration Schema
See docs/configuration.md for full schema documentation.
Key sections:
design_variables: Parameters to optimizeobjectives: Metrics to minimize/maximizenx_settings: NX/FEA solver configurationoptimization: Optuna sampler settingspost_processing: Result extraction pipelines
Development
Running Tests
pytest
Code Formatting
black .
ruff check .
Building Documentation
cd docs
mkdocs build
Roadmap
- MCP server foundation
- Basic optimization engine
- NXOpen integration
- Web dashboard
- Multi-fidelity optimization
- Parallel evaluations
- Sensitivity analysis tools
- Export to engineering reports
Contributing
This is a private repository. Contact contact@atomaste.com for access.
License
Proprietary - Atomaste © 2025
Support
- Documentation: docs/
- Examples: examples/
- Issues: GitHub Issues (private repository)
- Email: support@atomaste.com
Resources
NXOpen References
- Official API Docs: Siemens NXOpen .NET Documentation
- NXOpenTSE: The Scripting Engineer's Documentation (reference for patterns and best practices)
- Our Guide: NXOpen Resources
Optimization
- Optuna Documentation: optuna.readthedocs.io
- pyNastran: github.com/SteveDoyle2/pyNastran
Built with ❤️ by Atomaste | Powered by Optuna, NXOpen, and Claude
Description
Languages
Python
82.9%
TypeScript
16%
Shell
0.6%
Batchfile
0.3%
PowerShell
0.1%