1.Panoramica
Il Sistema Solare 3D di Fosforonero Lab è un osservatorio interattivo nel browser costruito con WebGL (Three.js). Permette di esplorare i corpi del sistema solare in tempo simulato, con dati astronomici reali dove disponibili.
A — Fisica rispettata: — Elementi orbitali (a, e, i, Ω, ω, M₀) da NASA/JPL Horizons, valori reali. — Propagazione kepleriana corretta: equazione di Keplero risolta numericamente, rotazione perifocale completa. — Rapporti di distanza in scala "Compressa": 1 AU = 1 unità, fisicamente corretti. — Rapporti di raggi in scala "Relativo": proporzionali al Sole, fisicamente corretti. — Illuminazione 1/r² in modalità fisica: nessun boost, Nettuno scuro come nella realtà. — Obliquità assiale: valori IAU 2015 reali (Terra 23,44°, Venere 177,36°, Urano 97,77°). — Fase di rotazione siderale: calcolata dal periodo siderale reale a partire da J2000.0. — Proporzioni degli anelli: i rapporti anello/pianeta sono fisicamente corretti. — Catalogo stellare Hipparcos (44 stelle nominate, posizioni RA/Dec J2000 reali).
B — Fisica approssimata/educativa (dichiarata nell'UI): — Scala raggi "Visibile" (default): logaritmica categoriale, non proporzionale. Dichiarata. — Distanze lune: boost ×200 per leggibilità. Dichiarato. — Illuminazione educativa (default): 1/r² + boost ambientale dichiarato. — Lato notte/giorno: shading Three.js su sfere senza texture; nessuna eclissi. — Direzione del polo: approssimazione eclittica, non RA/Dec IAU WGCCRE per-corpo. Prevista Sprint 04. — Anelli: colore fisso (non ricevono la luce solare della PointLight).
C — Non ancora implementato: — Gravità newtoniana / N-body: le orbite sono elementi kepleriani statici. — Temperatura: nessun dato, nessun calcolo. — Eclissi, ombre, transiti. — Correzioni relativistiche (inclusa precessione del perielio di Mercurio). — massKg mostrato nell'ispettore ma non usato nella simulazione. — Texture superficiali reali (roadmap).
3.Controlli del tempo
La barra degli strumenti nella parte inferiore (o superiore, a seconda del layout) contiene i controlli temporali:
Pulsante Adesso: reimposta immediatamente la simulazione alla data e ora correnti del browser.
Selettore di data: un input di tipo data/ora che permette di impostare qualsiasi data tra il 1800 e il 2200 circa. Le posizioni orbitali vengono ricalcolate in tempo reale.
Play / Pausa: avvia o mette in pausa l'animazione del tempo simulato. Quando è in play, le posizioni dei corpi si aggiornano ogni 100 ms.
Selettore di velocità: — Tempo reale → 1 secondo simulato = 1 secondo reale — 1 giorno/sec → 1 giorno simulato per secondo reale — 1 mese/sec → 30 giorni simulati per secondo reale — 1 anno/sec → 365 giorni simulati per secondo reale
Nota: a velocità elevate (1 anno/sec), le traiettorie orbitali di corpi veloci come Mercurio possono apparire discontinue tra un aggiornamento e l'altro. Questo è normale: la posizione è comunque calcolata correttamente per ogni frame.
4.Modalità di scala
Il sistema solare reale è quasi interamente vuoto. Per visualizzarlo in modo utile, offriamo diverse modalità di scala:
Scala distanza: — Compressa (default): 1 AU = 1 unità di rendering. I pianeti interni sono vicini e distinguibili. Nettuno è visibile ma lontano. Questa è la modalità più intuitiva per un'esplorazione generale. — Logaritmica: la distanza viene trasformata con log10. Utile per visualizzare contemporaneamente pianeti interni ed esterni, TNO e oggetti distanti. Le distanze non sono lineari, ma la struttura globale del sistema diventa immediatamente leggibile. — Sistema interno: espande la zona entro 2 AU per mostrare Mercurio, Venere, Terra e Marte con più dettaglio e spazio tra di loro.
Scala raggi: — Visibile (default): impone una dimensione minima visibile a tutti i corpi. I pianeti piccoli e le lune sono più grandi di quanto sarebbero realisticamente a queste distanze. Garantisce che ogni corpo sia cliccabile. — Relativo: i raggi sono proporzionali al Sole. La Terra appare come un punto minuscolo. Fisicamente più corretto, ma molti corpi diventano invisibili a occhio nudo.
Nota sui rapporti fisici: in modalità "Compressa" i rapporti tra distanze orbitali sono fisicamente corretti. In modalità "Relativo" i rapporti tra raggi sono fisicamente corretti. Non esiste però una modalità dove raggi e distanze sono contemporaneamente in scala reale: a proporzioni fisiche reali i pianeti sarebbero invisibili rispetto alle distanze.
5.Sistema di riferimento
Sistema di riferimento: tutte le posizioni sono calcolate nel frame Eclittica Eliocentrica J2000.0 (HEC-J2000).
Origine: baricentro del Sistema Solare (approssimato al Sole in questo laboratorio). Piano xy: piano dell'eclittica medio a J2000.0. Asse x: equinozio di primavera medio a J2000.0. Unità: chilometri.
Questo sistema NON coincide con le coordinate equatoriali ICRF/J2000 (usate da SIMBAD, Gaia, ecc.). La conversione richiede una rotazione di ~23.44° attorno all'asse x (obliquità dell'eclittica, IAU 2006).
Cosa è approssimato: l'origine è al Sole, non al vero baricentro; le posizioni vengono da elementi kepleriani, non da integrazione numerica; l'azimut del polo planetario è approssimato (RA/Dec IAU WGCCRE previsto per Sprint 04).
6.Inclinazione assiale e rotazione
Inclinazione assiale: i pianeti principali mostrano la reale obliquità rispetto all'eclittica (dati IAU 2015). L'asse di rotazione è visibile opzionalmente tramite il toggle "Assi" nella barra degli strumenti.
Rotazione retrograda: Venere (177°), Urano (98°) e Plutone (122°) ruotano in senso retrogrado. Urano ha il polo quasi nel piano orbitale.
Anelli: Saturno mostra gli anelli nel piano equatoriale (74 500–140 220 km). Urano mostra anelli più tenui (38 000–51 149 km), quasi perpendicolari al piano orbitale per via dell'inclinazione di 98°.
Nota tecnica: l'azimut del polo è approssimato — la precisa direzione RA/Dec IAU WGCCRE non è ancora implementata. La fase di rotazione segue il periodo siderale reale da J2000.0, senza precessione o nutazione.
7.Illuminazione
Illuminazione educativa (predefinita): luce solare con legge inversa del quadrato (1/r²) più un piccolo boost ambientale dichiarato che mantiene visibili i pianeti esterni. Non è fisicamente precisa per i pianeti lontani.
Illuminazione fisica (1/r²): nessun boost. Nettuno a ~30 UA riceve circa 1/900 dell'irradianza terrestre — scuro come nella realtà. Selezionabile dal menu "Illuminazione" nella barra degli strumenti.
La modalità attiva è sempre indicata nell'ispettore sotto "Scale attive".
8.Categorie di corpi celesti
I corpi nel browser laterale sono organizzati per categoria:
Stella: il Sole. Unica stella del sistema solare. Raggio: 696.340 km. Massa: 1,989 × 10³⁰ kg.
Pianeti (8): Mercurio, Venere, Terra, Marte, Giove, Saturno, Urano, Nettuno. Classificazione IAU 2006.
Pianeti nani: Plutone, Cerere, Eris, Makemake, Haumea. Classificazione IAU 2006.
Lune: la Luna (Terra), Titano, Europa, Ganimede, Callisto, Io, Tritone, e altre lune principali dei pianeti giganti. Sprint 01 include un sottoinsieme curato.
Asteroidi: corpi minori della fascia principale. Sprint 01 include un sottoinsieme rappresentativo (Vesta, Pallade, ecc.).
Comete: corpi con orbite molto eccentriche. Sprint 01 include alcune comete notevoli (es. 1P/Halley).
Oggetti Transnettuniani (TNO): corpi oltre l'orbita di Nettuno, inclusa la fascia di Kuiper. Sprint 01 include i TNO più noti.
Tutti i corpi presenti nell'MVP sono dati statici curati manualmente. Un catalogo completo di corpi minori (JPL Small Body Database) è pianificato per sprint successivi.
9.Campi dell'ispettore
Quando selezioni un corpo celeste, l'ispettore laterale mostra:
Nome: nome ufficiale IAU, mostrato in italiano e inglese (bilingue).
Categoria: la categoria del corpo (stella, pianeta, pianeta nano, luna, asteroide, cometa, TNO).
Corpo genitore: il corpo attorno a cui orbita (es. "Terra" per la Luna, "Sole" per i pianeti).
Raggio: raggio medio in km. Per corpi non sferici (come asteroidi) è il raggio equivalente.
Massa: massa in kg, in notazione scientifica (es. 5,972 × 10²⁴ kg per la Terra). Dato di riferimento: la massa non è usata nei calcoli di simulazione (le orbite sono kepleriane, non N-body).
Epoca: data ISO 8601 a cui si riferisce la posizione calcolata. Corrisponde alla data attualmente impostata nei controlli del tempo.
Fonte: il dataset utilizzato per gli elementi orbitali (es. "NASA/JPL public orbital elements", "Hipparcos catalog").
Confidenza asset: indica il livello di fedeltà della rappresentazione visiva del corpo (vedi sezione successiva).
10.Etichette di confidenza visiva
Ogni corpo ha un'etichetta di confidenza che descrive quanto è fedele la sua rappresentazione visiva:
Procedurale: il corpo è renderizzato con un colore approssimativo e una forma sferica generica. Non c'è una mappa superficiale reale. Questo è il livello attuale per la maggior parte dei corpi nell'MVP Sprint 01. Il colore è scelto in base alla categoria e ai dati disponibili, ma non è fotograficamente accurato.
Simbolico: il corpo è rappresentato solo da un indicatore puntiforme o da un marker, senza geometria 3D. Usato per corpi molto piccoli o distanti dove la geometria non ha senso alla scala corrente.
Mesh reale (roadmap): una mesh 3D modellata su dati topografici reali (USGS, NASA DEM). Pianificata per Sprint 02+ per Terre, Luna, Marte e altri corpi ben documentati.
Mappa reale (roadmap): texture fotografica da dati NASA/USGS/JAXA applicata alla mesh. Pianificata per Sprint 02+ insieme alle mesh reali.
11.Strato firmamento
Il firmamento è lo sfondo stellare della scena 3D. È costruito da dati astronomici reali:
Stelle: 44 stelle nominate dal catalogo Hipparcos dell'ESA (High Precision Parallax Collecting Satellite). Ogni stella ha posizione reale (ascensione retta e declinazione J2000), magnitudine reale, e colore calcolato dalla temperatura spettrale. Le stelle vengono proiettate sulla sfera celeste a distanza fissa dalla camera.
Costellazioni: linee di costellazione tratte dai metadati di Stellarium Sky Cultures. Subset curato di stelle luminose e costellazioni riconoscibili (non la copertura completa delle 88 IAU). Possono essere attivate o disattivate con il toggle "Costellazioni" nel pannello di controllo.
Oggetti del cielo profondo: un sottoinsieme di oggetti Messier e NGC tratti da OpenNGC: — M31 (Galassia di Andromeda), M33 (Triangolo), M42 (Nebulosa di Orione), M45 (Pleiadi), M44 (Presepe), M13 (Ammasso globulare di Ercole), M81 (Galassia di Bode), M57 (Nebulosa Anello). Visualizzati come icone o marker con nome. Possono essere attivati o disattivati separatamente dalle costellazioni.
In arrivo: il catalogo completo Gaia (oltre 1 miliardo di stelle) è pianificato per un sprint futuro, con rendering ottimizzato tramite instanced geometry e LOD.
12.Roadmap: modalità sandbox
La modalità sandbox è una funzionalità pianificata per un sprint futuro. Non è disponibile nell'MVP Sprint 01.
In modalità sandbox, l'utente potrà: — Aggiungere corpi celesti personalizzati (nome, massa, raggio, posizione, velocità iniziale). — Scegliere se usare fisica N-body semplificata (integrazione Verlet) o elementi orbitali kepleriani. — Osservare come i nuovi corpi interagiscono gravitazionalmente con il sistema esistente. — Esportare la configurazione come JSON per condividerla o riaprirla in seguito.
La modalità attuale mostra esclusivamente i dati reali del sistema solare. Non è possibile aggiungere o modificare corpi.
13.Mobile e performance
Ottimizzazione attuale:
Desktop: l'esperienza principale. Il canvas WebGL e tutti i pannelli sono progettati per schermi da 1280px in su. Testato su Chrome, Firefox e Safari.
Mobile: il canvas si renderizza correttamente anche su dispositivi mobili. I controlli (pannelli laterali, toolbar) potrebbero risultare sovrapposti o ridotti su schermi piccoli. I gesti touch per la navigazione (ruota, zoom, pan) sono parzialmente supportati in Sprint 01. Sprint futuri aggiungeranno pannelli collassabili e gesture ottimizzate per touch.
Performance: il caricamento del modulo WebGL avviene tramite dynamic import (lazy loading), quindi non impatta il caricamento iniziale della pagina. Sprint 01 non carica texture pesanti. Il numero di corpi attivi è gestibile (~28 corpi). Il rendering è ottimizzato con requestAnimationFrame e aggiornamenti posizionali ogni 100ms.
Per problemi di performance su hardware vecchio: prova a disattivare il firmamento stellare dal pannello impostazioni (riduce il numero di vertex da renderizzare).
14.FAQ
- Le posizioni dei pianeti sono accurate?
- Sono approssimate. Le posizioni sono calcolate da elementi orbitali di riferimento pubblici (basati su dati NASA/JPL) usando formule kepleriane semplificate. L'errore tipico è di pochi milioni di km su scale di anni. La precisione JPL Horizons (sub-kilometrica) è pianificata per un sprint futuro con integrazione live alle API di Horizons.
- Perché il sistema solare sembra così piccolo?
- Con la scala 'Compressa' (default), 1 AU corrisponde a 1 unità di rendering: i pianeti interni sono vicini ma Nettuno è già distante. Prova la modalità 'Sistema interno' per espandere la zona entro 2 AU e vedere Mercurio, Venere, Terra e Marte con più dettaglio.
- Posso aggiungere un pianeta personalizzato?
- Non nell'MVP. La modalità sandbox, che permetterà di aggiungere corpi con massa e velocità iniziale personalizzate, è in roadmap per un futuro sprint.
- Perché i pianeti sono solo sfere colorate?
- Le texture superficiali reali richiedono elaborazione di dati NASA/USGS (mappe altimetriche, immagini multispettrali). Questo lavoro è pianificato per Sprint 02. Nell'MVP, la rappresentazione è procedurale: colore approssimativo + forma sferica.
- Che catalogo stellare viene usato?
- Il catalogo Hipparcos dell'ESA (High Precision Parallax Collecting Satellite). 44 stelle nominate con posizioni RA/Dec J2000 reali e magnitudini reali. Il catalogo completo Gaia è pianificato per Sprint 02.
- Quanti corpi sono inclusi?
- Sprint 01 include circa 28 corpi curati: il Sole, 8 pianeti, 5 pianeti nani principali, le lune principali, alcuni asteroidi rappresentativi, e alcune comete notevoli. Un catalogo completo di corpi minori (JPL Small Body Database, >1 milione di oggetti) è pianificato per sprint successivi.
- Da dove vengono i dati orbitali?
- Elementi orbitali di riferimento pubblici basati su dati NASA/JPL (Jet Propulsion Laboratory). Non si tratta di un feed live: i dati sono caricati staticamente nell'applicazione. L'integrazione live con JPL Horizons è in roadmap.