惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
J
Java Code Geeks
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
美团技术团队
L
LangChain Blog
WordPress大学
WordPress大学
A
About on SuperTechFans
Martin Fowler
Martin Fowler
月光博客
月光博客
Y
Y Combinator Blog
U
Unit 42
D
Docker
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
B
Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
G
Google Developers Blog
Last Week in AI
Last Week in AI
T
The Blog of Author Tim Ferriss
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

Show HN

GitHub - astefanutti/shaderbang: Shebang for Shaders Show HN: Generate Claude Code Workflows using Spec Driven Development approach Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal).
GitHub - dapsvi/phoenix: Phoenix: topology optimisation e...
dapsvi · 2026-06-12 · via Show HN

Topology optimisation engine: from scene definition to live 3D optimisation and STL export.

Drone topology optimisation


What is it?

Phoenix is a Python topology optimisation framework. You define a scene (a design domain with supports, loads, and keep-out regions), pick a physics solver, and watch the optimiser model material in a live 3-D viewer, leaving only the stiffest, lightest, or most efficient shape for the job.

Here is the pipeline:

scene definition  ->  voxel grid  ->  FE solve  ->  density update  ->  live render  ->  STL export

Features

  • Scene builder: define domains with boxes, cylinders, unions, and subtractions in JSON or Python
  • 8 physics solvers: structural, thermal, convection, vibration, gravity, stress-constrained, max-length, multi-physics (or implement your own)
  • Live 3D viewer: watch density evolve in real time
  • STL export: marching cubes and smoothing
  • JSON settings: tune every solver from a single settings file
  • Continuation: coarse -> fine grid refinement for high-res results

Quick start

# Clone and install
git clone https://github.com/dapsvi/phoenix.git
cd phoenix
uv sync

# Run your first optimisation
python cli.py optimize presets/json/bridge.json

The live viewer opens automatically. When it finishes you will find:

  • results/bridge_latest.npz: full density field and history
  • exports/bridge.stl: smoothed mesh ready for printing

Scene definition

Scenes are built from primitives (boxes, cylinders) with union, subtract, and intersect operations.

JSON format

{
  "name": "bridge",
  "nx": 50, "ny": 24, "nz": 10,
  "suggested_settings": "structural",
  "objects": [
    { "type": "box", "bounds": [0, 49, 0, 23, 0, 9], "kind": "solid" },
    { "type": "box", "bounds": [0, 0, 0, 0, 0, 9], "kind": "solid", "bc": "support", "constraint": "fix" },
    { "type": "box", "bounds": [0, 49, 23, 23, 3, 6], "kind": "solid", "bc": "load", "direction": [0, -1, 0] }
  ]
}

Python API

from scene import Scene, Box

scene = Scene("bridge", 150, 50, 10)
scene.add(Box(0, 149, 0, 49, 0, 9, kind="solid"))
scene.add(Box(0, 0, 0, 0, 0, 9, kind="fixed_solid", bc="support", constraint="fix"))
scene.add(Box(0, 149, 23, 23, 3, 6, kind="fixed_solid", bc="load", direction=(0, -1, 0)))

Included solvers

Solver Settings file What it optimises
Structural settings/structural.json Compliance (stiffness) under static loads
Thermal settings/thermal.json Heat conduction and thermal compliance
Convection settings/convection.json Convection-dominated heat transfer
Vibration settings/vibration.json Eigenfrequency maximisation
Gravity settings/gravity.json Body-force (self-weight) loading
Stress settings/stress.json Stress-constrained optimisation
MaxLength (inline config) Maximum member length scale control
Multi settings/drone.json Multi-physics (combines solvers)

Example settings file (settings/structural.json):

{
  "type": "structural",
  "material": "aluminum",
  "volfrac": 0.05,
  "penal": 3.0,
  "rmin": 2.0,
  "move": 0.2,
  "max_iter": 100,
  "tol": 0.001
}

CLI

python cli.py optimize <preset>   Run optimisation with live viewer
python cli.py export <result>     Convert .npz result to STL
python cli.py view <result>       Open result in the 3D viewer

CLI optimize flags

Flag Default Description
-s, --settings auto Solver settings (file name or inline)
--threshold 0.5 Density isosurface threshold
--cmap viridis Colormap for the density field
--final best best (lowest compliance) or last (final iteration)
--no-stl Skip STL export
--no-verify Skip FE verification pass
--no-view Skip the 3-D viewer

Presets

Ready-to-run examples in presets/:

Preset Description
bridge.json Simply-supported bridge with distributed load
cantilever.json Classic cantilever beam
mbb_beam.json MBB beam (half model, symmetry)
michell_truss.json Michell truss / force path
lbracket.json L-bracket with fillet stress path
drone.json Drone frame, multi-load-case
heat_sink.json Thermal heat sink
cooled_block.json Convection-cooled block
cantilever_vib.json Vibration / eigenfrequency

Cantilever beam L-bracket Michell truss


Output

After a run you get:

  • .npz result: full 3-D density field, iteration history, and solver snapshots
  • .stl mesh: smoothed isosurface, ready for 3-D printing or CFD meshing
  • Verification report: FE re-solve confirming the design meets constraints

Stress heatmap for the cantilever


Dependencies

  • numpy, scipy: core numerics
  • pyamg: algebraic multigrid preconditioner
  • pypardiso: sparse direct solver (Intel MKL Pardiso)
  • pyvista: 3-D visualisation and mesh processing
  • vpython: interactive viewer support
  • Python >= 3.13

License

GNU GPLv3