← Tutte le idee Intelligenza artificiale

Modly

Crea modelli 3D da una foto o da una frase, sul tuo computer

Cosa fa

Programma per computer che genera modelli 3D da immagini o da una descrizione, usando l'AI direttamente sulla scheda video dell'utente.

Come guadagna

Progetto open source su GitHub con oltre 8.000 stelle, che non dichiara incassi. Ha licenza non chiara: prendi spunto dall'idea, ma non riusare il codice senza chiedere agli autori. Idee nostre per guadagnare: servizio online di generazione a crediti, stampa 3D dei modelli su ordinazione.

Rendilo tuo

  • Per chi stampa in 3D: dalla foto del giocattolo rotto al ricambio da stampare.
  • Statuine personalizzate stampate in 3D da regalare.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Da Foto a 3D": genera un modello 3D da una foto o da una descrizione, da ruotare nel browser e scaricare per la stampa 3D, per videogiochi o per il web. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con esempi di modelli da ruotare e prezzi
2. Registrazione e accesso
3. Nuovo modello: carica una foto (oggetto su sfondo semplice) o scrivi una descrizione
4. Visualizzatore 3D con rotazione, luci e misure
5. I miei modelli e download in GLB, OBJ e STL

Stile: tecnico e creativo: sfondo grigio scuro #18181B, griglia di lavoro come nei programmi 3D, accento arancio #F97316, carattere "Inter", visualizzatore grande. Nessuna immagine generica di stock.

Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.

2. Database, account e sicurezza

Collega il progetto a Supabase e attiva la registrazione con email e password.

Crea queste tabelle:
- "modelli": foto o descrizione di partenza, file del modello nello Storage, stato, collegati all'utente

Regole di sicurezza obbligatorie:
- ogni utente vede solo i suoi modelli
- i file stanno in uno spazio privato
- i crediti non si modificano dal browser

Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.

3. Generazione e visualizzazione

L'utente carica una foto (oggetto ben visibile, sfondo semplice, consigli su come scattarla) o scrive una descrizione. La Edge Function scala un credito e invia la richiesta a un'API di generazione 3D da immagini o testo che consenta l'uso commerciale dei risultati; quando il modello è pronto (1–3 minuti) lo salva nello Storage e avvisa l'utente.

Il visualizzatore usa Three.js: rotazione, zoom, luci, sfondo, e le misure del modello. Si sceglie l'altezza reale (es. 8 cm) per la stampa.

Avviso: carica solo foto di oggetti tuoi o di cui hai i diritti; niente marchi o personaggi protetti per usi commerciali.

4. Download per la stampa

Download in GLB (web e giochi), OBJ e STL (stampa 3D). Per l'STL il modello viene scalato all'altezza scelta in millimetri (codice nei Dettagli tecnici), così si apre già alla misura giusta nel programma della stampante.

Libreria dei propri modelli con anteprima e rigenerazione con impostazioni diverse.

5. Pagamenti con Stripe

Aggiungi pacchetti di crediti: 10 modelli a 12 €, 40 modelli a 39 €. Ogni nuovo utente riceve 2 crediti gratis. Ogni modello generato costa un credito; visualizzazione e download sono gratis. Mostra sempre in alto quanti crediti restano e, quando finiscono, un riquadro per comprarne altri.

A pagamento riuscito il webhook aggiunge i crediti del pacchetto con la funzione aggiungi_crediti.

Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.

6. Controlli specifici di questo progetto

Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. Stampa: scarica un STL a 50 mm di altezza e aprilo in un programma per stampanti 3D (slicer): deve misurare 50 mm.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Scalare il modello e salvarlo in STL

Carica il modello GLB, lo scala all'altezza voluta in millimetri, lo appoggia sul piano e lo esporta in STL per la stampa 3D.

import * as THREE from "three";
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
import { STLExporter } from "three/examples/jsm/exporters/STLExporter.js";

export async function glbInStl(urlGlb: string, altezzaMm: number): Promise<Blob> {
  const gltf = await new GLTFLoader().loadAsync(urlGlb);
  const modello = gltf.scene;

  // Misura il modello e lo scala all'altezza voluta (le stampanti lavorano in millimetri)
  const scatola = new THREE.Box3().setFromObject(modello);
  const dimensioni = scatola.getSize(new THREE.Vector3());
  modello.scale.multiplyScalar(altezzaMm / dimensioni.y);

  // Lo centra e lo appoggia sul piano (y = 0)
  modello.updateMatrixWorld(true);
  const nuova = new THREE.Box3().setFromObject(modello);
  const centro = nuova.getCenter(new THREE.Vector3());
  modello.position.x -= centro.x;
  modello.position.z -= centro.z;
  modello.position.y -= nuova.min.y;
  modello.updateMatrixWorld(true);

  const stl = new STLExporter().parse(modello, { binary: true }) as DataView;
  return new Blob([stl.buffer], { type: "model/stl" });
}

Pezzi comuni a tutti i progetti

Glossario

Storage
Lo spazio di Supabase dove si salvano i file, come foto e audio, con le sue regole di accesso.
STL
Il formato più usato per la stampa 3D: descrive la forma dell'oggetto con tanti triangoli.
GLB
Il formato 3D più adatto al web e ai giochi: contiene forma, colori e materiali in un solo file.