[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2798":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":18,"compositeScore":19,"rankGlobal":8,"rankLanguage":8,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":8,"pushedAt":8,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":14,"starSnapshotCount":14,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},2798,"text-to-cae","Cai-aa\u002Ftext-to-cae","Cai-aa",null,"Python",381,49,1,3,0,36,83,232,108,5.1,"MIT License",false,"main",true,[],"2026-06-12 02:00:44","# Text to CAE\n\n**Language:** English | [中文](README.zh-CN.md)\n\n![Text to CAE preview](assets\u002Ftext-to-cae-preview.png)\n\nText to CAE is a local Abaqus simulation workspace with a browser-based result viewer. It is designed for workflows where an AI coding client, such as Codex, Cursor, or Claude Desktop, writes and edits Abaqus Python scripts, runs Abaqus\u002FCAE, exports solver results, and displays those results in an interactive web UI.\n\nThe project connects three layers:\n\n- **Abaqus\u002FCAE** builds models, runs jobs, and writes ODB result databases.\n- **Abaqus MCP** lets an AI client inspect and control a live Abaqus\u002FCAE session.\n- **Text to CAE Viewer** loads exported `result_mesh.json`, project metadata, parameters, time frames, contours, and model trees in the browser.\n\nRepository:\n\n```text\nhttps:\u002F\u002Fgithub.com\u002FCai-aa\u002Ftext-to-cae\n```\n\nCompanion Abaqus MCP repository:\n\n```text\nhttps:\u002F\u002Fgithub.com\u002FCai-aa\u002Fabaqus-mcp\n```\n\n## Recommended Workflow\n\n```text\nCodex or another MCP-capable AI client\n  -> connects to Abaqus\u002FCAE through Abaqus MCP\n  -> creates or edits Abaqus Python scripts\n  -> asks Abaqus to build, mesh, solve, and read ODB data\n  -> exports result_mesh.json\n  -> opens the Text to CAE browser viewer\n```\n\nThis keeps the responsibilities clear:\n\n- The AI client handles natural-language changes, code editing, debugging, and automation.\n- Abaqus\u002FCAE handles the real solver work.\n- The browser viewer handles fast interactive inspection of CAE results.\n\n## Requirements\n\n- Windows\n- Node.js and npm\n- Abaqus\u002FCAE for solver-backed runs\n- Python available to Abaqus scripts\n- Optional: an MCP-capable AI client plus [Abaqus MCP](https:\u002F\u002Fgithub.com\u002FCai-aa\u002Fabaqus-mcp)\n\nThe viewer can display any case that already has a `result_mesh.json`. Abaqus is only required when you want to regenerate solver output or run a case from the browser.\n\n## Install and Run the Viewer\n\nClone the project:\n\n```powershell\ngit clone https:\u002F\u002Fgithub.com\u002FCai-aa\u002Ftext-to-cae.git\nSet-Location .\\text-to-cae\n```\n\nInstall viewer dependencies:\n\n```powershell\nSet-Location .\\viewer\nnpm.cmd install\n```\n\nStart the local viewer:\n\n```powershell\nnpm.cmd run dev\n```\n\nOpen:\n\n```text\nhttp:\u002F\u002F127.0.0.1:4178\u002F\n```\n\nIf port `4178` is already in use, choose another port:\n\n```powershell\n$env:VIEWER_PORT = \"4181\"\nnpm.cmd run dev\n```\n\nThen open:\n\n```text\nhttp:\u002F\u002F127.0.0.1:4181\u002F\n```\n\n## Open Example Cases\n\nUse the `case` query parameter to open a specific simulation:\n\n```text\nhttp:\u002F\u002F127.0.0.1:4178\u002F?case=cantilever\nhttp:\u002F\u002F127.0.0.1:4178\u002F?case=hole-plate\nhttp:\u002F\u002F127.0.0.1:4178\u002F?case=hole-plate-modal\nhttp:\u002F\u002F127.0.0.1:4178\u002F?case=sphere-impact\nhttp:\u002F\u002F127.0.0.1:4178\u002F?case=milling-3d\nhttp:\u002F\u002F127.0.0.1:4178\u002F?case=gear-mesh\nhttp:\u002F\u002F127.0.0.1:4178\u002F?case=bullet-plate\n```\n\nThe viewer includes an Abaqus-style result viewport:\n\n```text\nhttp:\u002F\u002F127.0.0.1:4178\u002F?case=sphere-impact&mode=cae\n```\n\n## Browser-to-Abaqus Runs\n\nThe Vite dev server includes local CAE API endpoints:\n\n```text\n\u002F__cae\u002Fproject\n\u002F__cae\u002Fresult-mesh\n\u002F__cae\u002Fresult-summary\n\u002F__cae\u002Fparameters\n\u002F__cae\u002Frun\n```\n\nFor runnable examples, the browser can update parameters and trigger Abaqus noGUI execution:\n\n```text\nviewer\n  -> \u002F__cae\u002Frun\n  -> Abaqus noGUI\n  -> *_abaqus.py\n  -> export_*.py\n  -> result_mesh.json\n  -> viewer refresh\n```\n\nBy default the viewer looks for Abaqus at:\n\n```text\nG:\\SIMULIA\\Commands\\abaqus.bat\n```\n\nIf Abaqus is installed elsewhere, set `ABAQUS_COMMAND` before starting the viewer:\n\n```powershell\n$env:ABAQUS_COMMAND = \"C:\\SIMULIA\\Commands\\abaqus.bat\"\nnpm.cmd run dev\n```\n\n## Case File Layout\n\nEach example case normally contains:\n\n```text\nmodels\u002F\u003Ccase>\u002F\n  cae_parameters.json\n  cae_project.json\n  *_abaqus.py\n  export_*.py\n  result_mesh.json\n```\n\nFile roles:\n\n- `*_abaqus.py` builds the Abaqus model, assigns materials, meshes, defines steps, applies loads and boundary conditions, and submits the job.\n- `export_*.py` reads ODB output and exports browser-readable mesh, contour, displacement, modal, or dynamic-frame data.\n- `result_mesh.json` is the main result payload loaded by the viewer.\n- `cae_project.json` stores project metadata, workflow state, model tree data, output paths, and result metrics.\n- `cae_parameters.json` stores editable input parameters used by the browser run panel.\n\n## Included Examples\n\n| Case | Directory | Description |\n| --- | --- | --- |\n| Cantilever beam | `models\u002Ftext-to-cae` | Static introductory case with displacement and stress contours. |\n| Plate with hole | `models\u002Ftext-to-cae-hole-plate` | Tensile plate with circular-hole stress concentration. |\n| Plate with hole modal | `models\u002Ftext-to-cae-hole-plate-modal` | Frequency extraction case with modal frames. |\n| Sphere impact | `models\u002Ftext-to-cae-sphere-impact` | Explicit dynamics example showing sphere-to-plate contact, impact, indentation, and rebound. |\n| 3D milling | `models\u002Ftext-to-cae-milling-3d` | End-milling dynamics visualization with editable machining parameters. |\n| Gear mesh | `models\u002Ftext-to-cae-gear-mesh` | Spur gear meshing dynamics with driver and driven gear parameters. |\n| Bullet plate | `models\u002Ftext-to-cae-bullet-plate` | High-speed projectile penetration example. |\n\nSome large result files are intentionally not committed. Regenerate them locally with Abaqus or with the provided refresh scripts.\n\n## Refresh Visual Result Data\n\nSome examples include deterministic refresh scripts that can rebuild browser preview data without waiting for a full solver run:\n\n```powershell\nnode models\\text-to-cae-sphere-impact\\refresh_contact_result.mjs\nnode models\\text-to-cae-milling-3d\\refresh_visual_result.mjs\nnode models\\text-to-cae-gear-mesh\\refresh_gear_result.mjs\n```\n\n## Run Abaqus Scripts Directly\n\nYou can also run cases from the command line without using the browser run button.\n\nSphere impact:\n\n```powershell\n& \"G:\\SIMULIA\\Commands\\abaqus.bat\" cae noGUI=models\\text-to-cae-sphere-impact\\sphere_impact_abaqus.py\n& \"G:\\SIMULIA\\Commands\\abaqus.bat\" cae noGUI=models\\text-to-cae-sphere-impact\\export_dynamic_mesh.py\n```\n\n3D milling:\n\n```powershell\n& \"G:\\SIMULIA\\Commands\\abaqus.bat\" cae noGUI=models\\text-to-cae-milling-3d\\milling_abaqus.py\n& \"G:\\SIMULIA\\Commands\\abaqus.bat\" cae noGUI=models\\text-to-cae-milling-3d\\export_milling_mesh.py\n```\n\nGear mesh:\n\n```powershell\n& \"G:\\SIMULIA\\Commands\\abaqus.bat\" cae noGUI=models\\text-to-cae-gear-mesh\\gear_mesh_abaqus.py\n& \"G:\\SIMULIA\\Commands\\abaqus.bat\" cae noGUI=models\\text-to-cae-gear-mesh\\export_gear_mesh.py\n```\n\n## Connect Codex to Abaqus with MCP\n\nInstall Abaqus MCP:\n\n```powershell\ngit clone https:\u002F\u002Fgithub.com\u002FCai-aa\u002Fabaqus-mcp.git $env:USERPROFILE\\.abaqus-mcp\npip install mcp\n```\n\nLet Abaqus\u002FCAE load the MCP startup environment:\n\n```powershell\nCopy-Item -Force \"$env:USERPROFILE\\.abaqus-mcp\\abaqus_v6.env.example\" \"$env:USERPROFILE\\abaqus_v6.env\"\n```\n\nOptional GUI menu plugin:\n\n```powershell\nCopy-Item -Recurse -Force \"$env:USERPROFILE\\.abaqus-mcp\\abaqus_plugins\\mcp_control\" \"$env:USERPROFILE\\abaqus_plugins\\mcp_control\"\n```\n\nAfter restarting Abaqus\u002FCAE, start MCP from:\n\n```text\nPlug-ins -> MCP -> Start MCP\n```\n\nYou can also start it from the Abaqus Python console:\n\n```python\nmcp_start()\n```\n\nIf background threads are unstable in your Abaqus version, use the cooperative or blocking loop:\n\n```python\nmcp_coop_loop()\n```\n\nor:\n\n```python\nmcp_loop()\n```\n\nConfigure your MCP-capable client with the Abaqus MCP server. A typical shape is:\n\n```json\n{\n  \"mcpServers\": {\n    \"abaqus-mcp\": {\n      \"command\": \"python\",\n      \"args\": [\"C:\u002FUsers\u002F\u003Cyour-user>\u002F.abaqus-mcp\u002Fmcp_server.py\"]\n    }\n  }\n}\n```\n\nReplace `\u003Cyour-user>` with your Windows user name, or use an absolute Python interpreter path if `python` is not on `PATH`.\n\n## Viewer Controls\n\nThe UI is organized around:\n\n- A left model tree for project, parts, materials, assembly, steps, loads, boundary conditions, mesh, jobs, and results.\n- A central 3D viewport for contours, mesh edges, dynamic frames, modal shapes, tools, spheres, gears, projectiles, and other case objects.\n- A right panel for state, metrics, editable parameters, and run controls.\n\nCommon interactions:\n\n- Left drag: rotate the model.\n- Middle drag: pan the model.\n- Mouse wheel: zoom.\n- Play controls: animate dynamic or modal frames.\n- Theme controls: switch between Abaqus, dark, and light viewport styles.\n\n## Project Structure\n\n```text\ntext-to-cae\u002F\n  README.md\n  LICENSE\n  models\u002F\n    text-to-cae\u002F\n    text-to-cae-hole-plate\u002F\n    text-to-cae-hole-plate-modal\u002F\n    text-to-cae-sphere-impact\u002F\n    text-to-cae-milling-3d\u002F\n    text-to-cae-gear-mesh\u002F\n    text-to-cae-bullet-plate\u002F\n  viewer\u002F\n    package.json\n    vite.config.mjs\n    main.jsx\n    components\u002F\n      CaeResultViewer.js\n      TextToCaeWorkspace.js\n```\n\n## Git and Large Files\n\nThe repository excludes generated or large local artifacts, including:\n\n- `viewer\u002Fnode_modules\u002F`\n- `viewer\u002Fdist\u002F`\n- `viewer\u002Fdist-verify\u002F`\n- Abaqus `.odb`\n- Abaqus `.inp`\n- Abaqus intermediate files such as `.sim`, `.dat`, `.msg`, `.sta`, `.prt`, and `.lck`\n- Python `__pycache__`\n- very large generated `result_mesh.json` files\n\nThese files can be recreated by installing dependencies, rebuilding the viewer, rerunning Abaqus scripts, or using the refresh scripts.\n\n## Build\n\nBuild the frontend:\n\n```powershell\nSet-Location .\\viewer\nnpm.cmd run build\n```\n\nThe build output is written to `viewer\u002Fdist\u002F`.\n\n## Troubleshooting\n\n### The page does not open\n\nMake sure the dev server is running:\n\n```powershell\nSet-Location .\\viewer\nnpm.cmd run dev\n```\n\nOpen the URL printed by Vite, normally:\n\n```text\nhttp:\u002F\u002F127.0.0.1:4178\u002F\n```\n\n### The viewer does not show updated results\n\nClick the refresh control in the viewer or reload the browser page. `result_mesh.json` is loaded at runtime, so the page may still be showing the previous result payload.\n\n### Abaqus does not start from the browser\n\nCheck `ABAQUS_COMMAND`:\n\n```powershell\n$env:ABAQUS_COMMAND\n```\n\nIf it is empty or points to the wrong path, set it before starting the viewer:\n\n```powershell\n$env:ABAQUS_COMMAND = \"G:\\SIMULIA\\Commands\\abaqus.bat\"\nnpm.cmd run dev\n```\n\n### Some result files are missing after clone\n\nLarge ODB, INP, and generated result files are not committed. Regenerate them with the corresponding Abaqus script or refresh script.\n","Text to CAE 是一个基于浏览器的结果查看器，用于本地Abaqus仿真工作空间。该项目通过结合Abaqus\u002FCAE、Abaqus MCP和Web UI，支持AI编码客户端（如Codex、Cursor或Claude Desktop）编写与编辑Abaqus Python脚本，执行仿真分析，并将结果以交互式网页形式展示。其核心技术特点在于利用Python实现模型构建与求解过程自动化，同时借助Node.js和npm在前端提供快速响应的可视化工具。适合于需要频繁迭代设计参数并即时查看仿真效果的工程研发场景中使用，尤其是在结构力学分析领域。",2,"2026-06-11 02:51:15","CREATED_QUERY"]