Marco Azimonti

Portfolio

Il Mio Portfolio

Benvenuto nel mio portfolio, dove oltre 25 anni di ingegneria aerospaziale e sviluppo software convergono per mostrare una varietà di progetti. Con una solida base in matematica, fisica e ingegneria, ho dedicato il mio tempo a creare soluzioni innovative in diversi domini.

Specializzato in simulazioni numeriche, eccello nel tradurre complessi problemi fisici in modelli computazionali efficienti utilizzando Fortran e C++. Questi linguaggi ad alte prestazioni alimentano i calcoli fondamentali nelle mie aree di interesse, garantendo precisione ed efficienza in calcoli critici. A completamento, sfrutto le estese librerie di Python per l’analisi dei dati e la visualizzazione, portando chiarezza e intuizione a dataset complessi.

Oltre alle simulazioni, la mia esperienza si estende al web design e alla grafica computerizzata, riflettendo un impegno verso la versatilità e l’apprendimento continuo. Questo insieme di competenze multifaccettato mi permette di affrontare i problemi in modo olistico, creando soluzioni che sono sia tecnicamente robuste che user-friendly.

Esplora il mio portfolio per vedere come unisco la programmazione tradizionale ad alte prestazioni con le moderne tecniche di sviluppo, offrendo soluzioni innovative che spaziano dalle applicazioni aerospaziali a piattaforme web interattive.

Progetto Descrizione
Sito Personale Un sito web personalizzato e responsivo con librerie JavaScript personalizzate, generazione dinamica di contenuti e alti standard di programmazione dettagli link
MA Libs Un insieme versatile di librerie C++ e Fortran sviluppate nel corso degli anni, progettate per migliorare la funzionalità e l’interoperabilità in vari progetti dettagli link
Hexo Toolkit Una raccolta di script progettati per migliorare l’esperienza con Hexo, un programma per creare blogs in modo veloce, semplice e potente dettagli link
Simulazione di Spin Quantistico Un progetto interattivo basato su Python per simulare la dinamica degli spin quantistici, inclusi sistemi a uno e due spin correlati e l’esperimento EPR dettagli link
Simulazione dell’Equazione di Schrödinger Simulazione numerica dell’equazione di Schrödinger in 1D e 2D, inclusa l’evoluzione della funzione d’onda e l’esperimento della doppia fenditura dettagli link
Simulazione Orbitale Simula la dinamica orbitale dei pianeti attorno al Sole dettagli link
Classificazione MNIST Addestra e testa reti neurali sulla classificazione di immagini utilizzando il dataset MNIST dettagli link
Visualizzatore di curve OpenGL Applicazione OpenGL per esplorare curve 3D dettagli link
Ricerca del percorso con rete neurali Applicazione OpenGL che trova il percorso più breve utilizzando reti neurali e algoritmi genetici dettagli link
Pendolo inverso Sistema di controllo a retroazione con linearizzazione e rete neurale per un pendolo inverso (singolo e su carrello) dettagli link
Esperimenti GPT Implementazione di un “Generative Pre-trained Transformer” (GPT) dettagli link
Vetrina HTML5 Collezione di app responsive in HTML5 dettagli link

Questo sito personale

Ho costruito questo sito da zero, utilizzando Bootstrap per garantire un design responsivo che offre un’esperienza utente ottimale sia su desktop che su dispositivi mobili. Per migliorare la funzionalità del sito e mantenere un’estetica coerente, ho sviluppato librerie JavaScript personalizzate—including evidenziazione della sintassi, breadcrumb e cloud di tag—che si integrano perfettamente con l’aspetto generale.

Per i contenuti visivi, ho creato script che generano immagini direttamente dal codice Python o MATLAB, permettendo rappresentazioni dinamiche e accurate di dati e simulazioni. La sezione del blog è alimentata da Hexo, ma ho progettato personalmente il tema per garantire che si allinei perfettamente con il resto del sito.

Per mantenere elevati standard di codifica, ho implementato diversi script per la minificazione, il linting e il deployment del codice. Questi strumenti non solo ottimizzano le prestazioni ma semplificano anche il processo di sviluppo. Puoi esplorare alcuni degli strumenti web in evidenza qui. (Spiacente, questa sezione è disponibile solo in inglese.)

MA-libs

Un insieme versatile di librerie C++ e Fortran sviluppate nel corso degli anni, progettate per migliorare la funzionalità e l’interoperabilità in vari progetti.

Interoperabilità tra Linguaggi:

  • Interfaccia C++ e Fortran: Interfaccia tra codice C++ e Fortran, permettendo di chiamare funzioni da un linguaggio all’altro.
  • Interfaccia C++ per Python: Consente a Python di chiamare funzioni C++, combinando alte prestazioni e facilità d’uso.

Gestione dei Dati:

  • Serializzazione Affidabile con HDF5: Utilizza HDF5 per una serializzazione e deserializzazione robusta dei dati, garantendo integrità dei dati ed efficienti operazioni di I/O.

