loadpath 0.1.1__py3-none-any.whl
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.
- loadpath/README.md +294 -0
- loadpath/SKILL.md +584 -0
- loadpath/__init__.py +17 -0
- loadpath/__main__.py +1202 -0
- loadpath/am.py +316 -0
- loadpath/amgfast.py +326 -0
- loadpath/assembly.py +985 -0
- loadpath/benchmarks/__init__.py +0 -0
- loadpath/benchmarks/beams.py +266 -0
- loadpath/benchmarks/cases/ge-bracket.json +380 -0
- loadpath/benchmarks/evaluate.py +172 -0
- loadpath/benchmarks/mechanisms.py +416 -0
- loadpath/benchmarks/problems.py +140 -0
- loadpath/benchmarks/reference/bridge-3d.top3d.npz +0 -0
- loadpath/benchmarks/reference/cantilever-3d.top3d.npz +0 -0
- loadpath/benchmarks/reference/lbracket-2d.top88-ft2.npz +0 -0
- loadpath/benchmarks/reference/mbb-2d.top88-ft1.npz +0 -0
- loadpath/benchmarks/reference/mbb-2d.top88-ft2.npz +0 -0
- loadpath/benchmarks/reference.py +138 -0
- loadpath/benchmarks/run.py +301 -0
- loadpath/brep.py +1470 -0
- loadpath/bucklingopt.py +300 -0
- loadpath/buildsim.py +1490 -0
- loadpath/cadimport.py +904 -0
- loadpath/calibration.py +885 -0
- loadpath/cavities.py +211 -0
- loadpath/checks/__init__.py +0 -0
- loadpath/checks/dfm.py +354 -0
- loadpath/checks/exchanger.py +7 -0
- loadpath/checks/fea.py +212 -0
- loadpath/checks/fit.py +475 -0
- loadpath/checks/networks.py +260 -0
- loadpath/checks/opening.py +67 -0
- loadpath/checks/sdf_kit.py +7 -0
- loadpath/conjugate.py +267 -0
- loadpath/constrained.py +329 -0
- loadpath/contact.py +691 -0
- loadpath/coopt.py +342 -0
- loadpath/cores.py +163 -0
- loadpath/crease.py +1138 -0
- loadpath/critic.py +212 -0
- loadpath/crosscheck.py +1107 -0
- loadpath/cutcell.py +510 -0
- loadpath/data/lattice_buckling.json +439 -0
- loadpath/data/lattice_tensors.json +27449 -0
- loadpath/data/published_experiments.json +71 -0
- loadpath/decimate.py +177 -0
- loadpath/delivery.py +190 -0
- loadpath/directions.py +262 -0
- loadpath/domain.py +630 -0
- loadpath/drains.py +615 -0
- loadpath/durability.py +413 -0
- loadpath/editor.html +3135 -0
- loadpath/editor.py +610 -0
- loadpath/escape.py +354 -0
- loadpath/evals/__init__.py +0 -0
- loadpath/evals/baselines/coarse.json +1543 -0
- loadpath/evals/baselines/full.json +1497 -0
- loadpath/evals/brief_kinds/__init__.py +1 -0
- loadpath/evals/brief_kinds/heatx.py +387 -0
- loadpath/evals/brief_kinds/lattice.py +571 -0
- loadpath/evals/brief_kinds/multimat.py +593 -0
- loadpath/evals/briefs/assets/bracket.step +1201 -0
- loadpath/evals/briefs/assets/desk_arm.urdf +22 -0
- loadpath/evals/briefs/assets/elbow-gearbox.stl +0 -0
- loadpath/evals/briefs/assets/motor-body.stl +0 -0
- loadpath/evals/briefs/assets/sketch.png +0 -0
- loadpath/evals/briefs/base-adapter-fdm.json +492 -0
- loadpath/evals/briefs/bell-crank-lpbf.json +180 -0
- loadpath/evals/briefs/belt-tensioner-fdm.json +151 -0
- loadpath/evals/briefs/camera-boom-mjf.json +339 -0
- loadpath/evals/briefs/camera-mount-pla.json +203 -0
- loadpath/evals/briefs/coolant-isolator-petg.json +100 -0
- loadpath/evals/briefs/elbow-bearing-bracket-sls.json +300 -0
- loadpath/evals/briefs/elbow-gearbox-forearm-mjf.json +558 -0
- loadpath/evals/briefs/elbow-link-fatigue-fdm.json +251 -0
- loadpath/evals/briefs/elbow-stop-pad-tpu.json +39 -0
- loadpath/evals/briefs/forearm-fdm.json +146 -0
- loadpath/evals/briefs/forearm-servo-link-fdm.json +327 -0
- loadpath/evals/briefs/grip-pad-finger-mm.json +354 -0
- loadpath/evals/briefs/gripper-bracket-creep-fdm.json +340 -0
- loadpath/evals/briefs/gripper-finger-fdm.json +155 -0
- loadpath/evals/briefs/gripper-jaw-fatigue-mjf.json +328 -0
- loadpath/evals/briefs/gripper-palm-fdm.json +715 -0
- loadpath/evals/briefs/hot-stepper-mount-asa-fdm.json +471 -0
- loadpath/evals/briefs/hpu-oil-cooler-lpbf.json +121 -0
- loadpath/evals/briefs/isolated-camera-mount-mm.json +675 -0
- loadpath/evals/briefs/kart-charge-cooler-lpbf.json +93 -0
- loadpath/evals/briefs/lighten-step-bracket.json +220 -0
- loadpath/evals/briefs/nema17-mount-stl.json +429 -0
- loadpath/evals/briefs/pillow-block-sls.json +220 -0
- loadpath/evals/briefs/polyjet-fingertip-mm.json +305 -0
- loadpath/evals/briefs/rod-hook-pla.json +154 -0
- loadpath/evals/briefs/sensor-arm-resin.json +150 -0
- loadpath/evals/briefs/shelf-bracket-pla.json +158 -0
- loadpath/evals/briefs/shoulder-riser-mjf.json +487 -0
- loadpath/evals/briefs/sketch-clevis.json +229 -0
- loadpath/evals/briefs/spring-bracket-pacf.json +294 -0
- loadpath/evals/briefs/tool-flange-ti64.json +280 -0
- loadpath/evals/briefs/tray-arm-lattice-fdm.json +260 -0
- loadpath/evals/briefs/turret-fdm.json +281 -0
- loadpath/evals/briefs/upper-arm-sls.json +179 -0
- loadpath/evals/briefs/urdf-forearm.json +233 -0
- loadpath/evals/briefs/wrist-link-mjf.json +278 -0
- loadpath/evals/briefs/wrist-yoke-mjf.json +245 -0
- loadpath/evals/briefs.py +393 -0
- loadpath/evals/cases/arm-link-cast.json +157 -0
- loadpath/evals/cases/arm-link-driven.json +171 -0
- loadpath/evals/cases/arm-link-sandwich.json +315 -0
- loadpath/evals/cases/arm-link.json +111 -0
- loadpath/evals/cases/bell-crank.json +116 -0
- loadpath/evals/cases/grip-turret.json +479 -0
- loadpath/evals/cases/grip-upper-arm.json +253 -0
- loadpath/evals/cases/grip-wrist-link-mjf.json +929 -0
- loadpath/evals/cases/grip-wrist-yoke.json +831 -0
- loadpath/evals/cases/lpbf-intercooler-core.json +59 -0
- loadpath/evals/cases/mbb-beam.json +61 -0
- loadpath/evals/cases/motor-body.stl +0 -0
- loadpath/evals/cases/motor-mount.json +265 -0
- loadpath/evals/cases/printed-hook.json +77 -0
- loadpath/evals/cases/wall-bracket-fasteners.json +125 -0
- loadpath/evals/cases/wall-bracket.json +126 -0
- loadpath/evals/corpus.py +179 -0
- loadpath/evals/pareto.py +90 -0
- loadpath/evals/run.py +860 -0
- loadpath/examples/arm-link.json +25 -0
- loadpath/examples/bumpered-bracket-compression.json +225 -0
- loadpath/examples/bumpered-bracket-lattice.json +204 -0
- loadpath/examples/bumpered-bracket.json +34 -0
- loadpath/examples/gripper-finger-mm.json +185 -0
- loadpath/examples/heat-exchanger-counterflow.json +21 -0
- loadpath/examples/heat-exchanger-crossflow-tuned.json +48 -0
- loadpath/examples/heat-exchanger-crossflow.json +20 -0
- loadpath/examples/pedal-lattice.json +23 -0
- loadpath/examples/pressure-plenum.json +12 -0
- loadpath/examples/shelf-bracket.json +27 -0
- loadpath/exchanger.py +831 -0
- loadpath/fasteners.py +199 -0
- loadpath/fem.py +668 -0
- loadpath/femops.py +70 -0
- loadpath/fieldjit.py +981 -0
- loadpath/fieldops.py +119 -0
- loadpath/fields.py +3697 -0
- loadpath/fieldtorch.py +464 -0
- loadpath/flow.py +984 -0
- loadpath/flowtopo.py +300 -0
- loadpath/gpu.py +521 -0
- loadpath/heatx.py +1067 -0
- loadpath/heatx_thermal.py +432 -0
- loadpath/homogenized.py +886 -0
- loadpath/ibrep.py +552 -0
- loadpath/impact.py +693 -0
- loadpath/infill.py +376 -0
- loadpath/interface_library.py +340 -0
- loadpath/interlock.py +186 -0
- loadpath/isolator.py +149 -0
- loadpath/knn.py +204 -0
- loadpath/lattice.py +1065 -0
- loadpath/lattice3mf.py +760 -0
- loadpath/lattice_buckling.py +245 -0
- loadpath/lattice_grade.py +325 -0
- loadpath/lattice_orient.py +595 -0
- loadpath/lattice_print.py +159 -0
- loadpath/lattice_tensors.py +558 -0
- loadpath/latticestep.py +1210 -0
- loadpath/manufacture.py +446 -0
- loadpath/material_library.py +489 -0
- loadpath/materials.py +144 -0
- loadpath/mcp_server.py +786 -0
- loadpath/mechanism.py +218 -0
- loadpath/mechanism_nl.py +811 -0
- loadpath/meshops.py +452 -0
- loadpath/mg.py +853 -0
- loadpath/mma.py +214 -0
- loadpath/modal.py +210 -0
- loadpath/multimat.py +1788 -0
- loadpath/narrowband.py +418 -0
- loadpath/nlkernel.py +241 -0
- loadpath/nonlinear.py +1095 -0
- loadpath/orient.py +334 -0
- loadpath/porous.py +994 -0
- loadpath/pressure.py +171 -0
- loadpath/preview.py +335 -0
- loadpath/printcheck.py +263 -0
- loadpath/printsetup.py +207 -0
- loadpath/processcheck.py +376 -0
- loadpath/quick.py +113 -0
- loadpath/recall.py +406 -0
- loadpath/reconstruct.py +797 -0
- loadpath/render.py +436 -0
- loadpath/resolved.py +189 -0
- loadpath/schema.py +1701 -0
- loadpath/sdf_kit.py +843 -0
- loadpath/selfx.py +292 -0
- loadpath/shapes.py +584 -0
- loadpath/sharp.py +717 -0
- loadpath/simp.py +1170 -0
- loadpath/sizing.py +312 -0
- loadpath/slicer.py +321 -0
- loadpath/spec.py +1072 -0
- loadpath/step.py +806 -0
- loadpath/struts.py +639 -0
- loadpath/study.py +1937 -0
- loadpath/tasks.py +822 -0
- loadpath/thermal.py +1691 -0
- loadpath/threemf.py +487 -0
- loadpath/tune.py +437 -0
- loadpath/validation.py +145 -0
- loadpath/verify.py +1215 -0
- loadpath/viewer.html +694 -0
- loadpath/viewer.py +446 -0
- loadpath/viscoelastic.py +106 -0
- loadpath/voxelprint.py +582 -0
- loadpath/voxels.py +402 -0
- loadpath-0.1.1.dist-info/METADATA +319 -0
- loadpath-0.1.1.dist-info/RECORD +220 -0
- loadpath-0.1.1.dist-info/WHEEL +5 -0
- loadpath-0.1.1.dist-info/entry_points.txt +2 -0
- loadpath-0.1.1.dist-info/licenses/LICENSE +21 -0
- loadpath-0.1.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: loadpath
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Generative design for printed parts: topology optimization from keep-outs, preserved geometry and loads, verified in real units.
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://github.com/connorwhite-online/loadpath
|
|
7
|
+
Project-URL: Documentation, https://github.com/connorwhite-online/loadpath/tree/main/docs
|
|
8
|
+
Project-URL: Repository, https://github.com/connorwhite-online/loadpath
|
|
9
|
+
Project-URL: Issues, https://github.com/connorwhite-online/loadpath/issues
|
|
10
|
+
Keywords: topology optimization,generative design,3d printing,fea,cad
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: Intended Audience :: Manufacturing
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: numpy>=1.26
|
|
25
|
+
Requires-Dist: scipy>=1.11
|
|
26
|
+
Requires-Dist: pyamg>=5.0
|
|
27
|
+
Requires-Dist: scikit-image>=0.22
|
|
28
|
+
Requires-Dist: trimesh>=4.0
|
|
29
|
+
Requires-Dist: manifold3d>=3.0
|
|
30
|
+
Requires-Dist: rtree>=1.0
|
|
31
|
+
Requires-Dist: numba>=0.59
|
|
32
|
+
Provides-Extra: render
|
|
33
|
+
Requires-Dist: matplotlib>=3.8; extra == "render"
|
|
34
|
+
Requires-Dist: shapely>=2.0; extra == "render"
|
|
35
|
+
Requires-Dist: fast_simplification>=0.1; extra == "render"
|
|
36
|
+
Provides-Extra: mcp
|
|
37
|
+
Requires-Dist: mcp>=2.0; extra == "mcp"
|
|
38
|
+
Requires-Dist: matplotlib>=3.8; extra == "mcp"
|
|
39
|
+
Requires-Dist: shapely>=2.0; extra == "mcp"
|
|
40
|
+
Provides-Extra: gpu
|
|
41
|
+
Requires-Dist: torch>=2.2; extra == "gpu"
|
|
42
|
+
Provides-Extra: flow
|
|
43
|
+
Requires-Dist: numba>=0.59; extra == "flow"
|
|
44
|
+
Provides-Extra: crosscheck
|
|
45
|
+
Requires-Dist: gmsh>=4.11; extra == "crosscheck"
|
|
46
|
+
Requires-Dist: pytetwild>=0.4; extra == "crosscheck"
|
|
47
|
+
Requires-Dist: pyvista>=0.44; extra == "crosscheck"
|
|
48
|
+
Provides-Extra: fast
|
|
49
|
+
Requires-Dist: pypardiso>=0.4; extra == "fast"
|
|
50
|
+
Provides-Extra: critic
|
|
51
|
+
Requires-Dist: anthropic; extra == "critic"
|
|
52
|
+
Requires-Dist: matplotlib>=3.8; extra == "critic"
|
|
53
|
+
Requires-Dist: shapely>=2.0; extra == "critic"
|
|
54
|
+
Provides-Extra: step
|
|
55
|
+
Requires-Dist: cadquery-ocp>=7.7; extra == "step"
|
|
56
|
+
Requires-Dist: embreex>=4.3; extra == "step"
|
|
57
|
+
Provides-Extra: 3mf
|
|
58
|
+
Requires-Dist: lib3mf>=2.4; extra == "3mf"
|
|
59
|
+
Requires-Dist: pillow>=9; extra == "3mf"
|
|
60
|
+
Dynamic: license-file
|
|
61
|
+
|
|
62
|
+
# loadpath
|
|
63
|
+
|
|
64
|
+
Generative design for 3D printed parts (and cast or milled ones), built to be
|
|
65
|
+
driven by coding agents. Tell your agent what a part has to carry and where it
|
|
66
|
+
mounts; loadpath grows the part with topology optimization, meshes it as a
|
|
67
|
+
watertight solid with the interfaces cut exactly, and checks that mesh with a
|
|
68
|
+
fresh finite element analysis. You get an STL, 3MF or STEP and a report: mass,
|
|
69
|
+
safety factor, deflection, thinnest member, printability, pass or fail.
|
|
70
|
+
|
|
71
|
+
<table>
|
|
72
|
+
<tr>
|
|
73
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/printed-hook.png" width="380"></td>
|
|
74
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/stress/printed-hook.png" width="380"></td>
|
|
75
|
+
</tr>
|
|
76
|
+
<tr>
|
|
77
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/bell-crank.png" width="380"></td>
|
|
78
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/stress/bell-crank.png" width="380"></td>
|
|
79
|
+
</tr>
|
|
80
|
+
<tr>
|
|
81
|
+
<td align="center" colspan="2"><sub>Left, the part loadpath delivered (blue: load, red: kept bore). Right, its
|
|
82
|
+
stress from a fresh analysis of that mesh, blue (none) to red (the part's 98th percentile), on the shape bent by
|
|
83
|
+
the worst load case. Top: a 300 N wall hook printed upright without supports, 24.2 g, SF 2.73. Bottom: a 500 N
|
|
84
|
+
aluminium bell crank (LPBF), 23.4 g, SF 3.22. More in <a href="#examples">Examples</a>.</sub></td>
|
|
85
|
+
</tr>
|
|
86
|
+
</table>
|
|
87
|
+
|
|
88
|
+
## Point your agent at it
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
pip install "loadpath[mcp]"
|
|
92
|
+
claude mcp add loadpath -- loadpath mcp # any MCP client: {"command": "loadpath", "args": ["mcp"]}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Then ask in plain words:
|
|
96
|
+
|
|
97
|
+
> Design a PETG bracket for a 10 kg shelf. It screws to the wall with two
|
|
98
|
+
> M5 bolts 40 mm apart and the shelf sits 60 mm out. Safety factor 2,
|
|
99
|
+
> printed on an FDM printer.
|
|
100
|
+
|
|
101
|
+
The agent writes the study, checks it, runs it in the background and reads
|
|
102
|
+
the report back. Its guide is [loadpath/SKILL.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/loadpath/SKILL.md) (the
|
|
103
|
+
`loadpath_guide` tool returns it); the tools and the loop are in
|
|
104
|
+
[docs/agents.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/agents.md). The server runs locally and nothing
|
|
105
|
+
leaves the machine. Units are millimetres, newtons and megapascals. MIT
|
|
106
|
+
licensed.
|
|
107
|
+
|
|
108
|
+
## What it does
|
|
109
|
+
|
|
110
|
+
- **Topology optimization** on a voxel grid (SIMP with a density filter,
|
|
111
|
+
Heaviside projection and a robust minimum-member formulation), searching
|
|
112
|
+
for the lightest part that meets a safety factor and a deflection limit
|
|
113
|
+
across several load cases. A stress-constrained mode (MMA) is available.
|
|
114
|
+
- **Verification of the delivered mesh**, not the optimizer's density
|
|
115
|
+
field: the STL is analysed again, on a tetrahedral mesh when the
|
|
116
|
+
`crosscheck` extra is installed and on a fine voxel grid otherwise. Keep-out
|
|
117
|
+
intrusion and lost interface geometry are measured with exact booleans.
|
|
118
|
+
- **Process rules** for FDM (overhangs, bridges, layer bond), SLS and MJF
|
|
119
|
+
(trapped powder, escape holes, warp-prone panels), resin (supports, peel,
|
|
120
|
+
suction cups) and powder-bed metal (internal ceilings, powder
|
|
121
|
+
clean-outs), plus milling and casting constraints.
|
|
122
|
+
- **Field modelling**: a part as a graph of implicit fields, so skins,
|
|
123
|
+
lattices (TPMS and strut) and fillets can be graded by stress or by
|
|
124
|
+
distance ([docs/fields.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/fields.md)).
|
|
125
|
+
- **Other analyses**: large deflection and buckling, compliant mechanisms,
|
|
126
|
+
thermal loads, fatigue and creep estimates, lattice crush and impact,
|
|
127
|
+
vibration, lattice-Boltzmann flow and conjugate heat for heat exchangers
|
|
128
|
+
and cold plates, and layer-by-layer warp and residual stress
|
|
129
|
+
([docs/BUILDSIM.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/BUILDSIM.md)).
|
|
130
|
+
- **CAD in and out**: a STEP or STL part becomes a draft study with its
|
|
131
|
+
bores and bolt patterns found ([docs/IMPORT.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/IMPORT.md)); results
|
|
132
|
+
export as STL, 3MF, and STEP with exact planes and cylinders at the
|
|
133
|
+
interfaces; a lattice part (strut cells, TPMS, graded, skinned or open)
|
|
134
|
+
goes to STEP lattice and all, as smooth patches on its true surface ([docs/fields.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/fields.md#the-lattice-itself-in-the-step-lattice-exact)).
|
|
135
|
+
- **Mesh checks without a study** (`loadpath.checks`): wall thickness,
|
|
136
|
+
overhangs, trapped voids, fluid-network isolation, component fit.
|
|
137
|
+
|
|
138
|
+
## How much to trust it
|
|
139
|
+
|
|
140
|
+
Read [docs/VALIDATION.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/VALIDATION.md) before relying on a number.
|
|
141
|
+
In short:
|
|
142
|
+
|
|
143
|
+
- **The solvers match analytic answers** in the test suite: beam
|
|
144
|
+
deflection within 3-5%, stress at a hole within about 13%, Lamé pressure
|
|
145
|
+
vessels within 5-11%, Poiseuille flow exactly.
|
|
146
|
+
- **The structural check is cross-checked**: CalculiX and loadpath's own
|
|
147
|
+
tetrahedral solver agree within 0.1% on the same mesh. The voxel check
|
|
148
|
+
reads 24-49% higher stress than the tet check, so it errs safe.
|
|
149
|
+
- **The optimizer is benchmarked**: 1-5% less stiff than top88 and top3d at
|
|
150
|
+
equal material on three of their textbook problems, stiffer on the fourth.
|
|
151
|
+
- **Printed lattices match published tests**: against 33 published
|
|
152
|
+
compression tests of printed lattices, the stiffness check has a median
|
|
153
|
+
error of 1.23x (held out) and the strength check stays under the measured
|
|
154
|
+
value on all 33.
|
|
155
|
+
- **Warp prediction is fitted to measured data** (NIST AM-Bench 2018 for
|
|
156
|
+
LPBF IN625, a published ABS study for FDM) and misses other alloys and
|
|
157
|
+
materials by 30-60%.
|
|
158
|
+
- **Everything else is simulation only**, including every part mass and
|
|
159
|
+
safety factor in the case studies. The analysis is linear elastic with
|
|
160
|
+
datasheet material values; printed parts vary with the printer.
|
|
161
|
+
|
|
162
|
+
## Case studies
|
|
163
|
+
|
|
164
|
+
Each states the problem, the setup, the numbers against a named baseline,
|
|
165
|
+
and the limitations ([docs/case-studies/](https://github.com/connorwhite-online/loadpath/tree/v0.1.1/docs/case-studies/)).
|
|
166
|
+
|
|
167
|
+
| Case study | Result | Baseline |
|
|
168
|
+
| --- | --- | --- |
|
|
169
|
+
| [Eval suite](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/case-studies/evals.md) | 15 of 15 parts meet their requirements on a fresh analysis of the delivered mesh | Each part's own requirements |
|
|
170
|
+
| [GRIP robot arm](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/case-studies/grip.md) | A load sweep over the arm's URDF found 3 of 5 links below SF 1; the regrown set meets SF 2 and is 18% smaller | GRIP's committed parts, made by an earlier loadpath with hand-written loads |
|
|
171
|
+
| [Arm link cores](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/case-studies/arm-link-cores.md) | 42.2 g box section for FDM, 36.8 g hollow link for SLS, both at 0.5 mm and SF 3 | 54.9 g solid web; 54.2 g free-form topology optimization |
|
|
172
|
+
| [Liquid cold plate](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/case-studies/cold-plate.md) | A die-graded gyroid ties streamline channels; channels filled with a graded gyroid run 7% cooler | Streamline channels and pin fins, equal metal and pressure drop |
|
|
173
|
+
| [TPU finger](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/case-studies/tpu-finger.md) | up to 8 mm of tip curl for a 5 mm pull; a tendon finger grips 8x harder | A linear-model design (2.5 mm, then the solve fails); a plain bar of equal volume |
|
|
174
|
+
| [Benchmarks](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/case-studies/benchmarks.md) | 1-5% less stiff than top88/top3d at equal material, in 57-60 iterations instead of 130-410 | Ports of top88 and top3d |
|
|
175
|
+
|
|
176
|
+
## Command line and Python
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
loadpath examples shelf-bracket > bracket.json
|
|
180
|
+
loadpath check bracket.json # every problem at once, with suggestions
|
|
181
|
+
loadpath run bracket.json --out out/ # optimize, mesh, verify, render
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
`out/` gets an STL and a render per outcome and `report.json`. Every command
|
|
185
|
+
takes `--quick` for a first look in a minute or two.
|
|
186
|
+
|
|
187
|
+
Optional extras: `crosscheck` (tetrahedral verification; recommended),
|
|
188
|
+
`render`, `step` (STEP in and out, OpenCascade), `flow` (lattice-Boltzmann,
|
|
189
|
+
numba), `gpu` (PyTorch for large grids on CUDA, Apple Silicon or CPU
|
|
190
|
+
threads).
|
|
191
|
+
|
|
192
|
+
Studies are validated against a published JSON Schema
|
|
193
|
+
([`schema/`](https://github.com/connorwhite-online/loadpath/tree/v0.1.1/schema/)), and `loadpath check` returns every problem at once
|
|
194
|
+
with its JSON path, so an agent can fix a study in one round trip. Long
|
|
195
|
+
solves run as background jobs the agent polls. Each finished outcome has an
|
|
196
|
+
`attention` list of numbers to look at before trusting it, and renders a
|
|
197
|
+
vision model can inspect.
|
|
198
|
+
|
|
199
|
+
From Python:
|
|
200
|
+
|
|
201
|
+
```python
|
|
202
|
+
from loadpath.spec import study_from_dict
|
|
203
|
+
from loadpath.study import run_study
|
|
204
|
+
|
|
205
|
+
result = run_study(study_from_dict(study))
|
|
206
|
+
best = result.outcomes[result.best]
|
|
207
|
+
best.mesh.export("part.stl")
|
|
208
|
+
print(best.report["mass"], best.report["safetyFactor"])
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Documentation
|
|
212
|
+
|
|
213
|
+
- [Quickstart](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/quickstart.md): install to a checked part.
|
|
214
|
+
- [Tutorials](https://github.com/connorwhite-online/loadpath/tree/v0.1.1/docs/tutorials/): eleven end-to-end workflows, each run by CI
|
|
215
|
+
(an FDM bracket to 3MF, an SLS lattice with drain holes, a metal heat
|
|
216
|
+
exchanger, an impact bumper, a STEP part round trip, LPBF distortion
|
|
217
|
+
compensation, and more).
|
|
218
|
+
- [Reference](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/loadpath/README.md): the method, every study field, the
|
|
219
|
+
report, the limits.
|
|
220
|
+
- [Validation](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/VALIDATION.md): what each model has been checked
|
|
221
|
+
against.
|
|
222
|
+
- [Case studies](https://github.com/connorwhite-online/loadpath/tree/v0.1.1/docs/case-studies/) and [benchmarks](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/BENCHMARKS.md).
|
|
223
|
+
- Topics: [fields](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/fields.md), [materials](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/materials.md),
|
|
224
|
+
[build simulation](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/BUILDSIM.md), [calibration](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/CALIBRATION.md),
|
|
225
|
+
[CAD import](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/IMPORT.md), [slicer](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/slicer.md),
|
|
226
|
+
[multi-material](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/MULTIMATERIAL.md), [impact](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/IMPACT.md),
|
|
227
|
+
[mechanisms](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/MECHANISMS.md).
|
|
228
|
+
|
|
229
|
+
<!-- gallery:start -->
|
|
230
|
+
|
|
231
|
+
## Examples
|
|
232
|
+
|
|
233
|
+
The eval suite (15/15 passing): robot-arm links, brackets, a bell crank and a hook, each optimized and then checked by a fresh analysis of the delivered mesh. "Under envelope" compares with the design space filled solid, not with a conventionally designed part. These are simulated results; see [docs/VALIDATION.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/VALIDATION.md). Blue arrows are loads, red is keep-out. Every view, stress map and number is in [docs/GALLERY.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.1/docs/GALLERY.md).
|
|
234
|
+
|
|
235
|
+
<table>
|
|
236
|
+
<tr>
|
|
237
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/arm-link.png" width="250"><br><b>arm-link</b><br><sub>55.3 g · 56% under envelope · SF 8.92 · pass</sub></td>
|
|
238
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/arm-link-cast.png" width="250"><br><b>arm-link-cast</b><br><sub>67.8 g · 46% under envelope · SF 20.11 · pass</sub></td>
|
|
239
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/arm-link-driven.png" width="250"><br><b>arm-link-driven</b><br><sub>48.4 g · 61% under envelope · SF 11.17 · pass</sub></td>
|
|
240
|
+
</tr>
|
|
241
|
+
<tr>
|
|
242
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/bell-crank.png" width="250"><br><b>bell-crank</b><br><sub>23.4 g · 84% under envelope · SF 3.22 · pass</sub></td>
|
|
243
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/grip-turret.png" width="250"><br><b>grip-turret</b><br><sub>140.4 g · 91% under envelope · SF 2.85 · pass</sub></td>
|
|
244
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/grip-upper-arm.png" width="250"><br><b>grip-upper-arm</b><br><sub>207.7 g · 88% under envelope · SF 7.33 · pass</sub></td>
|
|
245
|
+
</tr>
|
|
246
|
+
<tr>
|
|
247
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/grip-wrist-link-mjf.png" width="250"><br><b>grip-wrist-link-mjf</b><br><sub>40.2 g · 95% under envelope · SF 5.83 · pass</sub></td>
|
|
248
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/grip-wrist-yoke.png" width="250"><br><b>grip-wrist-yoke</b><br><sub>17.3 g · 93% under envelope · SF 3.88 · pass</sub></td>
|
|
249
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/mbb-beam.png" width="250"><br><b>mbb-beam</b><br><sub>13.8 g · 79% under envelope · SF 1.51 · pass</sub></td>
|
|
250
|
+
</tr>
|
|
251
|
+
<tr>
|
|
252
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/motor-mount.png" width="250"><br><b>motor-mount</b><br><sub>27.6 g · 69% under envelope · SF 3.65 · pass</sub></td>
|
|
253
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/printed-hook.png" width="250"><br><b>printed-hook</b><br><sub>24.2 g · 84% under envelope · SF 2.73 · pass</sub></td>
|
|
254
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/wall-bracket.png" width="250"><br><b>wall-bracket</b><br><sub>26.9 g · 94% under envelope · SF 2.85 · pass</sub></td>
|
|
255
|
+
</tr>
|
|
256
|
+
<tr>
|
|
257
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/cases/wall-bracket-fasteners.png" width="250"><br><b>wall-bracket-fasteners</b><br><sub>26.5 g · 94% under envelope · SF 2.57 · pass</sub></td>
|
|
258
|
+
</tr>
|
|
259
|
+
</table>
|
|
260
|
+
|
|
261
|
+
Where the load goes: von Mises stress, blue (none) to red (the part's 98th percentile), on the part bent by its worst load case:
|
|
262
|
+
|
|
263
|
+
<table>
|
|
264
|
+
<tr>
|
|
265
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/stress/bell-crank.png" width="250"><br><sub>bell-crank</sub></td>
|
|
266
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/stress/grip-upper-arm.png" width="250"><br><sub>grip-upper-arm</sub></td>
|
|
267
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.1/docs/images/stress/printed-hook.png" width="250"><br><sub>printed-hook</sub></td>
|
|
268
|
+
</tr>
|
|
269
|
+
</table>
|
|
270
|
+
|
|
271
|
+
Two-fluid heat exchangers: two isolated channel networks through one sheet gyroid, with headers that print without support.
|
|
272
|
+
|
|
273
|
+

|
|
274
|
+
|
|
275
|
+
Printed in metal, nothing inside can be supported: the channels end in peaked roofs instead of flat ceilings (red).
|
|
276
|
+
|
|
277
|
+

|
|
278
|
+
|
|
279
|
+
Made another way: the same arm link printed, cast (no undercuts along z), 3-axis milled from both sides with a 6 mm cutter, and with members capped at 6 mm. Each meets SF 3 and 0.5 mm.
|
|
280
|
+
|
|
281
|
+

|
|
282
|
+
|
|
283
|
+
<sub>Rendered 2026-11-03 from `6c97b57` by `python docs/gallery.py`.</sub>
|
|
284
|
+
|
|
285
|
+
<!-- gallery:end -->
|
|
286
|
+
## Limits
|
|
287
|
+
|
|
288
|
+
- Linear elastic, small deflection in the main check; large deflection and
|
|
289
|
+
buckling are separate analyses (`nonlinear.py`), with contact (rigid
|
|
290
|
+
obstacles and self contact, optionally with Coulomb friction) and
|
|
291
|
+
tendons there only.
|
|
292
|
+
- Printed layers are modelled as transversely isotropic stiffness plus a
|
|
293
|
+
tension-across-layers strength check. Interlayer shear is not checked
|
|
294
|
+
separately.
|
|
295
|
+
- Material cards are datasheet values until you calibrate your printer
|
|
296
|
+
(`loadpath calibrate`).
|
|
297
|
+
- Results depend on the grid: mass at a target safety factor moves about
|
|
298
|
+
5% with small changes of grid size or starting point.
|
|
299
|
+
- Pure Python with NumPy and SciPy. A 40,000-cell study takes a few minutes
|
|
300
|
+
on one laptop core; a safety-factor search runs several of those, and the
|
|
301
|
+
larger eval parts take 15-60 minutes on four cores.
|
|
302
|
+
|
|
303
|
+
## Tests
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
python tests/run_tests.py && python tests/test_loadpath.py # core
|
|
307
|
+
python tests/test_tutorials.py # every tutorial, quick mode
|
|
308
|
+
python -m loadpath.evals.run --tier coarse --corpus 6 \
|
|
309
|
+
--baseline loadpath/evals/baselines/coarse.json --gate regressions # under 30 min
|
|
310
|
+
python -m loadpath.evals.run --out evals-out/ # full eval suite, hours
|
|
311
|
+
python -m loadpath.benchmarks.run --out bench-out/ # top88 / top3d benchmarks
|
|
312
|
+
python docs/gallery.py --evals evals-out/ # refresh the Examples renders
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
`.github/workflows/tests.yml` lists the full set CI runs.
|
|
316
|
+
|
|
317
|
+
## License
|
|
318
|
+
|
|
319
|
+
MIT
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
loadpath/README.md,sha256=KNHIYmS3wnNtmpMiChDuYoeo0NCNVu3jtp7ppQ_gkUQ,20928
|
|
2
|
+
loadpath/SKILL.md,sha256=T17cpUkVI_lGaq01VcaSPGgjhK7PEtwNOXwonsnIwLc,37509
|
|
3
|
+
loadpath/__init__.py,sha256=CeRtHL8jOiGGiq6b-WBEkuM2VLhPXFMJar60D93pimA,897
|
|
4
|
+
loadpath/__main__.py,sha256=HdtgpjjtX2jz_FV3SH5oVRch1T4R6oWaFhrUK14Dazk,65664
|
|
5
|
+
loadpath/am.py,sha256=j4oYmoDCT1KjejhptzPA6G1rMzEfZiW4sbRMMKtidms,13224
|
|
6
|
+
loadpath/amgfast.py,sha256=yBYA3fmmNofPYFcboPlguW3vFDYPDYmvSJEEdE7GduQ,12074
|
|
7
|
+
loadpath/assembly.py,sha256=iuIW2rq1APmFuPNexPdMpBq3I_0FI_MEk-zo485wTls,46638
|
|
8
|
+
loadpath/brep.py,sha256=X4q8lc7mQK_QhqOwZedra7vWerhMnz5Vgpe9PX27BWE,64129
|
|
9
|
+
loadpath/bucklingopt.py,sha256=ZisS1HOK1niVXx7t3ymwbazprDCUNNlai1V0-eZOUvc,12627
|
|
10
|
+
loadpath/buildsim.py,sha256=0nfqC2HBrQlZecqo3TgPOUS_bIPh8rJnXWGASrHTBgI,70657
|
|
11
|
+
loadpath/cadimport.py,sha256=MI5WLSlyRuHg8Skl0cGlWPAPEudW-iltpdEtM-lZGlE,41264
|
|
12
|
+
loadpath/calibration.py,sha256=H_c-lHCqXfx8QOJ1LSH4y3LLoIjEcOj93Zm7lzEVXto,42664
|
|
13
|
+
loadpath/cavities.py,sha256=uGjVZXwTRyUEEdEnt2AVDDiQjd_QAbK8IPfYP9rOYak,9682
|
|
14
|
+
loadpath/conjugate.py,sha256=KeLIqTdcnWGtelw0HZd_qqC6MrCu9gxHnOdWvMuyrHo,11819
|
|
15
|
+
loadpath/constrained.py,sha256=Dj3KJZ9MmSq8OFOdWVr15M3LFdPn_nVI8AEJIi5zk04,15767
|
|
16
|
+
loadpath/contact.py,sha256=web82bqJm9B7bcvkCg3mq1m6rZVaW44F6t-dirS5SIA,34585
|
|
17
|
+
loadpath/coopt.py,sha256=FiFop3B3cn4SabtpqqeDOkKFjDpLQlkwSXZiyIbZ3QU,16562
|
|
18
|
+
loadpath/cores.py,sha256=iG_nfyJ73sBGBWSBNkY226fSc88mTD_mMBuAxWiI4T8,8268
|
|
19
|
+
loadpath/crease.py,sha256=paLhCbCL8XT5Suxqa6eJWtUqDe5xASbD4OTFBjMAneg,48787
|
|
20
|
+
loadpath/critic.py,sha256=T8g3y1nNH6ZpFbpmOk8DuuItj8oBp5I0Yj0auRGvcxI,9297
|
|
21
|
+
loadpath/crosscheck.py,sha256=P2G8QUWxMvXfsRomkQvTnVqejbXNiNRHkdlWExHSv9g,51655
|
|
22
|
+
loadpath/cutcell.py,sha256=Cidw5t7wDELw6Oe5kUZ_nt50kDKss7sG5_YR-7dUasY,24009
|
|
23
|
+
loadpath/decimate.py,sha256=z5OszJwiic1iFsR5X_LsXWARcaMVMNG-98_N6NpVe8Q,8010
|
|
24
|
+
loadpath/delivery.py,sha256=fVZHqAyf6aeggbt6kWADhcrymL0YywZ-InFfDxhId4Y,10697
|
|
25
|
+
loadpath/directions.py,sha256=_ZxGr6X4EoO9EoGBt0utARNnuIA3BqEQNEeYcUgPfIw,10611
|
|
26
|
+
loadpath/domain.py,sha256=AuP42IfvQSvdeLZNtQEWdrNrGN47UAYde9hu9dJ27-I,31318
|
|
27
|
+
loadpath/drains.py,sha256=Yh_eYck3hy0GW82wEZ4sv8Vr6aSWRo0JJ0hl3WWs-I0,29199
|
|
28
|
+
loadpath/durability.py,sha256=rsv3-TqE7XhXLGDiw8WG0KAi7e9dqnE1WfIpP_vKjE0,21319
|
|
29
|
+
loadpath/editor.html,sha256=Ht8rWUr2xqr0WfFZ9jh1F0dMtSRkgFpuISrQRGiBFgI,191080
|
|
30
|
+
loadpath/editor.py,sha256=g2B7KH-_WVgZcl5mS_F4A3AmWDmlj3oc6aMCpB_B8ME,29791
|
|
31
|
+
loadpath/escape.py,sha256=Y7DE6ogNKQ-_w1e_3_4EEDiz9QZZb0T813d1mnHsfiY,16188
|
|
32
|
+
loadpath/exchanger.py,sha256=tNnRxr0mdwpQOO-dt8KwV__3rrRc3IZXV3HLn5-lmH4,42148
|
|
33
|
+
loadpath/fasteners.py,sha256=MyQLlabSkIsaZ2V2w-3GxooJwGCpWqXqMOgQdo1GA_A,10335
|
|
34
|
+
loadpath/fem.py,sha256=0rXxJhrb6UpTGSbrw1lytzJWOl0p5kQV5dWaqT4a3eE,27975
|
|
35
|
+
loadpath/femops.py,sha256=1WVRrZnIVFVW1e42Jp2bWtESSUZe71-knvavSGCjAeQ,2406
|
|
36
|
+
loadpath/fieldjit.py,sha256=dESvSUUopKm2urHXIq2v893qaS5FIKz3K85DgB0-VKc,40167
|
|
37
|
+
loadpath/fieldops.py,sha256=FPn04ty4AgXHzRzCOK7aNSYJs7eJ7s3MsZm6okU2YE0,4710
|
|
38
|
+
loadpath/fields.py,sha256=j7gx816PPefuETaJARdPyr5IKf0HxNNy32tS4RokEaI,174879
|
|
39
|
+
loadpath/fieldtorch.py,sha256=8pVEbHvNmaUN4PVtoG1GC-CQRWSWPMRMM-9MLSn4lTM,20602
|
|
40
|
+
loadpath/flow.py,sha256=Yc2YOulvxk81NxywxpNJmiE28rRPxaFxQ1lFW3kZMfo,45750
|
|
41
|
+
loadpath/flowtopo.py,sha256=R0yOlHsC4RzO3LzO8hW_w-YjizVV4p1NThaEylhH8DA,12908
|
|
42
|
+
loadpath/gpu.py,sha256=69qFRw-ru2iFjNIbvC6iV9rVqZl8HE9Z3rc-1oKCPgc,21728
|
|
43
|
+
loadpath/heatx.py,sha256=GmMSOmg5uTTMrtDsNvr9BUo4uD6PA2tzbbTKH1sBhHI,56253
|
|
44
|
+
loadpath/heatx_thermal.py,sha256=2TAXaYJFN3e8K5q7a7RSQjiWYAhlhGOZC4HF7IHv0H4,20315
|
|
45
|
+
loadpath/homogenized.py,sha256=2h-3FnyFH12Tcw0nIokehIx9rj-ZE6M6j6gUmGpo5_0,45120
|
|
46
|
+
loadpath/ibrep.py,sha256=MDcLF8JZDZv9reQr4C62fCdgrfj0v7wD4MG0wMnCCOU,24436
|
|
47
|
+
loadpath/impact.py,sha256=TjKdJlUGPvBYXxkG7iJeV8Qy-2y5T6EHQNoplOiGgBI,35227
|
|
48
|
+
loadpath/infill.py,sha256=sIfisr3sdP5_GM1yJdPXmQL_55ubCyT344nvTnD7B-o,17658
|
|
49
|
+
loadpath/interface_library.py,sha256=GjX3Sy6Mv_ojr85wVOnBVeUpFda3rDs5NJ-yw18_V3o,19709
|
|
50
|
+
loadpath/interlock.py,sha256=FnJJREIksFbHXkO__ECjY3lNvQib4IF4FK4oFjIzkT0,9118
|
|
51
|
+
loadpath/isolator.py,sha256=t6mS13T25AGMC5PcJSogP_Rt6dBw8Dagn7YjzwXoMNE,6930
|
|
52
|
+
loadpath/knn.py,sha256=hIxH2fMtB7chngRzqAB75wd7_YR_qN4MeYnyNRQBSnA,7576
|
|
53
|
+
loadpath/lattice.py,sha256=Le_8yISveZxirDz50d3rJzyr3fquhnVE4dtkTGt8858,51420
|
|
54
|
+
loadpath/lattice3mf.py,sha256=FJrByNYad10pMg1wxEZeKl1L9qDgMzsAzcp4CKJiPG4,31278
|
|
55
|
+
loadpath/lattice_buckling.py,sha256=Ujdr19fsbRlywFhMFfbtFglPfpux118V7FJLl4-iq8o,10658
|
|
56
|
+
loadpath/lattice_grade.py,sha256=hSBM4Ts5YgoEGMZ6Ctba6sA1ovPYvmk8xGg53Ui9hZA,15601
|
|
57
|
+
loadpath/lattice_orient.py,sha256=yTs5mwO4L0xrnERB0JkY-BEOUgJMQ-N_8CPTouT_erQ,29630
|
|
58
|
+
loadpath/lattice_print.py,sha256=_DGIiSS-lIX9aVB8zzvFLxV2zQZB5G2SKZwxeqN0Yrg,7680
|
|
59
|
+
loadpath/lattice_tensors.py,sha256=zx_YoWi_jjnT7Qdlyj_AX9ho3RdmA8o16oYMXkgte7A,23664
|
|
60
|
+
loadpath/latticestep.py,sha256=7bwDqNY8l9_nH0GqKBKsPhLzur-nyPdovSGkXZRdHi4,54798
|
|
61
|
+
loadpath/manufacture.py,sha256=iheujxNBZ0h0DEkJ1HJfSMr3gs3T-gpH_pqJHufwX8E,19660
|
|
62
|
+
loadpath/material_library.py,sha256=qHZTJY4jwvit71P5UYkolINTFKEA9qIF7RQSBTGsVhc,33227
|
|
63
|
+
loadpath/materials.py,sha256=-vJlWCwc-idJwRXZbZHSSlDTEPpPKpsqu27EVt-df3M,6868
|
|
64
|
+
loadpath/mcp_server.py,sha256=ODdPnR-t7S8Ramnt8bEg4SelCE60foC-GmFl2lr77ps,39283
|
|
65
|
+
loadpath/mechanism.py,sha256=E45TsI_2IPfLOoAlqiX65tAlHzC32xySZ2jj_ZXk7cA,10160
|
|
66
|
+
loadpath/mechanism_nl.py,sha256=nW1x782PKyzEOzXHUZTjOpd5-aSIsbbJFQxHoSv3O58,38511
|
|
67
|
+
loadpath/meshops.py,sha256=JJo-CVy5y6W3xrgsPy46GBqUuNbc-3PU5lILKmSBCgc,16645
|
|
68
|
+
loadpath/mg.py,sha256=EdPyZ6_wMgE2IAavnxF6sH8COHdhn1WFxooffQMSclA,35498
|
|
69
|
+
loadpath/mma.py,sha256=Yx2seYr-_SwaNifrWjgu98MbyGznMXJiZFAjGTroT8k,9234
|
|
70
|
+
loadpath/modal.py,sha256=WraoWCj3JCrLdV9ivDeQoSDppL2-G8Dcq7ytWQLnB1I,9735
|
|
71
|
+
loadpath/multimat.py,sha256=gaQ3nTSyNhhEvmZp61oUgXmUP19oRl6PE_EhiRdw-nY,87015
|
|
72
|
+
loadpath/narrowband.py,sha256=ugyqyQu5qVh_kkElps_HoXZJHQb8TqDp6xh82OGOacU,17066
|
|
73
|
+
loadpath/nlkernel.py,sha256=SAjJxtGcYd0UAC8c8xB3RjyHrodOk7GOuQzKso6AVwA,10941
|
|
74
|
+
loadpath/nonlinear.py,sha256=nMiop68ZkCFEMilibzMpD-lIBlZx5Ja_tua2Y80EuPI,53389
|
|
75
|
+
loadpath/orient.py,sha256=fqk0gc4_jfztdsoQTvN0fhRzYITOKW90BMr2w82k47M,16176
|
|
76
|
+
loadpath/porous.py,sha256=Qbry7dnNkANkHQjEaIA5UQB3RjE5kclHZ5ifQYihgE0,45889
|
|
77
|
+
loadpath/pressure.py,sha256=rt1q4Jr4OYRA9UYNgPod1MUZI-4bw-tG8kSSckkuMow,7173
|
|
78
|
+
loadpath/preview.py,sha256=WUZQc26s2KtIeuo1fW7gAe7TSh9j3nQcOD_JqejVd7U,15718
|
|
79
|
+
loadpath/printcheck.py,sha256=3YGr1bLnjDWc1yS2p9-WUH33T1WBBQRvR5K7x_YK98o,12735
|
|
80
|
+
loadpath/printsetup.py,sha256=3O6t7uWYS3u4LySUZryuMXfwSNnKt9Vnf8SnQZXVtWU,10403
|
|
81
|
+
loadpath/processcheck.py,sha256=Sky4P0EtxNVsZLHGFORfIDuYSjKJMtqImTigKP57Bsg,19702
|
|
82
|
+
loadpath/quick.py,sha256=rJEbIAh0DJ_m06OEwR9qh07ED1s2etSUnn0eduLF4hg,4313
|
|
83
|
+
loadpath/recall.py,sha256=DxupoJBgefppqdm6EQXP3xcVQn_7NoRgK9zZ8xE08jM,17996
|
|
84
|
+
loadpath/reconstruct.py,sha256=0asDtutZmbLzNh2RezXWMuzbZTa4wh1ktwp_G8KqtpE,39365
|
|
85
|
+
loadpath/render.py,sha256=px4dDaQ09Z6Em9vuZB5URIZJJpH2UC2AJA3Bnb4h9p0,20336
|
|
86
|
+
loadpath/resolved.py,sha256=6GFYl9vOvFvvqYm4uxm4K_JnRKnycTePzZKccaPQr0k,9362
|
|
87
|
+
loadpath/schema.py,sha256=Ic1TZIkgAbJNAQ-_0Q_794_UfMGMasfnbJERkc49DtA,129406
|
|
88
|
+
loadpath/sdf_kit.py,sha256=-IATW7_0yuDjJhjHBUK1PEmXBLPbykM5IRqaZ80EwVY,35966
|
|
89
|
+
loadpath/selfx.py,sha256=AmBTkI6T3ktwHFhyjv5ifQ0TpxyJVl1m-OPCVm4TmuA,12235
|
|
90
|
+
loadpath/shapes.py,sha256=e62_7m32ABwr_jqHk0wEMBBbBbL7VNJ365xzgMVbt0Y,23356
|
|
91
|
+
loadpath/sharp.py,sha256=hWg7lSQuBEa1weac_9vJXYqfactjN9EiOokpDUadD10,29725
|
|
92
|
+
loadpath/simp.py,sha256=9ATLo24w-D8cmztnSF_FQX0G48S8xi2gyOBKsdXMlAA,53078
|
|
93
|
+
loadpath/sizing.py,sha256=B4hsiF_cVYwcqoL_ztdmdPH6zpS7eBFuTyX9y3xip-Y,18092
|
|
94
|
+
loadpath/slicer.py,sha256=W_Qf_y__L8V8hqGr8zvyKZu1zAMHO5yn3iHWjMm3OW4,13813
|
|
95
|
+
loadpath/spec.py,sha256=zDUgqHCdtUbN0PQGpXGUUyob8PEdzxe68Kp71t_jR6w,55406
|
|
96
|
+
loadpath/step.py,sha256=_qbRIIHy9t9jQVdb3y88x1hFV34KTk7fWLXaIJ7_MNI,31075
|
|
97
|
+
loadpath/struts.py,sha256=eQk6P7aUfMdv3vwKfI8qP9940CNbqpu6ly6ug2J19WM,27016
|
|
98
|
+
loadpath/study.py,sha256=huIn1alPbTfDXuteqbMgI7YmehAo0DxEBIR-01EeVhA,100217
|
|
99
|
+
loadpath/tasks.py,sha256=US2-GVGjZlZiTCzeUx7PJBjc5MkJK1E8KtOPttgjmjI,42073
|
|
100
|
+
loadpath/thermal.py,sha256=oesOm9Ngyjc7OYIomiMrlXRz6UXqSDkWDKk0brwMDUE,80503
|
|
101
|
+
loadpath/threemf.py,sha256=OfAr1N8oGHdvtleWKKwWMpXXgOhNBOdA3yL6vRrQ-t4,25033
|
|
102
|
+
loadpath/tune.py,sha256=bawq2lHIXBT3Jzkk1VIIngW9AzwSAHsV1V7cjYx5aDI,20342
|
|
103
|
+
loadpath/validation.py,sha256=as0XU1DMluRcvKjQLJhCfVt6HAJlxdj1_CDcOlSObrQ,6503
|
|
104
|
+
loadpath/verify.py,sha256=h2XHpevUfTL2qJ8pELhy1VIE_GeI-OLKnbLLE74N20Y,60662
|
|
105
|
+
loadpath/viewer.html,sha256=UAilDvDEN5nBiL_ZEHcdgQD0XedFRBQwWvoUN2PBCTQ,38241
|
|
106
|
+
loadpath/viewer.py,sha256=1EhIb8h0SNjYtFL9jwE3FasSC9EKY1NAVZskM-JOvwo,20363
|
|
107
|
+
loadpath/viscoelastic.py,sha256=DHo14soKrhE5_-rd1WgsKarOP0KoEplECXBxaHpXuWk,4431
|
|
108
|
+
loadpath/voxelprint.py,sha256=bPG4wLnUyI-Cvwp_HUXuWqFnKZnU66_nOACij-dsABU,25796
|
|
109
|
+
loadpath/voxels.py,sha256=zBU0AU40rh5x_ILM0kSSsv6amv7oee-lrOHsCForbro,18917
|
|
110
|
+
loadpath/benchmarks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
111
|
+
loadpath/benchmarks/beams.py,sha256=mXYCJEdgbOCl8nONXpJuVe2Z7hiCXKLCK8AnA618I9M,11778
|
|
112
|
+
loadpath/benchmarks/evaluate.py,sha256=aFlCdA1iakgjSvrmI8ji4YHh5qSiCCYwsw9pylMF5Uc,7537
|
|
113
|
+
loadpath/benchmarks/mechanisms.py,sha256=z1-S_1E4JNonPbwo0KMoya7e0Lpm-vAVpzJV4Qbf51k,18300
|
|
114
|
+
loadpath/benchmarks/problems.py,sha256=9G46BjH3aw7HpLu_gU9GPnSS8gRL-YdqsbFdalNS6u0,6227
|
|
115
|
+
loadpath/benchmarks/reference.py,sha256=aUO_KWEjk95IRb8DBJOjSQTbxT8REu3WH76LXmlmGbg,5484
|
|
116
|
+
loadpath/benchmarks/run.py,sha256=bGpjNmwxfq79eLRQZxuk77-6h6hV7jABrHJZE_FYu84,13169
|
|
117
|
+
loadpath/benchmarks/cases/ge-bracket.json,sha256=Ki9uIMWiwu69ORpiOxH7bI8PtntUX6AGlg8YnNuw-pM,6508
|
|
118
|
+
loadpath/benchmarks/reference/bridge-3d.top3d.npz,sha256=B8c2T7QKjmXHqzZV9Rt_l-z91ReNqQoThD3iNdiTlnY,6288
|
|
119
|
+
loadpath/benchmarks/reference/cantilever-3d.top3d.npz,sha256=g9Fh0owfTaJ5_-blJkfEs3SylHq7cX2L4jlY-TI0J9w,10507
|
|
120
|
+
loadpath/benchmarks/reference/lbracket-2d.top88-ft2.npz,sha256=MPeajfQoicsX3QIl528SdBciJH91ki4GnMRT3g2Sb0U,6128
|
|
121
|
+
loadpath/benchmarks/reference/mbb-2d.top88-ft1.npz,sha256=Y53hZcyPvVtAggty2EMA6cjkXhgYbmYpScQ_vEQmTT0,9944
|
|
122
|
+
loadpath/benchmarks/reference/mbb-2d.top88-ft2.npz,sha256=HtyHE-om3Eb37-VAkwkDpk5jlcU256Fme74_TFS2ICc,6735
|
|
123
|
+
loadpath/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
124
|
+
loadpath/checks/dfm.py,sha256=5KZNDKIhAnUmIf1PqL53j61S9r75LVb8q_FpbtLtpI0,16229
|
|
125
|
+
loadpath/checks/exchanger.py,sha256=1UqkYc1gWIAIo0LT91wZqujyfcwpyELiQmW-fvsGCr0,221
|
|
126
|
+
loadpath/checks/fea.py,sha256=fWKRmkFgExHHT4FxQwFqhqJGOGahOoidHXF0NGAKUrI,9038
|
|
127
|
+
loadpath/checks/fit.py,sha256=hYCf6yl2j58IBGQwNlpZMSEiZAQk8E1fF4rMfNesAjQ,20238
|
|
128
|
+
loadpath/checks/networks.py,sha256=RO-5CUxPdjvARqcYzFZS4CX6x1Czrqp4NEQfSnauvEY,12210
|
|
129
|
+
loadpath/checks/opening.py,sha256=FG3eJLQs81zwCB1_4CFVii1FuOzKKHDl0JQSigQFIU8,2812
|
|
130
|
+
loadpath/checks/sdf_kit.py,sha256=lL6mRLIH4F9Fme121SNVzj5O6QecmmreYgJ2ck9K8O0,215
|
|
131
|
+
loadpath/data/lattice_buckling.json,sha256=VnsrRRpve2Bl8PcFlXcmTzQ_aBGkOrJjAtun0HMz90c,7586
|
|
132
|
+
loadpath/data/lattice_tensors.json,sha256=e6FADvcINLjF5jBs1G-zIf2a-aZNY3SWaTJNuCerAx8,409096
|
|
133
|
+
loadpath/data/published_experiments.json,sha256=aiqKpsKo7v4VpGQA1fN-7wD5ej74hzZQt01HMpGK06U,13857
|
|
134
|
+
loadpath/evals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
|
+
loadpath/evals/briefs.py,sha256=ny5xTRlUrlYDAT1Zod7v2w6Gc9oUl__sBNyrQVV594U,17587
|
|
136
|
+
loadpath/evals/corpus.py,sha256=m4U2Xz55AEdfvHNVDfHbqkwdB1dsTLbOPOB50UQ-Mmk,8234
|
|
137
|
+
loadpath/evals/pareto.py,sha256=4Hx8WrYday0OORfI0_6YvqKUrGdarTHgS_kKVwxUQ2s,3729
|
|
138
|
+
loadpath/evals/run.py,sha256=gqoOGIC4lKMnJWHiw4SWQgI0eUEQGgWp9IVsTXGfOxU,44054
|
|
139
|
+
loadpath/evals/baselines/coarse.json,sha256=Qmv6fKZ_vrD3SInnB1c16B6eFoNB32kKbjKxIp5ooN8,29783
|
|
140
|
+
loadpath/evals/baselines/full.json,sha256=rsU4c8Mn_2ZFJHHdyF8yV9BDbVmHNMfnbSbJKo2mqLM,28105
|
|
141
|
+
loadpath/evals/brief_kinds/__init__.py,sha256=HHh-ZKyLYa8yLwpZrn_AjWxyZy0OEf0kGO1esyNMCUo,80
|
|
142
|
+
loadpath/evals/brief_kinds/heatx.py,sha256=KTP7ZHRqV9zThfCvRWVGCSEIFIJoJxQDK1NJdJ_Xyh8,19364
|
|
143
|
+
loadpath/evals/brief_kinds/lattice.py,sha256=pfpv3Q1sRTZ8L-aJCh_X2qtkZAia7uoHgM2NpD_d5Ew,26416
|
|
144
|
+
loadpath/evals/brief_kinds/multimat.py,sha256=jKsmm6igWDfTbLIsoWPv1lCAX_Ir_GhrJ--Qtwmo5so,26396
|
|
145
|
+
loadpath/evals/briefs/base-adapter-fdm.json,sha256=1IYkd3Ye62nUR5XMPHTCOPC9OBNuRjOLNqjTYmLBrwU,7573
|
|
146
|
+
loadpath/evals/briefs/bell-crank-lpbf.json,sha256=dt5YzwisvqPvn8oDDTxHC8aCjn87s-IhFFPD63riyRQ,2849
|
|
147
|
+
loadpath/evals/briefs/belt-tensioner-fdm.json,sha256=4bFGunV3Pmh6s1J5zkihiaziXuvZJG64_dEA2BZgxn4,2519
|
|
148
|
+
loadpath/evals/briefs/camera-boom-mjf.json,sha256=VZPgo3TFkVlI9Rv5fIRjoBKA-nA9txSUt-9eVXrCqio,5017
|
|
149
|
+
loadpath/evals/briefs/camera-mount-pla.json,sha256=0Ex3JZoamOc-vzzl0jmF_HLb4cdxwmGMEwcTvIlSomo,3370
|
|
150
|
+
loadpath/evals/briefs/coolant-isolator-petg.json,sha256=PYVXqgmBvBk-jHiKlKbpIp7GCPbe2OcsTvIytNjbpyU,2055
|
|
151
|
+
loadpath/evals/briefs/elbow-bearing-bracket-sls.json,sha256=aYLLsliJkrbIqls0siY3WkUM2aKmc7DgIksS7GjKJsE,4891
|
|
152
|
+
loadpath/evals/briefs/elbow-gearbox-forearm-mjf.json,sha256=MCWcPCYD5Fbv9bE8oaTGQd1_DgWhJACJgCMlkI3qJms,9461
|
|
153
|
+
loadpath/evals/briefs/elbow-link-fatigue-fdm.json,sha256=iwsybIUtAafD1djX2oLgaxUXP53nOT-GEwqprhKcKPA,4465
|
|
154
|
+
loadpath/evals/briefs/elbow-stop-pad-tpu.json,sha256=NNelSwRl8MwWAJN5sNLD2SRghzhVjjsgyp0rt1J0cPg,1179
|
|
155
|
+
loadpath/evals/briefs/forearm-fdm.json,sha256=s8wGvUFIQ-azXYrRylaB_C_81KfO80WVXV-STz8a-rQ,2454
|
|
156
|
+
loadpath/evals/briefs/forearm-servo-link-fdm.json,sha256=fQFxZjwg906_iGOWSzv6b7bdq6eJyK7LtYxpiCGIyWg,5590
|
|
157
|
+
loadpath/evals/briefs/grip-pad-finger-mm.json,sha256=tOMEFHyurSe4blYfCbzGlgeb2h3um6zgBWgD9UWtJ9w,5091
|
|
158
|
+
loadpath/evals/briefs/gripper-bracket-creep-fdm.json,sha256=M17Aj-8y-QujC6bqVNS-vIQPrCPbHaKRcR07f3_5e-s,5721
|
|
159
|
+
loadpath/evals/briefs/gripper-finger-fdm.json,sha256=j_C8S9IaXBtUrBtVFgJqR6brM_7Vxf7Z8dV1GvoSOdw,2629
|
|
160
|
+
loadpath/evals/briefs/gripper-jaw-fatigue-mjf.json,sha256=K6yFtZNDEv2HV1zF5QHUFP3IpVCigW3SBtjzMw1QQ8g,5256
|
|
161
|
+
loadpath/evals/briefs/gripper-palm-fdm.json,sha256=7TdiesISmeR4AaKiNOWmeenEM04nKfonWrd2upbr32o,11221
|
|
162
|
+
loadpath/evals/briefs/hot-stepper-mount-asa-fdm.json,sha256=20u4AZ56eP2MkWWUdjx9mIVG17matvOS2YYKLP6VcyM,7790
|
|
163
|
+
loadpath/evals/briefs/hpu-oil-cooler-lpbf.json,sha256=vptw2QFTxS8pS3TQ5K7fwmZzxMJetHUcLknsRacuQfQ,2386
|
|
164
|
+
loadpath/evals/briefs/isolated-camera-mount-mm.json,sha256=qBz5VehifMYl3dg5IgQoDCNkfE1iQcrsQ2A2dKzob0A,9550
|
|
165
|
+
loadpath/evals/briefs/kart-charge-cooler-lpbf.json,sha256=_8m5i2Fdd0RSxXuBsqEp7r5GVO3nOHLzmiDRpgmP8cY,1918
|
|
166
|
+
loadpath/evals/briefs/lighten-step-bracket.json,sha256=wrnbWnxfYyun4LtzcvUvbJrZw2OZQVf9fWSiGWZAtJs,3286
|
|
167
|
+
loadpath/evals/briefs/nema17-mount-stl.json,sha256=flYlDYKWs4uQOJ-_NMc8wq2EOygwgWnMiGHJfIOvWqA,6323
|
|
168
|
+
loadpath/evals/briefs/pillow-block-sls.json,sha256=CnDoYMwFy87Vs3zXSskf1JDV7WAKZ3laLcUMjgsbhRg,3625
|
|
169
|
+
loadpath/evals/briefs/polyjet-fingertip-mm.json,sha256=TwPyvpIEKkDcRwyL68BsesIhAC0HQHOWVZ93wMcOsmA,4567
|
|
170
|
+
loadpath/evals/briefs/rod-hook-pla.json,sha256=KbHHUlZdZ7qNpkFT7174L8BWMuaNFC8hnzBMUuPSjqk,2599
|
|
171
|
+
loadpath/evals/briefs/sensor-arm-resin.json,sha256=1tEY8y4D6FedeG45npiFsSwsCx40U50RQTuX6-XqrVk,2477
|
|
172
|
+
loadpath/evals/briefs/shelf-bracket-pla.json,sha256=L1uzi28TVZrbCs2YKu1a6MFwZyixFlubqFY2JmtJPgg,2667
|
|
173
|
+
loadpath/evals/briefs/shoulder-riser-mjf.json,sha256=hIer14n0jADVnXdOB-gFo18xw3W9AK-Ff_dAldILPSI,7118
|
|
174
|
+
loadpath/evals/briefs/sketch-clevis.json,sha256=jvIgHzIwcecpXdHEweG1S5q97Fs9KqpCm3JrINzycyM,2976
|
|
175
|
+
loadpath/evals/briefs/spring-bracket-pacf.json,sha256=JYpCKF0y4nj8hCE3tSNTGBLOBxay4RPNMVT0e1_XpRc,4490
|
|
176
|
+
loadpath/evals/briefs/tool-flange-ti64.json,sha256=kj3mOgEOEsrshU4WXhG-koNb_4FzCiXzvLVnmuRMHp4,4567
|
|
177
|
+
loadpath/evals/briefs/tray-arm-lattice-fdm.json,sha256=nvNEOGg--HVA8sy0DAOWf7XtnOUTlSAEo8Do4Mm1FRM,4169
|
|
178
|
+
loadpath/evals/briefs/turret-fdm.json,sha256=MNqjhQ47QMY421djHsZjIC1rjisQXNYWQAM3BU3SLQE,4746
|
|
179
|
+
loadpath/evals/briefs/upper-arm-sls.json,sha256=S4bH4qq9ey3ZWwPISypHzi4C7wcxvYTODoO89yMob5A,3084
|
|
180
|
+
loadpath/evals/briefs/urdf-forearm.json,sha256=IQiygJaNNLYN8vwieDD9u4KRZ26WF8_8weMVc5bF1TQ,3628
|
|
181
|
+
loadpath/evals/briefs/wrist-link-mjf.json,sha256=JRQrTy6rgK8MGJg9pPrWkIpCJwGdospL1H0j8Uw7t-w,4280
|
|
182
|
+
loadpath/evals/briefs/wrist-yoke-mjf.json,sha256=gOFsD7C3_YaD9rxeuveetdLN9RnNIB_b_X_HJsXdPHA,3958
|
|
183
|
+
loadpath/evals/briefs/assets/bracket.step,sha256=UXshvD9m-1FE2a3lfV9evwKntnhjdWRH0cSjA4xzJTM,44916
|
|
184
|
+
loadpath/evals/briefs/assets/desk_arm.urdf,sha256=U8SjQZDrWtDJfNJhD5uGSe4KSR4DK2gijVQ8xGk9eVo,1224
|
|
185
|
+
loadpath/evals/briefs/assets/elbow-gearbox.stl,sha256=8Roa9IhVtk83rTRS6hA3h2ZvFCfykDg-SpEv_YZl0Lo,87084
|
|
186
|
+
loadpath/evals/briefs/assets/motor-body.stl,sha256=GdgTJ2xYb6BpIBGIYZDSiL-M1W0VsRQ7P1WmFVLfYZU,684
|
|
187
|
+
loadpath/evals/briefs/assets/sketch.png,sha256=7gZ0y5OPEz5uKFzE0XhBWZNB3pcgym2RVbkVhw9fO8E,69192
|
|
188
|
+
loadpath/evals/cases/arm-link-cast.json,sha256=xHoCGcFe_IrqG7GG4vPUsz4vxKP92h50IVVfEDEEZr4,2223
|
|
189
|
+
loadpath/evals/cases/arm-link-driven.json,sha256=ji2Xl-lOlW05ZUXCfRyhpxm1GPuMal0yPI8jBwEtPok,3440
|
|
190
|
+
loadpath/evals/cases/arm-link-sandwich.json,sha256=J9Cv-KiSIrD5BO3avnzd-AcGCy8kfy4ANiatdS2tx8g,5584
|
|
191
|
+
loadpath/evals/cases/arm-link.json,sha256=_4cAWsnZbgnsHSUepFfcsuDC2oj6HLnlAShpZnUQeg8,2331
|
|
192
|
+
loadpath/evals/cases/bell-crank.json,sha256=EKi2SPmJ-wkhwJrCT7IGvAKqm1YhjlLlAGJKYjXseJs,2145
|
|
193
|
+
loadpath/evals/cases/grip-turret.json,sha256=SIpzpaw13cEai--tHBhl6Qx7eQaY5KNJfP7NvAg_IJE,6491
|
|
194
|
+
loadpath/evals/cases/grip-upper-arm.json,sha256=UHJlkhm15HOI8MLiP-P4upI3KrHFDyPxEQ36FcPuBKY,5542
|
|
195
|
+
loadpath/evals/cases/grip-wrist-link-mjf.json,sha256=u6ks_jQYGtvq5OUE33ABWr5sqZYbIV28wVff4jAJHJo,15932
|
|
196
|
+
loadpath/evals/cases/grip-wrist-yoke.json,sha256=fNidn8sw5IyCWS2wfcmPtqrMXwDN7-ARddVid_19IoQ,10691
|
|
197
|
+
loadpath/evals/cases/lpbf-intercooler-core.json,sha256=7iUYdHxqGRI_au_rW62Io9K-RQA9uTycWLEM4n_STWA,1216
|
|
198
|
+
loadpath/evals/cases/mbb-beam.json,sha256=TeyTSIqjKUBOZxgtMwiinmcsOcHSdGGGiO5m6enTGUY,1404
|
|
199
|
+
loadpath/evals/cases/motor-body.stl,sha256=GdgTJ2xYb6BpIBGIYZDSiL-M1W0VsRQ7P1WmFVLfYZU,684
|
|
200
|
+
loadpath/evals/cases/motor-mount.json,sha256=V_KZypDm2WJKl-D2iZyvtHI5LaJxcDxL7vUKNvlFpRI,5089
|
|
201
|
+
loadpath/evals/cases/printed-hook.json,sha256=RW-u10tN3gdE8i88PDgK4mzuqLvvDLLEKw5SUqsK6to,1608
|
|
202
|
+
loadpath/evals/cases/wall-bracket-fasteners.json,sha256=UGFrev3SWeU2aZNqEJGyGtwRM35zG5lOV4A6Kf-SKWg,2211
|
|
203
|
+
loadpath/evals/cases/wall-bracket.json,sha256=4nnrtdNsqkdwOwDjGDNzsHSRkRP6vdc-M9lsyU3Ye3M,2684
|
|
204
|
+
loadpath/examples/arm-link.json,sha256=Zg1VeOqwPpIIBfk_ZVojPhkuoBmRaj2f4jEY_-NZZ2Q,1436
|
|
205
|
+
loadpath/examples/bumpered-bracket-compression.json,sha256=hhhw_7LZzq46sTo3-2H-8Vfsq1r-FeBvg1NHOOzqaN0,3700
|
|
206
|
+
loadpath/examples/bumpered-bracket-lattice.json,sha256=VYCSpwqqJG08U5WjLtJStXttcPCYs7WFQpfaKMKU5Ts,3263
|
|
207
|
+
loadpath/examples/bumpered-bracket.json,sha256=LrGiftWU4GKG6DVL9YxiY4Ni8Q3o_A9ifYLJ5zSVyQA,1874
|
|
208
|
+
loadpath/examples/gripper-finger-mm.json,sha256=HLMvLZ-2iCsUFZST_VhdI2I0GzSDevqwnatc81aUJFU,3237
|
|
209
|
+
loadpath/examples/heat-exchanger-counterflow.json,sha256=gSBnkr9pEzkoqAyRSfgv4d7m52VR3_SlJKTj0RsHixo,734
|
|
210
|
+
loadpath/examples/heat-exchanger-crossflow-tuned.json,sha256=OGNj1iPMvBYoxaaSMgOHH8gGp14y07B_p38ImlfZe68,950
|
|
211
|
+
loadpath/examples/heat-exchanger-crossflow.json,sha256=_tH5CUHYdVLVDUkkPhR5TWg2FZXNI35vXqdnP3nMOg4,611
|
|
212
|
+
loadpath/examples/pedal-lattice.json,sha256=ix6MwL-wdBrv0_2L1W7m0S7MLg7GOMn5oCCmlcJ_dtU,1166
|
|
213
|
+
loadpath/examples/pressure-plenum.json,sha256=UJEO6HRaLMWrRp3--ug-gZOxgU-gCEgnT1O56PUT_6I,890
|
|
214
|
+
loadpath/examples/shelf-bracket.json,sha256=hR-gC4lBQQdqyj_6w1EErFX6BnTOb-kGpJrYOlFk8d8,1240
|
|
215
|
+
loadpath-0.1.1.dist-info/licenses/LICENSE,sha256=bpzxpJgoVq4FA36U71FnK82MHuco6ds7YJmDRr6SGfo,1069
|
|
216
|
+
loadpath-0.1.1.dist-info/METADATA,sha256=yLB5Rja1VNhmw5FWHTOFuiHdJhvmAV9_v9xSd7RBJ24,20562
|
|
217
|
+
loadpath-0.1.1.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
218
|
+
loadpath-0.1.1.dist-info/entry_points.txt,sha256=V3rhLlQmUU_BdQhSLYQfk2tkndSB8Y0DcP_9ReRCn-4,53
|
|
219
|
+
loadpath-0.1.1.dist-info/top_level.txt,sha256=pC2km_RHAmV4iTgiev9U_ZmW-TXK9nW8NugJKKQvw2M,9
|
|
220
|
+
loadpath-0.1.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Connor White
|
|
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.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
loadpath
|