Lokální aplikace pro generování povrchových a objemových 3D Voronoi lattice struktur. Projekt vzniká pro bakalářskou práci zaměřenou na 3D tisk strukturních materiálů a hodnocení jejich mechanické odezvy.
LatticeCore pracuje offline na jednom počítači. Webové rozhraní zajišťuje Three.js a Vite, geometrické výpočty běží v persistentním Python workeru nad NumPy, SciPy, PyVista a VTK.
- import uzavřených STL a OBJ modelů,
- parametrickou kostku a válec pro rychlé experimenty,
- skutečnou 3D Voronoi kostru oříznutou objemem vstupního modelu,
- povrchově konformní Voronoi síť kopírující tvar modelu,
- propojení povrchové a vnitřní sítě pomocí connectorů,
- odstranění krátkých prutů a sloučení blízkých uzlů,
- rychlý pracovní náhled z překrývajících se primitiv,
- finální watertight implicitní mesh pro 3D tisk,
- kontrolu manifoldnosti, hranic, komponent a objemu,
- řízení relativní hustoty a dávkové generování více hustot,
- cache mezivýsledků, frontu úloh, průběh přes SSE a zrušení výpočtu,
- export STL, JSON metadat, CSV průběhu a ZIP dávkových výsledků.
Požadavky:
- Node.js 20.19 nebo novější,
- Python 3.11 nebo novější,
- Windows PowerShell pro připravené pomocné skripty.
git clone https://github.com/akabrt00/LatticeCore.git
cd LatticeCore
npm install
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt -r requirements-dev.txt
npm run devAplikace se otevře na http://127.0.0.1:5173/.
Alternativně lze na Windows použít:
.\scripts\start-dev.ps1- Nahraj uzavřený STL nebo OBJ model.
- U vícesložkového modelu ponech výchozí volbu
Použít všechny uzavřené, případně vyberPonechat největší. - Pro rychlé ladění nech
Rychlý export – samostatné pruty. - Nastav počet seedů, průměr prutů a minimální délku prutu.
- Pro tisk přepni na
Finální watertight mesha nejdřív použij pracovní kvalitu. - Zkontroluj panel validace a exportuj STL až po úspěšném dokončení úlohy.
STL ani OBJ spolehlivě neukládají jednotky. LatticeCore interpretuje souřadnice jako milimetry a nabízí explicitní měřítko importu.
Vzorkuje povrch vstupního meshe, vytvoří aproximovanou povrchovou Voronoi síť, vyhladí ji a umístí ji na povrch nebo s odsazením dovnitř. Výstup tvoří pruty a kulové uzly, nikoli plný plášť.
Vygeneruje seed body uvnitř objemu, vypočítá 3D Voronoi diagram, ořízne jeho hrany podle domény a spojí vnitřní kostru s povrchovou sítí. U konkávních modelů může jedna Voronoi hrana vytvořit více oddělených intervalů uvnitř tělesa.
legacy-primitives: rychlý diagnostický výstup z válců a koulí; nemusí být manifold,implicit-union: kapsle a uzly jsou spojeny do jednoho pole vzdálenosti a oříznuty vstupní doménou; výsledný mesh musí projít watertight a edge-manifold validací.
Kompletní kontrola serveru, Python geometrie a produkčního buildu:
npm run test:allSamostatné části:
npm run test:server
npm run test:python
npm run build
npm auditAktuální release checkpoint zahrnuje 123 Python testů, serverové testy fronty, zotavení workeru, retence výsledků a sanitizace veřejných výstupů. Podrobnosti jsou v docs/release-checkpoint-report.md.
- Architektura
- Vývojové prostředí
- Řešení problémů
- Persistentní worker
- Clean-room validace
- Bezpečnostní audit
- Poznámky k externím Voronoi projektům
- Roadmapa
- vstupní objem musí být uzavřený a edge-manifold,
- rychlý engine není určen jako finální tiskový mesh,
- VTK FlyingEdges nelze přerušit uprostřed nativního volání,
- finální výpočet složitých modelů může vyžadovat nižší voxelové rozlišení nebo více RAM,
- automatická kontrola tisknutelnosti je experimentální a nenahrazuje kontrolu ve sliceru.
Projekt je aktivní výzkumný prototyp. Před mechanickými zkouškami vždy ověř výsledný STL ve sliceru a zaznamenej použité parametry z JSON metadat.