Calcoli Numerici:

  • Interfaccia BLAS/LAPACK: interfaccia basata su template che supportano vari tipi di dati per operazioni di algebra lineare ad alte prestazioni.
  • Libreria di Reti Neurali: Una libreria di reti neurali in C++ con interfaccia BLAS/LAPACK e supporto HDF5 per memorizzare e riutilizzare i pesi.

Visualizzazione:

  • Motore OpenGL: Visualizzazione risultati numerici in 2D e 3D, utili nell’interpretazione e nella presentazione dei dati.

Queste librerie sono disponibili su GitHub qui.

Hexo toolkit

Una raccolta di script progettati per migliorare l’esperienza con Hexo, un programma per creare blogs in modo veloce, semplice e potente.

  • Scripts: Migliora l’ergonomia di Hexo con questi pratici script.
  • Temi Personalizzati: un generatore personalizzato per creare automaticamente ‘json-ld’ o un calendario json per esportare feed RSS e Atom.
  • Estensioni: Amplia le funzionalità di Hexo con estensioni utili.

Il toolkit è disponibile su GitHub qui.

Simulazione di spin correlati in meccanica quantistica

Un progetto interattivo basato su Python progettato per simulare la dinamica dello spin quantistico, offrendo una piattaforma coinvolgente per esplorare i principi fondamentali della meccanica quantistica attraverso metodi computazionali:

  • Simulazione di Singolo Spin: Simula il comportamento di un singolo spin quantistico sotto varie orientazioni di misura, fornendo intuizioni sulla sovrapposizione quantistica e il collasso della misura.
  • Simulazione di Due Spin: Estende le simulazioni a due spin, includendo stati di prodotto e stati correlati, permettendo l’esplorazione di fenomeni complessi come la correlazione di spin.
  • Simulazione dell’Esperimento EPR: Dimostra i principi del paradosso EPR e le violazioni del teorema di Bell utilizzando stati di spin correlati, evidenziando i risultati non classici previsti dalla meccanica quantistica.
  • Visualizzazione e Analisi: Visualizzazione in tempo reale degli stati di spin e analisi statistica completa per aiutare nella comprensione dei comportamenti quantistici.

Questo progetto è disponibile su GitHub qui.

Simulazione dell’equazione di Schrödinger

Simulazione numerica dell’equazione di Schrödinger in 1D e 2D, modellando il comportamento della funzione d’onda sotto vari tipi di potenziale.

1 Dimensione:

  • Tipi di Potenziale: Spazio libero, oscillatore armonico, barriera infinita, barriera destra finita.
  • Inizializzazione della Funzione d’Onda: Pacchetti d’onda ed autofunzioni per oscillatore armonico o pozzo infinito.
  • Visualizzazione: Densità di probabilità, parti reali e immaginarie, modulo e fase (fase a colori).
  • Metodi di Evoluzione Temporale: Crank-Nicolson implicito (2^\circ ordine) e Runge-Kutta esplicito (8^\circ ordine).
  • Unità: Scala elettronica o unità normalizzate.

2 Dimensioni:

  • Tipi di Potenziale: Spazio libero, particella in una scatola, particella con barriere, fenditure multiple.
  • Inizializzazione della Funzione d’Onda: Pacchetti d’onda.
  • Visualizzazione: Densità di probabilità, modulo e fase (fase a colori).
  • Metodo di Evoluzione Temporale: Crank-Nicolson implicito (2^\circ ordine).

Simulazione dell’Esperimento della Doppia Fenditura:

  • Configurazione della Doppia Fenditura: Simulazione numerica dell’iconico esperimento della doppia fenditura utilizzando pacchetti d’onda elettronici. L’equazione di Schrödinger modella il passaggio del pacchetto d’onda attraverso due fenditure, calcolando il pattern di interferenza formato dagli elettroni che colpiscono lo schermo.
  • Risultati della Simulazione: Visualizza la distribuzione di probabilità del pacchetto d’onda sullo schermo e simula l’accumulo del pattern di interferenza con più elettroni.
  • Visualizzazione: Fornisce una visualizzazione in tempo reale degli impatti degli elettroni e delle fringe di interferenza.

Configurazioni ed esempi di visualizzazione sono disponibili per le simulazioni 1D e 2D. Questo progetto offre uno strumento approfondito per esplorare il comportamento delle onde quantistiche, inclusa la simulazione del famoso esperimento della doppia fenditura.

Questo progetto è disponibile su GitHub qui.

Simulazione orbitale

Progetto basato su Python progettato per simulare la dinamica orbitale dei pianeti attorno al Sole. Fornisce una piattaforma interattiva per esplorare i principi fondamentali della meccanica celeste attraverso metodi computazionali. Che tu sia uno studente, un educatore o un ricercatore, questo repository offre strumenti preziosi per simulare e analizzare il comportamento delle orbite planetarie in diverse condizioni.

  • Modelli Planetari Accurati: Simula le orbite dei pianeti utilizzando dati reali e modelli fisici.
  • Parametri Personalizzabili: Modifica le condizioni iniziali e i parametri fisici per esplorare diversi scenari orbitali.
  • Strumenti di Visualizzazione: Genera rappresentazioni visive delle orbite planetarie e della loro dinamica nel tempo.
