# Atomizer > Advanced optimization platform for Siemens NX Simcenter with LLM-powered configuration [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![License](https://img.shields.io/badge/license-Proprietary-red.svg)](LICENSE) [![Status](https://img.shields.io/badge/status-alpha-yellow.svg)](https://github.com) ## 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 1. **Clone the repository**: ```bash git clone https://github.com/Anto01/Atomizer.git cd Atomizer ``` 2. **Create Python environment**: ```bash conda create -n atomizer python=3.10 conda activate atomizer ``` 3. **Install dependencies**: ```bash pip install -e . # For development tools: pip install -e ".[dev]" # For MCP server: pip install -e ".[mcp]" ``` 4. **Configure NX path** (edit `config/nx_config.json`): ```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`: ```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: ```bash 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](docs/configuration.md) for full schema documentation. **Key sections**: - `design_variables`: Parameters to optimize - `objectives`: Metrics to minimize/maximize - `nx_settings`: NX/FEA solver configuration - `optimization`: Optuna sampler settings - `post_processing`: Result extraction pipelines ## Development ### Running Tests ```bash pytest ``` ### Code Formatting ```bash black . ruff check . ``` ### Building Documentation ```bash cd docs mkdocs build ``` ## Roadmap - [x] MCP server foundation - [x] 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](mailto:contact@atomaste.com) for access. ## License Proprietary - Atomaste © 2025 ## Support - **Documentation**: [docs/](docs/) - **Examples**: [examples/](examples/) - **Issues**: GitHub Issues (private repository) - **Email**: support@atomaste.com ## Resources ### NXOpen References - **Official API Docs**: [Siemens NXOpen .NET Documentation](https://docs.sw.siemens.com/en-US/doc/209349590/) - **NXOpenTSE**: [The Scripting Engineer's Documentation](https://nxopentsedocumentation.thescriptingengineer.com/) (reference for patterns and best practices) - **Our Guide**: [NXOpen Resources](docs/NXOPEN_RESOURCES.md) ### Optimization - **Optuna Documentation**: [optuna.readthedocs.io](https://optuna.readthedocs.io/) - **pyNastran**: [github.com/SteveDoyle2/pyNastran](https://github.com/SteveDoyle2/pyNastran) --- **Built with ❤️ by Atomaste** | Powered by Optuna, NXOpen, and Claude