loadpath 0.1.1__tar.gz → 0.1.2__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.
- {loadpath-0.1.1 → loadpath-0.1.2}/PKG-INFO +55 -54
- {loadpath-0.1.1 → loadpath-0.1.2}/README.md +54 -53
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath.egg-info/PKG-INFO +55 -54
- {loadpath-0.1.1 → loadpath-0.1.2}/pyproject.toml +1 -1
- {loadpath-0.1.1 → loadpath-0.1.2}/LICENSE +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/README.md +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/SKILL.md +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/__init__.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/__main__.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/am.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/amgfast.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/assembly.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/__init__.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/beams.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/cases/ge-bracket.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/evaluate.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/mechanisms.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/problems.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/reference/bridge-3d.top3d.npz +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/reference/cantilever-3d.top3d.npz +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/reference/lbracket-2d.top88-ft2.npz +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/reference/mbb-2d.top88-ft1.npz +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/reference/mbb-2d.top88-ft2.npz +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/reference.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/benchmarks/run.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/brep.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/bucklingopt.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/buildsim.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/cadimport.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/calibration.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/cavities.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/checks/__init__.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/checks/dfm.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/checks/exchanger.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/checks/fea.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/checks/fit.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/checks/networks.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/checks/opening.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/checks/sdf_kit.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/conjugate.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/constrained.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/contact.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/coopt.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/cores.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/crease.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/critic.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/crosscheck.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/cutcell.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/data/lattice_buckling.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/data/lattice_tensors.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/data/published_experiments.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/decimate.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/delivery.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/directions.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/domain.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/drains.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/durability.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/editor.html +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/editor.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/escape.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/__init__.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/baselines/coarse.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/baselines/full.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/brief_kinds/__init__.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/brief_kinds/heatx.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/brief_kinds/lattice.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/brief_kinds/multimat.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/assets/bracket.step +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/assets/desk_arm.urdf +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/assets/elbow-gearbox.stl +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/assets/motor-body.stl +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/assets/sketch.png +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/base-adapter-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/bell-crank-lpbf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/belt-tensioner-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/camera-boom-mjf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/camera-mount-pla.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/coolant-isolator-petg.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/elbow-bearing-bracket-sls.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/elbow-gearbox-forearm-mjf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/elbow-link-fatigue-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/elbow-stop-pad-tpu.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/forearm-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/forearm-servo-link-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/grip-pad-finger-mm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/gripper-bracket-creep-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/gripper-finger-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/gripper-jaw-fatigue-mjf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/gripper-palm-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/hot-stepper-mount-asa-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/hpu-oil-cooler-lpbf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/isolated-camera-mount-mm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/kart-charge-cooler-lpbf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/lighten-step-bracket.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/nema17-mount-stl.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/pillow-block-sls.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/polyjet-fingertip-mm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/rod-hook-pla.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/sensor-arm-resin.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/shelf-bracket-pla.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/shoulder-riser-mjf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/sketch-clevis.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/spring-bracket-pacf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/tool-flange-ti64.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/tray-arm-lattice-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/turret-fdm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/upper-arm-sls.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/urdf-forearm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/wrist-link-mjf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs/wrist-yoke-mjf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/briefs.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/arm-link-cast.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/arm-link-driven.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/arm-link-sandwich.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/arm-link.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/bell-crank.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/grip-turret.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/grip-upper-arm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/grip-wrist-link-mjf.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/grip-wrist-yoke.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/lpbf-intercooler-core.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/mbb-beam.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/motor-body.stl +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/motor-mount.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/printed-hook.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/wall-bracket-fasteners.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/cases/wall-bracket.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/corpus.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/pareto.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/evals/run.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/arm-link.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/bumpered-bracket-compression.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/bumpered-bracket-lattice.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/bumpered-bracket.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/gripper-finger-mm.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/heat-exchanger-counterflow.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/heat-exchanger-crossflow-tuned.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/heat-exchanger-crossflow.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/pedal-lattice.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/pressure-plenum.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/examples/shelf-bracket.json +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/exchanger.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/fasteners.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/fem.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/femops.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/fieldjit.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/fieldops.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/fields.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/fieldtorch.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/flow.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/flowtopo.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/gpu.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/heatx.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/heatx_thermal.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/homogenized.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/ibrep.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/impact.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/infill.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/interface_library.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/interlock.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/isolator.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/knn.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/lattice.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/lattice3mf.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/lattice_buckling.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/lattice_grade.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/lattice_orient.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/lattice_print.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/lattice_tensors.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/latticestep.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/manufacture.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/material_library.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/materials.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/mcp_server.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/mechanism.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/mechanism_nl.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/meshops.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/mg.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/mma.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/modal.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/multimat.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/narrowband.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/nlkernel.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/nonlinear.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/orient.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/porous.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/pressure.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/preview.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/printcheck.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/printsetup.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/processcheck.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/quick.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/recall.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/reconstruct.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/render.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/resolved.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/schema.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/sdf_kit.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/selfx.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/shapes.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/sharp.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/simp.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/sizing.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/slicer.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/spec.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/step.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/struts.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/study.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/tasks.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/thermal.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/threemf.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/tune.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/validation.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/verify.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/viewer.html +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/viewer.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/viscoelastic.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/voxelprint.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath/voxels.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath.egg-info/SOURCES.txt +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath.egg-info/dependency_links.txt +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath.egg-info/entry_points.txt +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath.egg-info/requires.txt +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/loadpath.egg-info/top_level.txt +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/setup.cfg +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_agent_path.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_amgfast.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_assembly.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_benchmarks.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_brief_kinds_heatx.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_brief_kinds_lattice.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_brief_kinds_multimat.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_buckling_check.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_bucklingopt.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_buildsim.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_cadimport.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_calibration.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_conjugate.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_contact.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_coopt.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_cores.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_crease.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_cutcell.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_dfm.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_directions.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_durability.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_editor.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_escape.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_evals.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_femops.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_field_materials.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_fieldjit.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_fields.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_fieldtorch.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_fit.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_flow.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_flowtopo.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_heatx_fixes.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_heatx_rating.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_hex8_im.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_impact.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_interface.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_interfaces.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_interlock.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_lattice3mf.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_lattice_print.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_lattice_tensors.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_latticestep.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_loadpath.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_manufacture.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_materials.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_meshops.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_metal.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_mg.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_multimat.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_multimat_fixes.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_narrowband.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_nonlinear.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_porous.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_pressure.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_preview.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_print.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_printsetup.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_process.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_published_experiments.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_recall.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_sharp.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_sizing.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_slicer.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_struts.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_tetsizing.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_thermal.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_threemf_multi.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_tune.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_tutorials.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_voxelprint.py +0 -0
- {loadpath-0.1.1 → loadpath-0.1.2}/tests/test_voxels.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: loadpath
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Generative design for printed parts: topology optimization from keep-outs, preserved geometry and loads, verified in real units.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Project-URL: Homepage, https://github.com/connorwhite-online/loadpath
|
|
@@ -70,18 +70,19 @@ safety factor, deflection, thinnest member, printability, pass or fail.
|
|
|
70
70
|
|
|
71
71
|
<table>
|
|
72
72
|
<tr>
|
|
73
|
-
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
74
|
-
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
73
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/cases/grip-wrist-link-mjf-part.png" height="420"></td>
|
|
74
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/grip-wrist-link-mjf.png" height="420"></td>
|
|
75
75
|
</tr>
|
|
76
76
|
<tr>
|
|
77
|
-
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
78
|
-
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
77
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/cases/grip-wrist-yoke-part.png" width="380"></td>
|
|
78
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/grip-wrist-yoke.png" width="380"></td>
|
|
79
79
|
</tr>
|
|
80
80
|
<tr>
|
|
81
|
-
<td align="center" colspan="2"><sub>
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
<td align="center" colspan="2"><sub>Two robot-arm parts as loadpath delivered them (left) and their stress from a fresh
|
|
82
|
+
analysis of that mesh (right), blue (none) to red (the part's 98th percentile), on the shape bent by the worst
|
|
83
|
+
load case. Top: a wrist link between two servos, MJF nylon, 40.2 g, safety factor 5.8. Bottom: a servo cradle
|
|
84
|
+
held only at its eight screw bosses, glass-filled SLS nylon, 17.3 g, safety factor 3.9. More in
|
|
85
|
+
<a href="#examples">Examples</a>.</sub></td>
|
|
85
86
|
</tr>
|
|
86
87
|
</table>
|
|
87
88
|
|
|
@@ -99,9 +100,9 @@ Then ask in plain words:
|
|
|
99
100
|
> printed on an FDM printer.
|
|
100
101
|
|
|
101
102
|
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.
|
|
103
|
+
the report back. Its guide is [loadpath/SKILL.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/loadpath/SKILL.md) (the
|
|
103
104
|
`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.
|
|
105
|
+
[docs/agents.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/agents.md). The server runs locally and nothing
|
|
105
106
|
leaves the machine. Units are millimetres, newtons and megapascals. MIT
|
|
106
107
|
licensed.
|
|
107
108
|
|
|
@@ -121,23 +122,23 @@ licensed.
|
|
|
121
122
|
clean-outs), plus milling and casting constraints.
|
|
122
123
|
- **Field modelling**: a part as a graph of implicit fields, so skins,
|
|
123
124
|
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.
|
|
125
|
+
distance ([docs/fields.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/fields.md)).
|
|
125
126
|
- **Other analyses**: large deflection and buckling, compliant mechanisms,
|
|
126
127
|
thermal loads, fatigue and creep estimates, lattice crush and impact,
|
|
127
128
|
vibration, lattice-Boltzmann flow and conjugate heat for heat exchangers
|
|
128
129
|
and cold plates, and layer-by-layer warp and residual stress
|
|
129
|
-
([docs/BUILDSIM.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
130
|
+
([docs/BUILDSIM.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/BUILDSIM.md)).
|
|
130
131
|
- **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.
|
|
132
|
+
bores and bolt patterns found ([docs/IMPORT.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/IMPORT.md)); results
|
|
132
133
|
export as STL, 3MF, and STEP with exact planes and cylinders at the
|
|
133
134
|
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.
|
|
135
|
+
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.2/docs/fields.md#the-lattice-itself-in-the-step-lattice-exact)).
|
|
135
136
|
- **Mesh checks without a study** (`loadpath.checks`): wall thickness,
|
|
136
137
|
overhangs, trapped voids, fluid-network isolation, component fit.
|
|
137
138
|
|
|
138
139
|
## How much to trust it
|
|
139
140
|
|
|
140
|
-
Read [docs/VALIDATION.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
141
|
+
Read [docs/VALIDATION.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/VALIDATION.md) before relying on a number.
|
|
141
142
|
In short:
|
|
142
143
|
|
|
143
144
|
- **The solvers match analytic answers** in the test suite: beam
|
|
@@ -162,16 +163,16 @@ In short:
|
|
|
162
163
|
## Case studies
|
|
163
164
|
|
|
164
165
|
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.
|
|
166
|
+
and the limitations ([docs/case-studies/](https://github.com/connorwhite-online/loadpath/tree/v0.1.2/docs/case-studies/)).
|
|
166
167
|
|
|
167
168
|
| Case study | Result | Baseline |
|
|
168
169
|
| --- | --- | --- |
|
|
169
|
-
| [Eval suite](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
170
|
-
| [GRIP robot arm](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
171
|
-
| [Arm link cores](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
172
|
-
| [Liquid cold plate](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
173
|
-
| [TPU finger](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
174
|
-
| [Benchmarks](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
170
|
+
| [Eval suite](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
171
|
+
| [GRIP robot arm](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
172
|
+
| [Arm link cores](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
173
|
+
| [Liquid cold plate](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
174
|
+
| [TPU finger](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
175
|
+
| [Benchmarks](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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
|
|
|
176
177
|
## Command line and Python
|
|
177
178
|
|
|
@@ -190,7 +191,7 @@ numba), `gpu` (PyTorch for large grids on CUDA, Apple Silicon or CPU
|
|
|
190
191
|
threads).
|
|
191
192
|
|
|
192
193
|
Studies are validated against a published JSON Schema
|
|
193
|
-
([`schema/`](https://github.com/connorwhite-online/loadpath/tree/v0.1.
|
|
194
|
+
([`schema/`](https://github.com/connorwhite-online/loadpath/tree/v0.1.2/schema/)), and `loadpath check` returns every problem at once
|
|
194
195
|
with its JSON path, so an agent can fix a study in one round trip. Long
|
|
195
196
|
solves run as background jobs the agent polls. Each finished outcome has an
|
|
196
197
|
`attention` list of numbers to look at before trusting it, and renders a
|
|
@@ -210,51 +211,51 @@ print(best.report["mass"], best.report["safetyFactor"])
|
|
|
210
211
|
|
|
211
212
|
## Documentation
|
|
212
213
|
|
|
213
|
-
- [Quickstart](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
214
|
-
- [Tutorials](https://github.com/connorwhite-online/loadpath/tree/v0.1.
|
|
214
|
+
- [Quickstart](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/quickstart.md): install to a checked part.
|
|
215
|
+
- [Tutorials](https://github.com/connorwhite-online/loadpath/tree/v0.1.2/docs/tutorials/): eleven end-to-end workflows, each run by CI
|
|
215
216
|
(an FDM bracket to 3MF, an SLS lattice with drain holes, a metal heat
|
|
216
217
|
exchanger, an impact bumper, a STEP part round trip, LPBF distortion
|
|
217
218
|
compensation, and more).
|
|
218
|
-
- [Reference](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
219
|
+
- [Reference](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/loadpath/README.md): the method, every study field, the
|
|
219
220
|
report, the limits.
|
|
220
|
-
- [Validation](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
221
|
+
- [Validation](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/VALIDATION.md): what each model has been checked
|
|
221
222
|
against.
|
|
222
|
-
- [Case studies](https://github.com/connorwhite-online/loadpath/tree/v0.1.
|
|
223
|
-
- Topics: [fields](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
224
|
-
[build simulation](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
225
|
-
[CAD import](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
226
|
-
[multi-material](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
227
|
-
[mechanisms](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
223
|
+
- [Case studies](https://github.com/connorwhite-online/loadpath/tree/v0.1.2/docs/case-studies/) and [benchmarks](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/BENCHMARKS.md).
|
|
224
|
+
- Topics: [fields](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/fields.md), [materials](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/materials.md),
|
|
225
|
+
[build simulation](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/BUILDSIM.md), [calibration](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/CALIBRATION.md),
|
|
226
|
+
[CAD import](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/IMPORT.md), [slicer](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/slicer.md),
|
|
227
|
+
[multi-material](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/MULTIMATERIAL.md), [impact](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/IMPACT.md),
|
|
228
|
+
[mechanisms](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/MECHANISMS.md).
|
|
228
229
|
|
|
229
230
|
<!-- gallery:start -->
|
|
230
231
|
|
|
231
232
|
## Examples
|
|
232
233
|
|
|
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.
|
|
234
|
+
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.2/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.2/docs/GALLERY.md).
|
|
234
235
|
|
|
235
236
|
<table>
|
|
236
237
|
<tr>
|
|
237
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
238
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
239
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
238
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
239
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
240
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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
241
|
</tr>
|
|
241
242
|
<tr>
|
|
242
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
243
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
244
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
243
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
244
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
245
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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
246
|
</tr>
|
|
246
247
|
<tr>
|
|
247
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
248
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
249
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
248
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
249
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
250
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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
251
|
</tr>
|
|
251
252
|
<tr>
|
|
252
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
253
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
254
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
253
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
254
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
255
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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
256
|
</tr>
|
|
256
257
|
<tr>
|
|
257
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
258
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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
259
|
</tr>
|
|
259
260
|
</table>
|
|
260
261
|
|
|
@@ -262,23 +263,23 @@ Where the load goes: von Mises stress, blue (none) to red (the part's 98th perce
|
|
|
262
263
|
|
|
263
264
|
<table>
|
|
264
265
|
<tr>
|
|
265
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
266
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
267
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
266
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/bell-crank.png" width="250"><br><sub>bell-crank</sub></td>
|
|
267
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/grip-upper-arm.png" width="250"><br><sub>grip-upper-arm</sub></td>
|
|
268
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/printed-hook.png" width="250"><br><sub>printed-hook</sub></td>
|
|
268
269
|
</tr>
|
|
269
270
|
</table>
|
|
270
271
|
|
|
271
272
|
Two-fluid heat exchangers: two isolated channel networks through one sheet gyroid, with headers that print without support.
|
|
272
273
|
|
|
273
|
-

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

|
|
278
279
|
|
|
279
280
|
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
|
|
|
281
|
-

|
|
282
283
|
|
|
283
284
|
<sub>Rendered 2026-11-03 from `6c97b57` by `python docs/gallery.py`.</sub>
|
|
284
285
|
|
|
@@ -9,18 +9,19 @@ safety factor, deflection, thinnest member, printability, pass or fail.
|
|
|
9
9
|
|
|
10
10
|
<table>
|
|
11
11
|
<tr>
|
|
12
|
-
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
13
|
-
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
12
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/cases/grip-wrist-link-mjf-part.png" height="420"></td>
|
|
13
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/grip-wrist-link-mjf.png" height="420"></td>
|
|
14
14
|
</tr>
|
|
15
15
|
<tr>
|
|
16
|
-
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
17
|
-
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
16
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/cases/grip-wrist-yoke-part.png" width="380"></td>
|
|
17
|
+
<td align="center" width="50%"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/grip-wrist-yoke.png" width="380"></td>
|
|
18
18
|
</tr>
|
|
19
19
|
<tr>
|
|
20
|
-
<td align="center" colspan="2"><sub>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
<td align="center" colspan="2"><sub>Two robot-arm parts as loadpath delivered them (left) and their stress from a fresh
|
|
21
|
+
analysis of that mesh (right), blue (none) to red (the part's 98th percentile), on the shape bent by the worst
|
|
22
|
+
load case. Top: a wrist link between two servos, MJF nylon, 40.2 g, safety factor 5.8. Bottom: a servo cradle
|
|
23
|
+
held only at its eight screw bosses, glass-filled SLS nylon, 17.3 g, safety factor 3.9. More in
|
|
24
|
+
<a href="#examples">Examples</a>.</sub></td>
|
|
24
25
|
</tr>
|
|
25
26
|
</table>
|
|
26
27
|
|
|
@@ -38,9 +39,9 @@ Then ask in plain words:
|
|
|
38
39
|
> printed on an FDM printer.
|
|
39
40
|
|
|
40
41
|
The agent writes the study, checks it, runs it in the background and reads
|
|
41
|
-
the report back. Its guide is [loadpath/SKILL.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
42
|
+
the report back. Its guide is [loadpath/SKILL.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/loadpath/SKILL.md) (the
|
|
42
43
|
`loadpath_guide` tool returns it); the tools and the loop are in
|
|
43
|
-
[docs/agents.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
44
|
+
[docs/agents.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/agents.md). The server runs locally and nothing
|
|
44
45
|
leaves the machine. Units are millimetres, newtons and megapascals. MIT
|
|
45
46
|
licensed.
|
|
46
47
|
|
|
@@ -60,23 +61,23 @@ licensed.
|
|
|
60
61
|
clean-outs), plus milling and casting constraints.
|
|
61
62
|
- **Field modelling**: a part as a graph of implicit fields, so skins,
|
|
62
63
|
lattices (TPMS and strut) and fillets can be graded by stress or by
|
|
63
|
-
distance ([docs/fields.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
64
|
+
distance ([docs/fields.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/fields.md)).
|
|
64
65
|
- **Other analyses**: large deflection and buckling, compliant mechanisms,
|
|
65
66
|
thermal loads, fatigue and creep estimates, lattice crush and impact,
|
|
66
67
|
vibration, lattice-Boltzmann flow and conjugate heat for heat exchangers
|
|
67
68
|
and cold plates, and layer-by-layer warp and residual stress
|
|
68
|
-
([docs/BUILDSIM.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
69
|
+
([docs/BUILDSIM.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/BUILDSIM.md)).
|
|
69
70
|
- **CAD in and out**: a STEP or STL part becomes a draft study with its
|
|
70
|
-
bores and bolt patterns found ([docs/IMPORT.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
71
|
+
bores and bolt patterns found ([docs/IMPORT.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/IMPORT.md)); results
|
|
71
72
|
export as STL, 3MF, and STEP with exact planes and cylinders at the
|
|
72
73
|
interfaces; a lattice part (strut cells, TPMS, graded, skinned or open)
|
|
73
|
-
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.
|
|
74
|
+
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.2/docs/fields.md#the-lattice-itself-in-the-step-lattice-exact)).
|
|
74
75
|
- **Mesh checks without a study** (`loadpath.checks`): wall thickness,
|
|
75
76
|
overhangs, trapped voids, fluid-network isolation, component fit.
|
|
76
77
|
|
|
77
78
|
## How much to trust it
|
|
78
79
|
|
|
79
|
-
Read [docs/VALIDATION.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
80
|
+
Read [docs/VALIDATION.md](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/VALIDATION.md) before relying on a number.
|
|
80
81
|
In short:
|
|
81
82
|
|
|
82
83
|
- **The solvers match analytic answers** in the test suite: beam
|
|
@@ -101,16 +102,16 @@ In short:
|
|
|
101
102
|
## Case studies
|
|
102
103
|
|
|
103
104
|
Each states the problem, the setup, the numbers against a named baseline,
|
|
104
|
-
and the limitations ([docs/case-studies/](https://github.com/connorwhite-online/loadpath/tree/v0.1.
|
|
105
|
+
and the limitations ([docs/case-studies/](https://github.com/connorwhite-online/loadpath/tree/v0.1.2/docs/case-studies/)).
|
|
105
106
|
|
|
106
107
|
| Case study | Result | Baseline |
|
|
107
108
|
| --- | --- | --- |
|
|
108
|
-
| [Eval suite](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
109
|
-
| [GRIP robot arm](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
110
|
-
| [Arm link cores](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
111
|
-
| [Liquid cold plate](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
112
|
-
| [TPU finger](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
113
|
-
| [Benchmarks](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
109
|
+
| [Eval suite](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
110
|
+
| [GRIP robot arm](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
111
|
+
| [Arm link cores](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
112
|
+
| [Liquid cold plate](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
113
|
+
| [TPU finger](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
114
|
+
| [Benchmarks](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/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 |
|
|
114
115
|
|
|
115
116
|
## Command line and Python
|
|
116
117
|
|
|
@@ -129,7 +130,7 @@ numba), `gpu` (PyTorch for large grids on CUDA, Apple Silicon or CPU
|
|
|
129
130
|
threads).
|
|
130
131
|
|
|
131
132
|
Studies are validated against a published JSON Schema
|
|
132
|
-
([`schema/`](https://github.com/connorwhite-online/loadpath/tree/v0.1.
|
|
133
|
+
([`schema/`](https://github.com/connorwhite-online/loadpath/tree/v0.1.2/schema/)), and `loadpath check` returns every problem at once
|
|
133
134
|
with its JSON path, so an agent can fix a study in one round trip. Long
|
|
134
135
|
solves run as background jobs the agent polls. Each finished outcome has an
|
|
135
136
|
`attention` list of numbers to look at before trusting it, and renders a
|
|
@@ -149,51 +150,51 @@ print(best.report["mass"], best.report["safetyFactor"])
|
|
|
149
150
|
|
|
150
151
|
## Documentation
|
|
151
152
|
|
|
152
|
-
- [Quickstart](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
153
|
-
- [Tutorials](https://github.com/connorwhite-online/loadpath/tree/v0.1.
|
|
153
|
+
- [Quickstart](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/quickstart.md): install to a checked part.
|
|
154
|
+
- [Tutorials](https://github.com/connorwhite-online/loadpath/tree/v0.1.2/docs/tutorials/): eleven end-to-end workflows, each run by CI
|
|
154
155
|
(an FDM bracket to 3MF, an SLS lattice with drain holes, a metal heat
|
|
155
156
|
exchanger, an impact bumper, a STEP part round trip, LPBF distortion
|
|
156
157
|
compensation, and more).
|
|
157
|
-
- [Reference](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
158
|
+
- [Reference](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/loadpath/README.md): the method, every study field, the
|
|
158
159
|
report, the limits.
|
|
159
|
-
- [Validation](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
160
|
+
- [Validation](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/VALIDATION.md): what each model has been checked
|
|
160
161
|
against.
|
|
161
|
-
- [Case studies](https://github.com/connorwhite-online/loadpath/tree/v0.1.
|
|
162
|
-
- Topics: [fields](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
163
|
-
[build simulation](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
164
|
-
[CAD import](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
165
|
-
[multi-material](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
166
|
-
[mechanisms](https://github.com/connorwhite-online/loadpath/blob/v0.1.
|
|
162
|
+
- [Case studies](https://github.com/connorwhite-online/loadpath/tree/v0.1.2/docs/case-studies/) and [benchmarks](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/BENCHMARKS.md).
|
|
163
|
+
- Topics: [fields](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/fields.md), [materials](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/materials.md),
|
|
164
|
+
[build simulation](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/BUILDSIM.md), [calibration](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/CALIBRATION.md),
|
|
165
|
+
[CAD import](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/IMPORT.md), [slicer](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/slicer.md),
|
|
166
|
+
[multi-material](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/MULTIMATERIAL.md), [impact](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/IMPACT.md),
|
|
167
|
+
[mechanisms](https://github.com/connorwhite-online/loadpath/blob/v0.1.2/docs/MECHANISMS.md).
|
|
167
168
|
|
|
168
169
|
<!-- gallery:start -->
|
|
169
170
|
|
|
170
171
|
## Examples
|
|
171
172
|
|
|
172
|
-
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.
|
|
173
|
+
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.2/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.2/docs/GALLERY.md).
|
|
173
174
|
|
|
174
175
|
<table>
|
|
175
176
|
<tr>
|
|
176
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
177
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
178
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
177
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
178
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
179
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
179
180
|
</tr>
|
|
180
181
|
<tr>
|
|
181
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
182
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
183
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
182
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
183
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
184
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
184
185
|
</tr>
|
|
185
186
|
<tr>
|
|
186
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
187
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
188
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
187
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
188
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
189
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
189
190
|
</tr>
|
|
190
191
|
<tr>
|
|
191
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
192
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
193
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
192
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
193
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
194
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
194
195
|
</tr>
|
|
195
196
|
<tr>
|
|
196
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
197
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/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>
|
|
197
198
|
</tr>
|
|
198
199
|
</table>
|
|
199
200
|
|
|
@@ -201,23 +202,23 @@ Where the load goes: von Mises stress, blue (none) to red (the part's 98th perce
|
|
|
201
202
|
|
|
202
203
|
<table>
|
|
203
204
|
<tr>
|
|
204
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
205
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
206
|
-
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.
|
|
205
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/bell-crank.png" width="250"><br><sub>bell-crank</sub></td>
|
|
206
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/grip-upper-arm.png" width="250"><br><sub>grip-upper-arm</sub></td>
|
|
207
|
+
<td align="center" valign="top"><img src="https://raw.githubusercontent.com/connorwhite-online/loadpath/v0.1.2/docs/images/stress/printed-hook.png" width="250"><br><sub>printed-hook</sub></td>
|
|
207
208
|
</tr>
|
|
208
209
|
</table>
|
|
209
210
|
|
|
210
211
|
Two-fluid heat exchangers: two isolated channel networks through one sheet gyroid, with headers that print without support.
|
|
211
212
|
|
|
212
|
-

|
|
213
214
|
|
|
214
215
|
Printed in metal, nothing inside can be supported: the channels end in peaked roofs instead of flat ceilings (red).
|
|
215
216
|
|
|
216
|
-

|
|
217
218
|
|
|
218
219
|
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.
|
|
219
220
|
|
|
220
|
-

|
|
221
222
|
|
|
222
223
|
<sub>Rendered 2026-11-03 from `6c97b57` by `python docs/gallery.py`.</sub>
|
|
223
224
|
|