尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證STL Platform: instant production cost calculator for 3D printing projects (FDM and resin), by Nebula 3D
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Web app statica di Nebula 3D (@nebula3dlab): carichi un file STL (oppure la foto di un oggetto, da cui l'IA ricostruisce un modello 3D) e ottieni subito, nel browser, anteprima 3D interattiva, dimensioni, volume, materiale, tempo di stampa e prezzo stimato con il dettaglio dei costi, per stampa a filamento (FDM) o a resina (SLA/MSLA). Nessun backend: i file STL non lasciano mai il dispositivo dell'utente (solo in modalità "Da foto" la foto viene inviata a un servizio IA pubblico, vedi sotto).
mailto: precompilato). Non viene inviato nulla in automatico.Tutte le costanti stanno in js/config.js, commentate: prezzi al kg, densità, tariffa oraria, costo di preparazione, sconti, volume di stampa, contatti.
js/geometry.js)
a · (b × c) / 6; il valore assoluto della somma è il volume del solido chiuso.|(b − a) × (c − a)| / 2.js/estimate.js)
Costanti nel blocco resin di js/config.js (materiali con densità 1,10–1,18 g/cm³ e prezzo €/kg, layer e secondi per layer, scarto, tariffe, volume di stampa 218 × 123 × 235 mm modificabile). Calcolo in estimateResin() di js/estimate.js:
layer = ⌈altezza / altezza layer⌉, tempo = layer × secondi per layer (2,5–3 s, LCD mono) + 10 minuti di preparazione per stampa. Più pezzi uguali stanno insieme sul piatto (fino al 60% della sua area), quindi la quantità aumenta il tempo solo quando servono più stampe.Si possono mettere nello stesso ordine più parti, anche miste filamento e resina. Il modello è in estimateProject() (js/estimate.js); l'interfaccia tiene l'elenco nel pannello Parti del progetto.
setupFee), si applica una volta l'ordine minimo (minimumOrder) e l'IVA (vatRate, mostrata a parte come oggi). Peso e tempo di stampa sono la somma delle parti.⚠️ Il modello generato è un'approssimazione. L'IA "immagina" retro e parti nascoste, i dettagli fini possono mancare e la scala è sconosciuta (la imposta l'utente). Volume e prezzo sono quindi indicativi: l'interfaccia lo segnala e il preventivo viene confermato da Nebula 3D.
@gradio/client (2.7.1, incluso in vendor/gradio/, licenza Apache-2.0), uno Space pubblico e gratuito di Hugging Face:
tencent/Hunyuan3D-2 (endpoint /shape_generation, 30 passi, rimozione sfondo) — circa 10–15 s;tencent/Hunyuan3D-2.1 — circa 15–30 s; per questo Space lo sfondo uniforme della foto viene rimosso già nel browser.js/photo3d.js: ridimensionamento della foto (max 1024 px), coda con posizione e attesa stimata, timeout (240 s), annullamento, messaggi d'errore in italiano, poi il GLB viene letto con GLTFLoader, ripulito dai triangoli degeneri, ruotato in Z-up e scalato alla misura scelta; da lì in poi è lo stesso calcolo degli STL. js/stl-export.js crea l'STL binario scaricabile.photoTo3D di js/config.js. I modelli hanno ~250–300 mila triangoli (STL di 12–15 MB).È un'approssimazione: uno slicer considera supporti, sbalzi, ponti, accelerazioni e il percorso reale dell'ugello. I risultati sono indicati come stime nell'interfaccia.
Serve un piccolo server web (i moduli JavaScript non si caricano da file://):
cd nebula-quote
python3 -m http.server 8000
# poi apri http://localhost:8000
In alternativa: npx serve .
nebula-quote) e carica il contenuto di questa cartella:
git remote add origin https://github.com/<tuo-utente>/nebula-quote.git
git push -u origin main
main, cartella / (root).https://<tuo-utente>.github.io/nebula-quote/.Il file .nojekyll evita che GitHub Pages elabori il sito con Jekyll. Tutti i percorsi sono relativi, quindi funziona anche in una sottocartella.
js/config.js (es. machineRatePerHour, setupFee, materials.PLA.pricePerKg, buildVolume).resin (materiali, layerHeights, supportWaste, machineRatePerHour, postProcessPerPart, buildVolume, defaultWallMm).photoTo3D (Space primario e di riserva con i loro parametri, timeout, misura predefinita).contact.email in js/config.js per precompilare il destinatario del pulsante email.node tools/generate-samples.mjs rigenera samples/cubo-20mm.stl (ASCII) e samples/vaso-nebula.stl (binario).node tests/geometry.test.mjs # volumi e aree di forme note (cubo 20 mm = 8 cm³, cilindro, vaso)
node tests/resin.test.mjs # calcoli resina: pieno/svuotato, layer, piatti, prezzo, volume
node tests/project.test.mjs # progetto: una parte = preventivo singolo; preparazione e minimo una volta; sconto per parte; piatti resina non condivisi fra parti diverse
npm i puppeteer-core # solo per i test nel browser
python3 -m http.server 8765 & node tests/e2e.mjs # end-to-end: STL, FDM↔resina, foto con IA simulata (?mock3d=1), riserva, annulla, Scarica STL, mobile
node tests/e2e-real.mjs # UNA generazione reale da foto con tempi (consuma quota ZeroGPU)
Parametri URL utili per demo e test: ?mode=photo, ?tech=resin, ?sample=1, ?photo=1 (genera dalla foto di esempio), ?mock3d=1 (generazione simulata con tests/fixtures/razzo-generato.glb, nessuna chiamata di rete).
index.html pagina
css/style.css stile
js/config.js tutte le costanti di prezzo e stima
js/geometry.js parsing STL, volume, superficie, ingombro
js/estimate.js modello di stima FDM, resina e totale di progetto
js/photo3d.js foto → modello 3D (Hugging Face Spaces, GLB → mesh)
js/stl-export.js esportazione STL binario
js/app.js interfaccia e anteprima 3D
vendor/three/ three.js r160 + GLTFLoader (licenza MIT)
vendor/gradio/ @gradio/client 2.7.1 (licenza Apache-2.0)
samples/ STL e foto di esempio
tools/ generatore degli esempi
tests/ test (fixtures/: GLB generato dal servizio per il mock)