Simulazione orbitale

Questo progetto è disponibile su GitHub qui.

Classificazione MNIST

Questo progetto utilizza la mia libreria personalizzata di reti neurali, applicata in particolare alla classificazione di immagini utilizzando il dataset MNIST. Ho sviluppato due programmi per gestire le fasi di addestramento e test: uno utilizza l’algoritmo Stochastic Gradient Descent (SGD) per un’ottimizzazione efficiente, mentre l’altro impiega un Algoritmo Genetico per esplorare e ottimizzare le configurazioni della rete.

Questo progetto è disponibile su GitHub qui.

Visualizzatore di curve OpenGL

Ho sviluppato un’applicazione OpenGL per la visualizzazione e l’esplorazione di curve 3D. Lo strumento consente agli utenti di generare, modificare e visualizzare vari tipi di curve in un ambiente 3D, sfruttando OpenGL per il rendering in tempo reale. Questo progetto supporta l’esplorazione interattiva di rappresentazioni parametriche, implicite e altre curve, con un focus sulla creazione di una piattaforma dinamica per scopi educativi e di ricerca. Integra anche funzioni matematiche per la generazione delle curve e offre impostazioni personalizzabili per le opzioni di rendering e il controllo della telecamera.

Questo progetto è disponibile su GitHub qui.

Ricerca del percorso con rete neurali

Ho sviluppato un’applicazione OpenGL che trova il percorso più breve utilizzando una combinazione di reti neurali e algoritmi genetici. Il progetto integra tecniche avanzate di intelligenza artificiale per risolvere problemi di ricerca del percorso in ambienti grafici in tempo reale. Le reti neurali prevedono percorsi ottimali, mentre gli algoritmi genetici evolvono soluzioni di percorso, bilanciando esplorazione e sfruttamento. L’applicazione visualizza il processo di ricerca del percorso, mostrando come gli approcci guidati dall’intelligenza artificiale possano superare i metodi tradizionali. Questo progetto dimostra l’uso dell’intelligenza artificiale per l’ottimizzazione in ambienti interattivi e dinamici, evidenziando il potenziale della combinazione di apprendimento neurale e algoritmi evolutivi.

Questo progetto è disponibile su GitHub qui.

Pendolo inverso

Ho sviluppato un sistema di controllo a retroazione per un pendolo inverso, sia singolo che su un carrello, combinando tecniche di linearizzazione con il controllo basato su reti neurali. Il progetto esplora metodi di controllo classici, come PID, e modelli avanzati di machine learning per stabilizzare il pendolo in vari scenari dinamici. La rete neurale è addestrata per ottimizzare l’ingresso di controllo apprendendo le dinamiche non lineari del sistema. Il repository include dati di simulazione, algoritmi di controllo e visualizzazioni per mostrare le prestazioni. Questo lavoro dimostra l’applicazione dell’IA alla teoria del controllo per sistemi complessi.

Questo progetto è disponibile su GitHub qui.

Esperimenti GPT

Ho sviluppato un progetto Python incentrato sulla creazione e l’esperimento di modelli “Generative Pre-trained Transformer” (GPT) da zero. Il repository fornisce un framework semplice ma potente per l’addestramento e il test di modelli GPT personalizzati, completo di tokenizer, addestramento del modello, generazione di testo e moduli di introspezione del modello.

Che tu stia esplorando le complessità dei modelli di linguaggio o sia semplicemente curioso di capire come funziona GPT, questo playground offre un punto di partenza per simulazioni, addestramento del modello e generazione di testo.

Le funzionalità disponibili sono:

  • Tokenizer personalizzato: Converti testo grezzo in input tokenizzati per il modello.
  • Addestramento del modello: Addestra il modello su qualsiasi testo di input.
  • Generazione di testo: Genera sequenze di testo basate su un prompt dato.
  • Test flessibili: Modifica le sequenze di partenza e i parametri per testare diversi output.

Questo progetto è disponibile su GitHub qui.

Applicazioni HTML5

Ho sviluppato una selezione di strumenti web interattivi. Ogni applicazione è costruita con HTML5 e utilizza pratiche moderne di sviluppo web per garantire funzionalità, performance e un’esperienza utente senza interruzioni.

Questa vetrina copre una varietà di funzionalità, dalle utility quotidiane agli strumenti più specializzati, ciascuno pensato per migliorare l’usabilità e l’accessibilità. Mi sono concentrato sulla creazione di interfacce responsive che si adattano facilmente a diversi dispositivi, ponendo l’accento sull’efficienza sia nel design che nel codice. Esplora ogni applicazione per vedere soluzioni pratiche in azione.

Questa collezione è disponibile qui.

Vai all'inizio della pagina