steltic 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- steltic-0.1.1/.env.example +20 -0
- steltic-0.1.1/.gitignore +29 -0
- steltic-0.1.1/DISCLAIMER.md +60 -0
- steltic-0.1.1/LICENSE +21 -0
- steltic-0.1.1/NOTICE +20 -0
- steltic-0.1.1/PKG-INFO +130 -0
- steltic-0.1.1/README.md +102 -0
- steltic-0.1.1/contract/AGENT_START.md +478 -0
- steltic-0.1.1/contract/AISC360_TOC.md +51 -0
- steltic-0.1.1/contract/DESIGN_EG_INDEX.md +36 -0
- steltic-0.1.1/contract/III1_REFERENCE.md +54 -0
- steltic-0.1.1/contract/README_AGENT.md +417 -0
- steltic-0.1.1/frontend/Steltic-mark-loop.gif +0 -0
- steltic-0.1.1/frontend/app.js +506 -0
- steltic-0.1.1/frontend/index.html +149 -0
- steltic-0.1.1/frontend/styles.css +270 -0
- steltic-0.1.1/pyproject.toml +51 -0
- steltic-0.1.1/rag_get_shim.py +46 -0
- steltic-0.1.1/rag_update/new_buildings2.jsonl +4 -0
- steltic-0.1.1/rag_update/new_buildings3.jsonl +1 -0
- steltic-0.1.1/rag_v2/README.md +51 -0
- steltic-0.1.1/rag_v2/chunk_examples.py +226 -0
- steltic-0.1.1/rag_v2/chunk_v2.py +223 -0
- steltic-0.1.1/rag_v2/dump_opensees.py +67 -0
- steltic-0.1.1/rag_v2/load_opensees.py +60 -0
- steltic-0.1.1/rag_v2/reingest_examples.py +81 -0
- steltic-0.1.1/rag_v2/reingest_v2.py +79 -0
- steltic-0.1.1/run_local.sh +6 -0
- steltic-0.1.1/sandbox_image/Dockerfile +25 -0
- steltic-0.1.1/sandbox_image/build.sh +8 -0
- steltic-0.1.1/sandbox_image/runner.py +26 -0
- steltic-0.1.1/steel_engine/COMPOSITE_I3.md +35 -0
- steltic-0.1.1/steel_engine/aisc_shapes.csv +2300 -0
- steltic-0.1.1/steel_engine/consistency.py +580 -0
- steltic-0.1.1/steel_engine/design_pipeline.py +359 -0
- steltic-0.1.1/steel_engine/design_post.py +92 -0
- steltic-0.1.1/steel_engine/engine3d.py +1081 -0
- steltic-0.1.1/steel_engine/example_build.py +137 -0
- steltic-0.1.1/steel_engine/frame_diagram.py +184 -0
- steltic-0.1.1/steel_engine/pipeline.py +165 -0
- steltic-0.1.1/steel_engine/plot_model.py +210 -0
- steltic-0.1.1/steel_engine/preflight.py +130 -0
- steltic-0.1.1/steel_engine/report.py +2229 -0
- steltic-0.1.1/steel_engine/sections.py +124 -0
- steltic-0.1.1/steel_engine/static_model.py +504 -0
- steltic-0.1.1/steel_engine/vendor/THREE_LICENSE +21 -0
- steltic-0.1.1/steel_engine/vendor/three.min.js +6 -0
- steltic-0.1.1/steel_engine/viewer3d.py +337 -0
- steltic-0.1.1/steel_engine/viewer3d_template.html +506 -0
- steltic-0.1.1/steel_engine/viz3d.py +170 -0
- steltic-0.1.1/steltic/__init__.py +7 -0
- steltic-0.1.1/steltic/agent.py +901 -0
- steltic-0.1.1/steltic/bundle.py +136 -0
- steltic-0.1.1/steltic/cli.py +47 -0
- steltic-0.1.1/steltic/config.py +63 -0
- steltic-0.1.1/steltic/contract.py +86 -0
- steltic-0.1.1/steltic/job_tools.py +280 -0
- steltic-0.1.1/steltic/main.py +413 -0
- steltic-0.1.1/steltic/sandbox/__init__.py +4 -0
- steltic-0.1.1/steltic/sandbox/base.py +52 -0
- steltic-0.1.1/steltic/sandbox/docker_exec.py +60 -0
- steltic-0.1.1/steltic/sandbox/factory.py +30 -0
- steltic-0.1.1/steltic/sandbox/subprocess_exec.py +58 -0
- steltic-0.1.1/steltic/session.py +27 -0
- steltic-0.1.1/test_buildings/DIFFICULT_FEATURES_KEY.md +125 -0
- steltic-0.1.1/test_buildings/Ex10_Dual_SMF_SCBF_16levels_podium.txt +65 -0
- steltic-0.1.1/test_buildings/Ex11_BRBF_10levels_Uplan.txt +71 -0
- steltic-0.1.1/test_buildings/Ex12_SMF_14levels_chamfer_setback.txt +63 -0
- steltic-0.1.1/test_buildings/Ex13_OCBF_4levels_splitlevel.txt +58 -0
- steltic-0.1.1/test_buildings/Ex14_EBF_11levels_cruciform_hillside.txt +64 -0
- steltic-0.1.1/test_buildings/Ex15_Dual_SMF_BRBF_20levels_weddingcake.txt +64 -0
- steltic-0.1.1/test_buildings/Ex16_IMF_3levels_Zplan_school.txt +62 -0
- steltic-0.1.1/test_buildings/Ex17_SCBF_9levels_offset_core.txt +63 -0
- steltic-0.1.1/test_buildings/Ex18_R3_NotDetailed_8levels_lowseismic.txt +49 -0
- steltic-0.1.1/test_buildings/Ex19_SMF_11levels_softstory_podium.txt +43 -0
- steltic-0.1.1/test_buildings/Ex1_SCBF_5levels.txt +77 -0
- steltic-0.1.1/test_buildings/Ex20_SCBF_12levels_transfer_discontinuous.txt +47 -0
- steltic-0.1.1/test_buildings/Ex21_OCBF_1story_bigbox_flexiblediaphragm.txt +45 -0
- steltic-0.1.1/test_buildings/Ex22_SMF_6levels_hospital_RiskCatIV.txt +47 -0
- steltic-0.1.1/test_buildings/Ex23_Dual_SMF_BRBF_9levels_SDCF_nearfault_EOC.txt +47 -0
- steltic-0.1.1/test_buildings/Ex24_Mixed_SMF_NS_SCBF_EW_10levels_bidirectional.txt +49 -0
- steltic-0.1.1/test_buildings/Ex25_SMF_12levels_atrium_diaphragmdiscontinuity.txt +44 -0
- steltic-0.1.1/test_buildings/Ex26_Dual_SMF_SCBF_18levels_slender_windgoverned.txt +47 -0
- steltic-0.1.1/test_buildings/Ex27_CCPSW_CF_20levels_SpeedCore_composite.txt +44 -0
- steltic-0.1.1/test_buildings/Ex28_STMF_8levels_longspan_trussmoment.txt +43 -0
- steltic-0.1.1/test_buildings/Ex29_Dual_SMF_BRBF_20levels_264ft_NLRHA_PBSD.txt +43 -0
- steltic-0.1.1/test_buildings/Ex2_SMF_9levels.txt +75 -0
- steltic-0.1.1/test_buildings/Ex30_Composite_SCBF_6levels_studs_camber.txt +47 -0
- steltic-0.1.1/test_buildings/Ex31_Gable_warehouse_R3_unbalanced_snow_ponding.txt +40 -0
- steltic-0.1.1/test_buildings/Ex32_Vertical_addition_2over3_1968_A36_ASCE41.txt +46 -0
- steltic-0.1.1/test_buildings/Ex33_Crane_bay_IMF_runway_fatigue_App3.txt +46 -0
- steltic-0.1.1/test_buildings/Ex34_Twin_towers_BRBF_12and8_podium_seismic_joint.txt +44 -0
- steltic-0.1.1/test_buildings/Ex35_Ch15_equipment_platform_3tier_OCBF.txt +36 -0
- steltic-0.1.1/test_buildings/Ex3_BracedMoment_7levels.txt +83 -0
- steltic-0.1.1/test_buildings/Ex4_BRBF_3levels.txt +57 -0
- steltic-0.1.1/test_buildings/Ex5_SMF_10levels.txt +80 -0
- steltic-0.1.1/test_buildings/Ex6_SCBF_6levels.txt +68 -0
- steltic-0.1.1/test_buildings/Ex7a_SMF_7levels.txt +68 -0
- steltic-0.1.1/test_buildings/Ex7a_redesign.txt +23 -0
- steltic-0.1.1/test_buildings/Ex7b_SCBF_7levels.txt +59 -0
- steltic-0.1.1/test_buildings/Ex8_EBF_8levels_Lplan.txt +76 -0
- steltic-0.1.1/test_buildings/Ex9_SPSW_12levels_Tplan.txt +70 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Copy to .env and edit (all optional). The `steltic` command and run_local.sh load it automatically.
|
|
2
|
+
|
|
3
|
+
# --- data location (default: your OS user-data dir, e.g. %LOCALAPPDATA%\Steltic or ~/.local/share/Steltic) ---
|
|
4
|
+
# DATA_DIR=
|
|
5
|
+
|
|
6
|
+
# --- sandbox executor ---
|
|
7
|
+
EXECUTOR=auto # auto | docker | subprocess (auto = Docker if available, else subprocess)
|
|
8
|
+
SANDBOX_IMAGE=steel-sandbox:latest
|
|
9
|
+
SANDBOX_TIMEOUT=900 # seconds per run_python
|
|
10
|
+
SANDBOX_MEM=2g
|
|
11
|
+
SANDBOX_CPUS=2
|
|
12
|
+
SANDBOX_PIDS=256
|
|
13
|
+
|
|
14
|
+
# --- engineering-standards RAG (optional) ---
|
|
15
|
+
# Empty => the agent's search tool returns a 'use your own knowledge' note and it relies on its own
|
|
16
|
+
# cited AISC knowledge. To enable RAG, either point these at YOUR OWN server (see rag_v2/README.md
|
|
17
|
+
# for the expected API), or request access to the hosted Steltic RAG via the contact details at
|
|
18
|
+
# https://stelticai.com.
|
|
19
|
+
RAG_API_URL=
|
|
20
|
+
RAG_API_TOKEN=
|
steltic-0.1.1/.gitignore
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# secrets & local config
|
|
2
|
+
.env
|
|
3
|
+
|
|
4
|
+
# runtime data (designs live in the OS user-data dir by default; this covers DATA_DIR=./data setups)
|
|
5
|
+
data/
|
|
6
|
+
jobs/
|
|
7
|
+
|
|
8
|
+
# python
|
|
9
|
+
__pycache__/
|
|
10
|
+
*.pyc
|
|
11
|
+
*.pyo
|
|
12
|
+
.venv/
|
|
13
|
+
venv/
|
|
14
|
+
|
|
15
|
+
# packaging
|
|
16
|
+
dist/
|
|
17
|
+
build/
|
|
18
|
+
*.egg-info/
|
|
19
|
+
|
|
20
|
+
# editors / OS
|
|
21
|
+
.DS_Store
|
|
22
|
+
|
|
23
|
+
# working files
|
|
24
|
+
*.zip
|
|
25
|
+
*.bak
|
|
26
|
+
*.bak2
|
|
27
|
+
*.bak3
|
|
28
|
+
*.patch
|
|
29
|
+
SCOPING.md
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Steltic — Disclaimer & Limitation of Liability
|
|
2
|
+
|
|
3
|
+
By downloading, installing, or using **Steltic** (the "Software"), you ("User") agree to all terms
|
|
4
|
+
below. If you do not agree, do not use the Software.
|
|
5
|
+
|
|
6
|
+
## 1. What Steltic is
|
|
7
|
+
|
|
8
|
+
Steltic is free, open-source software: an orchestration harness around an AI / large-language-model
|
|
9
|
+
system **that you select and supply** via your own API key. Steltic guides that model through a
|
|
10
|
+
structural-design workflow but **generates no engineering content of its own** — every model,
|
|
11
|
+
calculation, figure, and report (the "Outputs") is produced by your chosen AI. The Software runs
|
|
12
|
+
locally on your machine: your designs stay there, and your prompts go only to the LLM provider you
|
|
13
|
+
configure (and, if you enable one, the RAG server you configure).
|
|
14
|
+
|
|
15
|
+
## 2. No professional engineering services
|
|
16
|
+
|
|
17
|
+
The Outputs are **preliminary, informational, and for conceptual/educational purposes only.** Use of
|
|
18
|
+
the Software is **not** the practice of engineering and creates **no** engineer-client or
|
|
19
|
+
professional relationship. No licensed professional has reviewed or sealed the Outputs.
|
|
20
|
+
|
|
21
|
+
## 3. No warranty — "AS IS"
|
|
22
|
+
|
|
23
|
+
The Software and all Outputs are provided **"AS IS", with all faults, and WITHOUT WARRANTY OF ANY
|
|
24
|
+
KIND**, express, implied, or statutory, including merchantability, fitness for a particular purpose,
|
|
25
|
+
accuracy, completeness, and non-infringement (see also the MIT [LICENSE](LICENSE)). Because Steltic
|
|
26
|
+
generates no Outputs of its own and does not control the AI model you supply, its authors make no
|
|
27
|
+
representation or guarantee as to the quality, accuracy, or reliability of any Output.
|
|
28
|
+
|
|
29
|
+
## 4. AI limitations
|
|
30
|
+
|
|
31
|
+
The Outputs are generated by probabilistic AI systems that can produce errors, omissions, and
|
|
32
|
+
fabricated values that appear authoritative but are wrong, and depend on the third-party model you
|
|
33
|
+
select and supply.
|
|
34
|
+
|
|
35
|
+
## 5. Independent verification required — NOT FOR CONSTRUCTION
|
|
36
|
+
|
|
37
|
+
The Outputs **must not** be used for design, construction, fabrication, or permitting, nor relied
|
|
38
|
+
upon for any decision affecting health, safety, or property, **unless and until** independently
|
|
39
|
+
checked and, where applicable, **sealed/stamped by a professional engineer licensed in the relevant
|
|
40
|
+
jurisdiction** who assumes responsibility. You are solely responsible for verifying every input,
|
|
41
|
+
assumption, load, capacity, citation, and result.
|
|
42
|
+
|
|
43
|
+
## 6. Assumption of risk
|
|
44
|
+
|
|
45
|
+
You assume **all risk** from using the Software and the Outputs. Any reliance is strictly at your
|
|
46
|
+
own risk.
|
|
47
|
+
|
|
48
|
+
## 7. Limitation of liability
|
|
49
|
+
|
|
50
|
+
To the maximum extent permitted by law, the authors, copyright holders, and contributors are **not
|
|
51
|
+
liable** for any claim, damages, or other liability — including any indirect, incidental, special,
|
|
52
|
+
consequential, or punitive damages, or any property damage, personal injury, or death — arising from
|
|
53
|
+
or in connection with the Software or the Outputs, under any theory of liability, even if advised of
|
|
54
|
+
the possibility.
|
|
55
|
+
|
|
56
|
+
## 8. General
|
|
57
|
+
|
|
58
|
+
If any provision is unenforceable it is severed and the rest remains in force.
|
|
59
|
+
|
|
60
|
+
*© 2026 Steltic (stelticai.com).*
|
steltic-0.1.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Steltic (stelticai.com)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
steltic-0.1.1/NOTICE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
THIRD-PARTY DATA & NOTICES
|
|
2
|
+
==========================
|
|
3
|
+
|
|
4
|
+
1. AISC-derived data.
|
|
5
|
+
- steel_engine/aisc_shapes.csv (AISC shape properties) and the AISC 360-22 / 341-22 / 358
|
|
6
|
+
references in contract/ (AGENT_START.md, README_AGENT.md, AISC360_TOC.md) are derived from
|
|
7
|
+
AISC publications. AISC specifications and shape data remain the property of the American
|
|
8
|
+
Institute of Steel Construction. This repository does not reproduce AISC specification text.
|
|
9
|
+
|
|
10
|
+
2. Three.js.
|
|
11
|
+
- steel_engine/vendor/three.min.js is Three.js, MIT-licensed (see steel_engine/vendor/THREE_LICENSE).
|
|
12
|
+
|
|
13
|
+
3. Secrets.
|
|
14
|
+
- Never commit API keys. All keys (LLM provider, RAG token) are read from the environment or
|
|
15
|
+
entered at runtime and are excluded by .gitignore (.env). They are NOT written to disk by the app.
|
|
16
|
+
- If any token was ever pasted into a terminal, file, or chat, treat it as compromised and ROTATE it.
|
|
17
|
+
|
|
18
|
+
4. Engineering liability.
|
|
19
|
+
- Outputs are preliminary and must be independently reviewed and, where applicable, sealed/stamped
|
|
20
|
+
by a professional engineer licensed in the relevant jurisdiction. See DISCLAIMER.md.
|
steltic-0.1.1/PKG-INFO
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: steltic
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Free, local AISC 360/341 steel-design agent: your LLM + OpenSees + stamped-style reports
|
|
5
|
+
Project-URL: Homepage, https://stelticai.com
|
|
6
|
+
Author: Steltic
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: DISCLAIMER.md
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
License-File: NOTICE
|
|
11
|
+
Keywords: AISC,agent,llm,opensees,steel-design,structural-engineering
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering
|
|
16
|
+
Requires-Python: >=3.10
|
|
17
|
+
Requires-Dist: fastapi>=0.110
|
|
18
|
+
Requires-Dist: httpx>=0.27
|
|
19
|
+
Requires-Dist: itsdangerous>=2.1
|
|
20
|
+
Requires-Dist: python-multipart>=0.0.9
|
|
21
|
+
Requires-Dist: uvicorn[standard]>=0.27
|
|
22
|
+
Provides-Extra: engine
|
|
23
|
+
Requires-Dist: matplotlib; extra == 'engine'
|
|
24
|
+
Requires-Dist: numpy; extra == 'engine'
|
|
25
|
+
Requires-Dist: openseespy; extra == 'engine'
|
|
26
|
+
Requires-Dist: scipy; extra == 'engine'
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
# Steltic
|
|
30
|
+
|
|
31
|
+
A free, open-source AISC 360/341 steel-design agent that runs locally. Paste a design brief and
|
|
32
|
+
watch the agent build an OpenSees model + a stamped-style HTML report + an interactive 3D viewer —
|
|
33
|
+
**bringing your own LLM** (your API base-url + key, held in memory only, never written to disk).
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
browser ──▶ FastAPI app (localhost) ──▶ your LLM (key in app memory, never stored)
|
|
37
|
+
│ parses tool calls
|
|
38
|
+
▼
|
|
39
|
+
sandbox executor (run_python only) — Docker when available
|
|
40
|
+
│
|
|
41
|
+
steel engine + OpenSees ─▶ report.html + viewer_3d.html
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
> **Not for construction.** Every output is produced by your own AI model, may be incomplete or
|
|
45
|
+
> incorrect, and must be independently checked and sealed by a licensed professional engineer before
|
|
46
|
+
> any use for design, construction, or permitting. See [DISCLAIMER.md](DISCLAIMER.md).
|
|
47
|
+
|
|
48
|
+
## Install & run
|
|
49
|
+
|
|
50
|
+
With [uv](https://docs.astral.sh/uv/) (recommended — no Python setup needed):
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
uv tool install steltic
|
|
54
|
+
steltic # starts on http://127.0.0.1:8000 and opens your browser
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Or with pipx: `pipx install steltic`. Or from a checkout:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
git clone <this repo> && cd steltic
|
|
61
|
+
python -m venv .venv && . .venv/bin/activate
|
|
62
|
+
pip install -e .
|
|
63
|
+
./run_local.sh # http://localhost:8000
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
First run: open **Settings**, enter your provider's **API base URL** (any OpenAI-compatible
|
|
67
|
+
endpoint — OpenRouter, vLLM, Together, Fireworks, OpenAI, Anthropic…), your **API key**, and a
|
|
68
|
+
**model** id. Then paste a brief (stories, bays & spacings, loads, seismic, system) — or pick one of
|
|
69
|
+
the 36 built-in example briefs — and click **Design building**.
|
|
70
|
+
|
|
71
|
+
Offline smoke test: set Model to `MOCK` — it drives the whole pipeline (sandbox, engine, OpenSees,
|
|
72
|
+
report) with no LLM.
|
|
73
|
+
|
|
74
|
+
## Sandbox
|
|
75
|
+
|
|
76
|
+
The agent's Python only ever executes in a sandbox. `EXECUTOR` (env / `.env`) picks the mode:
|
|
77
|
+
|
|
78
|
+
| value | isolation | notes |
|
|
79
|
+
|--------------|-----------|-------|
|
|
80
|
+
| `auto` | Docker if available, else subprocess | default |
|
|
81
|
+
| `docker` | container per run: no network, read-only fs, non-root, cpu/mem caps | build once: `./sandbox_image/build.sh` |
|
|
82
|
+
| `subprocess` | none (child process with rlimits) | needs `pip install openseespy numpy scipy matplotlib`; fine for local single-user use |
|
|
83
|
+
|
|
84
|
+
Steltic binds to 127.0.0.1 and has **no authentication** — don't expose the port. Designs are saved
|
|
85
|
+
under your OS user-data dir (e.g. `%LOCALAPPDATA%\Steltic`, `~/.local/share/Steltic`); override
|
|
86
|
+
with `DATA_DIR`.
|
|
87
|
+
|
|
88
|
+
## Engineering-standards, OpenSees & design-examples RAG (highly recommended)
|
|
89
|
+
|
|
90
|
+
The hosted version of Steltic at [stelticai.com](https://stelticai.com) grounds the agent with RAG
|
|
91
|
+
vector databases of AISC 360, 341 and 358 (2022), the AISC Steel Construction Manual Design
|
|
92
|
+
Examples (V16.0, 168 worked examples), an examples database of validated OpenSees models, and two
|
|
93
|
+
databases of the OpenSees documentation. The specifications and design examples ground the LLM in
|
|
94
|
+
the current procedures; the OpenSees databases help it build the model — and when OpenSees throws
|
|
95
|
+
errors, resolve them. Steltic's performance has been validated **with** these databases and will
|
|
96
|
+
likely reduce without them.
|
|
97
|
+
|
|
98
|
+
For copyright reasons the vector databases of AISC 360, 341 and 358 are **not** open-sourced in
|
|
99
|
+
this project. The rest are freely downloadable from this repo's
|
|
100
|
+
[Releases page](https://github.com/Steltic/steltic/releases) as portable `.jsonl.gz` dumps
|
|
101
|
+
(pre-embedded; see [rag_v2/README.md](rag_v2/README.md) for loading them into your own Qdrant):
|
|
102
|
+
`steel_design_examples` (168 original worked Q&A covering the AISC Design Examples scope),
|
|
103
|
+
`opensees_buildings_3d` (40 validated 3D building models), `opensees_building_templates`, and the
|
|
104
|
+
two OpenSees documentation sets.
|
|
105
|
+
|
|
106
|
+
Three options:
|
|
107
|
+
|
|
108
|
+
1. **None (default — not recommended).** Leave `RAG_API_URL` empty — the agent relies on its own
|
|
109
|
+
cited AISC knowledge. Good models do respectably; grounded runs are better.
|
|
110
|
+
2. **Bring your own server.** Run any server exposing the small API described in
|
|
111
|
+
[rag_v2/README.md](rag_v2/README.md): load the downloadable OpenSees databases, and build the
|
|
112
|
+
standards collections from your own licensed copies with the `rag_v2/` chunking + ingestion
|
|
113
|
+
starter kit. Then put the connection in the environment (or a `.env` next to where you launch):
|
|
114
|
+
`RAG_API_URL=http://your-server:8080/query` and, if your server enforces one, `RAG_API_TOKEN=...`.
|
|
115
|
+
3. **Hosted Steltic RAG.** The maintained, pre-built full set (specs + design examples + OpenSees).
|
|
116
|
+
To get access, use the contact details at [stelticai.com](https://stelticai.com), then set the
|
|
117
|
+
provided `RAG_API_URL` + `RAG_API_TOKEN` in your environment.
|
|
118
|
+
|
|
119
|
+
## Repo map
|
|
120
|
+
|
|
121
|
+
`steltic/` FastAPI app + agent loop + sandbox executors · `steel_engine/` OpenSees modelling,
|
|
122
|
+
design pipeline, consistency checks, report + 3D viewer · `contract/` the agent's working contract
|
|
123
|
+
and references · `frontend/` vanilla JS UI · `sandbox_image/` Docker sandbox image ·
|
|
124
|
+
`test_buildings/` 50+ example briefs (steel + CFS) with assessment rubrics · `rag_v2/`, `rag_update/`
|
|
125
|
+
build-your-own-RAG starter kit.
|
|
126
|
+
|
|
127
|
+
## License
|
|
128
|
+
|
|
129
|
+
MIT — see [LICENSE](LICENSE), [NOTICE](NOTICE) (third-party data notes) and
|
|
130
|
+
[DISCLAIMER.md](DISCLAIMER.md) (engineering disclaimer; also shown in-app at `/terms`).
|
steltic-0.1.1/README.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Steltic
|
|
2
|
+
|
|
3
|
+
A free, open-source AISC 360/341 steel-design agent that runs locally. Paste a design brief and
|
|
4
|
+
watch the agent build an OpenSees model + a stamped-style HTML report + an interactive 3D viewer —
|
|
5
|
+
**bringing your own LLM** (your API base-url + key, held in memory only, never written to disk).
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
browser ──▶ FastAPI app (localhost) ──▶ your LLM (key in app memory, never stored)
|
|
9
|
+
│ parses tool calls
|
|
10
|
+
▼
|
|
11
|
+
sandbox executor (run_python only) — Docker when available
|
|
12
|
+
│
|
|
13
|
+
steel engine + OpenSees ─▶ report.html + viewer_3d.html
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
> **Not for construction.** Every output is produced by your own AI model, may be incomplete or
|
|
17
|
+
> incorrect, and must be independently checked and sealed by a licensed professional engineer before
|
|
18
|
+
> any use for design, construction, or permitting. See [DISCLAIMER.md](DISCLAIMER.md).
|
|
19
|
+
|
|
20
|
+
## Install & run
|
|
21
|
+
|
|
22
|
+
With [uv](https://docs.astral.sh/uv/) (recommended — no Python setup needed):
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
uv tool install steltic
|
|
26
|
+
steltic # starts on http://127.0.0.1:8000 and opens your browser
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Or with pipx: `pipx install steltic`. Or from a checkout:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
git clone <this repo> && cd steltic
|
|
33
|
+
python -m venv .venv && . .venv/bin/activate
|
|
34
|
+
pip install -e .
|
|
35
|
+
./run_local.sh # http://localhost:8000
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
First run: open **Settings**, enter your provider's **API base URL** (any OpenAI-compatible
|
|
39
|
+
endpoint — OpenRouter, vLLM, Together, Fireworks, OpenAI, Anthropic…), your **API key**, and a
|
|
40
|
+
**model** id. Then paste a brief (stories, bays & spacings, loads, seismic, system) — or pick one of
|
|
41
|
+
the 36 built-in example briefs — and click **Design building**.
|
|
42
|
+
|
|
43
|
+
Offline smoke test: set Model to `MOCK` — it drives the whole pipeline (sandbox, engine, OpenSees,
|
|
44
|
+
report) with no LLM.
|
|
45
|
+
|
|
46
|
+
## Sandbox
|
|
47
|
+
|
|
48
|
+
The agent's Python only ever executes in a sandbox. `EXECUTOR` (env / `.env`) picks the mode:
|
|
49
|
+
|
|
50
|
+
| value | isolation | notes |
|
|
51
|
+
|--------------|-----------|-------|
|
|
52
|
+
| `auto` | Docker if available, else subprocess | default |
|
|
53
|
+
| `docker` | container per run: no network, read-only fs, non-root, cpu/mem caps | build once: `./sandbox_image/build.sh` |
|
|
54
|
+
| `subprocess` | none (child process with rlimits) | needs `pip install openseespy numpy scipy matplotlib`; fine for local single-user use |
|
|
55
|
+
|
|
56
|
+
Steltic binds to 127.0.0.1 and has **no authentication** — don't expose the port. Designs are saved
|
|
57
|
+
under your OS user-data dir (e.g. `%LOCALAPPDATA%\Steltic`, `~/.local/share/Steltic`); override
|
|
58
|
+
with `DATA_DIR`.
|
|
59
|
+
|
|
60
|
+
## Engineering-standards, OpenSees & design-examples RAG (highly recommended)
|
|
61
|
+
|
|
62
|
+
The hosted version of Steltic at [stelticai.com](https://stelticai.com) grounds the agent with RAG
|
|
63
|
+
vector databases of AISC 360, 341 and 358 (2022), the AISC Steel Construction Manual Design
|
|
64
|
+
Examples (V16.0, 168 worked examples), an examples database of validated OpenSees models, and two
|
|
65
|
+
databases of the OpenSees documentation. The specifications and design examples ground the LLM in
|
|
66
|
+
the current procedures; the OpenSees databases help it build the model — and when OpenSees throws
|
|
67
|
+
errors, resolve them. Steltic's performance has been validated **with** these databases and will
|
|
68
|
+
likely reduce without them.
|
|
69
|
+
|
|
70
|
+
For copyright reasons the vector databases of AISC 360, 341 and 358 are **not** open-sourced in
|
|
71
|
+
this project. The rest are freely downloadable from this repo's
|
|
72
|
+
[Releases page](https://github.com/Steltic/steltic/releases) as portable `.jsonl.gz` dumps
|
|
73
|
+
(pre-embedded; see [rag_v2/README.md](rag_v2/README.md) for loading them into your own Qdrant):
|
|
74
|
+
`steel_design_examples` (168 original worked Q&A covering the AISC Design Examples scope),
|
|
75
|
+
`opensees_buildings_3d` (40 validated 3D building models), `opensees_building_templates`, and the
|
|
76
|
+
two OpenSees documentation sets.
|
|
77
|
+
|
|
78
|
+
Three options:
|
|
79
|
+
|
|
80
|
+
1. **None (default — not recommended).** Leave `RAG_API_URL` empty — the agent relies on its own
|
|
81
|
+
cited AISC knowledge. Good models do respectably; grounded runs are better.
|
|
82
|
+
2. **Bring your own server.** Run any server exposing the small API described in
|
|
83
|
+
[rag_v2/README.md](rag_v2/README.md): load the downloadable OpenSees databases, and build the
|
|
84
|
+
standards collections from your own licensed copies with the `rag_v2/` chunking + ingestion
|
|
85
|
+
starter kit. Then put the connection in the environment (or a `.env` next to where you launch):
|
|
86
|
+
`RAG_API_URL=http://your-server:8080/query` and, if your server enforces one, `RAG_API_TOKEN=...`.
|
|
87
|
+
3. **Hosted Steltic RAG.** The maintained, pre-built full set (specs + design examples + OpenSees).
|
|
88
|
+
To get access, use the contact details at [stelticai.com](https://stelticai.com), then set the
|
|
89
|
+
provided `RAG_API_URL` + `RAG_API_TOKEN` in your environment.
|
|
90
|
+
|
|
91
|
+
## Repo map
|
|
92
|
+
|
|
93
|
+
`steltic/` FastAPI app + agent loop + sandbox executors · `steel_engine/` OpenSees modelling,
|
|
94
|
+
design pipeline, consistency checks, report + 3D viewer · `contract/` the agent's working contract
|
|
95
|
+
and references · `frontend/` vanilla JS UI · `sandbox_image/` Docker sandbox image ·
|
|
96
|
+
`test_buildings/` 50+ example briefs (steel + CFS) with assessment rubrics · `rag_v2/`, `rag_update/`
|
|
97
|
+
build-your-own-RAG starter kit.
|
|
98
|
+
|
|
99
|
+
## License
|
|
100
|
+
|
|
101
|
+
MIT — see [LICENSE](LICENSE), [NOTICE](NOTICE) (third-party data notes) and
|
|
102
|
+
[DISCLAIMER.md](DISCLAIMER.md) (engineering disclaimer; also shown in-app at `/terms`).
|