logo

Protected by Copyscape Duplicate Content Check

Benvenuto!
PORTFOLIO

Elenco dei progetti (più importanti) che ho realizzato


CATEGORIE DISPONIBILI

>> Scegliere una categoria fra le seguenti: <<

GRAFICA/ANIMAZIONE
 

TPA Movie - 2001

Questo è un progetto, svolto nel 2001, per sostenere l'esame di TPA (Tecniche di progettazione automatica). Anziché fare un progettino con un CAD o documentare un sorgente di linux (allacciandosi al fatto che nelle prime lezioni di questa materia venivano fornite le basi della struttura dell'ambiente grafico di *nix/Linux), ho preferito realizzare un'animazione 3D non troppo complicata ma abbastanza d'effetto.

Si tratta di un'applicazione che fa uso delle librerie DirectX 7.0, scritto in Visual C++ 6.0. I due velivoli si muovono su traiettorie prestabilite, ma il loro movimento è calcolato in tempo reale basandosi sulla curvatura dei corrispondenti path. Sulla base dei 2 percorsi e della posizione dei due velivoli viene calcolata la traiettoria sulla quale si muoverà la telecamera. Il terreno è costituito da un heighmap a singola texture, disegnata a mano rispettando uno storyboard che avevo deciso sia per dimostrare l'utilizzo delle nozioni apprese, sia per non superare il tempo di implementazione che mi ero prefissato.

Il video è stato ottenuto recentemente tramite screen capturing al fine di mostrare l'animazione sul sito. In sede d'esame al professore avevo ovviamente mostrato l'applicazione che ha anche un funzionamento interattivo. E' possibile infatti vedere i poligoni di controllo delle 3 spline, oltre che le spline stesse, modificare la velocità dell'animazione e spostarsi all'interno della scena tramite mouse e tastiera.

Strumenti usati: Visual C++ 6.0 (MFC), DirectX 7.0, 3D Studio Max, Photoshop


GIS Rimini - 2000

Questo è uno dei 2 progetti svolti nel 2000 per sostenere l'esame di TIT (Teoria dell'informazione e della trasmissione). Si tratta di un piccolo GIS che utilizza la cartina stradale di Rimini. Permette di inserire con pochi click le vie della città, i monumenti, le piazze, i cinema/teatri e le stazioni. Utilizza i layer permettendone l'attivazione e la disattivazione, semplifica le operazioni d'inserimento e query con gli snap, permette di inserire il bounding polygon per le piazze e le stazioni che sono identificabili con una regione anziché un punto. Permette di essere integrato con algoritmi di pathfinding (parte non implementata perché già sufficientemente ricco per le strutture dati realizzate e la gestione grafica sotto Visual C++) grazie alle strutture dati ottimizzate e alla metodologia d'inserimento delle vie.

Il progetto è stato svolto in gruppo con la mia carissima amica Vania (appena metti su il sito ti linko! :) ).

Strumenti usati: Visual C++ 6.0 (MFC)


Simulazione microarchitettura VIACARD - 1997

Secondo progetto realizzato per sostenere l'esame di Sistemi 1 (Sistemi per l'elaborazione dell'informazione 1). Dopo aver studiato il problema dei dati gestiti dalla VIACARD, sono stati definiti gli op-code delle istruzioni assembler di un ipotetico processore del quale sono stati definiti formato e tipologia di registri. E' stata così definita l'architettura del dispositivo che legge la viacard e ne è stato costruito un simulatore in C, mostrando graficamente il flusso delle informazioni nelle varie parti fisiche dell'architettura ad ogni ciclo di clock in base alle istruzioni assembler eseguite per aggiornare i valori della viacard in base al viaggio effettuato.
Il programma legge le istruzioni in linguaggio assembly da un file ASCII e mostra la corrispondente animazione del funzionamento dell'architettura sotto MS-DOS durante l'esecuzione delle istruzioni (comprendente ogni dettaglio come l'aggiornamento dei flag di stato, l'incremento del program counter, il caricamento delle istruzioni nell'MIR, ecc.).

Il progetto è stato svolto in gruppo, nel quale ho svolto un ruolo determinante alla riuscita del progetto.

Strumenti usati: linguaggio C con Visual C++ 5.0


PRIMA TESI (vo) - Editing and querying di immagini mediante funzioni wavelet - 2002

Questa è la tesi che ho svolto per la laurea con il vecchio ordinamento in Scienze dell'Informazione.
Tramite Microsoft Visual C++ 6.0 ho realizzato due programmi dopo averli progettati utilizzando il formalismo UML: uno per l'editing e l'altro per il querying di immagini multirisoluzione. Il programma di editing gestisce immagini in multirisoluzione rappresentate con 6 spazi colorimetrici, ha la funzione di zoom, gestisce la trasparenza e ha pennelli di forme diverse.
Prima di poter effettuare una ricerca su un insieme di immagini, occorre farle analizzare da uno script che usando di un algoritmo genetico, fa in modo che il programma di ricerca funzioni nel modo migliore. Prevedendo un lungo periodo di elaborazione per un numero di immagini elevato ho scritto lo script in maniera tale che supportasse una modalità di funzionamento di tipo batch: passando alcuni parametri è possibile stabilire l'esatto comportamento dell'algoritmo genetico il tipo di codifica da utilizzare per ogni individuo, la sua precisione, il numero di iterazioni, di individui, ecc. In questo modo è possibile suddividere manualmente l'insieme iniziale di immagini e procedere ad un'elaborazione in parallelo usando diversi computer
Dopo questa fase di pre-elaborazione, che avviene una sola volta, è possibile usare il secondo programma che permette di trovare un'immagine disegnando uno schizzo a mano libera in tempi così brevi che è possibile trasformare il programma per supportare una ricerca interattiva (man mano che si migliora il disegno si aggiorna l'insieme delle prime 20 immagini più simili a quella fornita).

Nel tentativo di elaborare un numero elevato di immagini ho effettuato il porting della parte di pre-elaborazione del programma su linux, in previsione di un utilizzo su un cluster di 16 pc linux disponibili all'università. Purtroppo per limiti di tempo mi son dovuto accontentare dell'elaborazione di quasi 2000 immagini utilizzando i pc della mia lan e del mio amico Stefano.

Note particolari:

  • tempo di realizzazione della tesi: 13 mesi (dei quali gli ultimi 3 lavorando 16 ore al giorno :shock:)
  • oltre a quanto descritto ho realizzato alcuni spider per trovare e scaricare da internet le immagini da elaborare
  • ho effettuato test sulla robustezza della nuova metrica Lq utilizzando diverse elaborazioni sulle immagini di partenza, comparando ogni volta i risultati ottenuti con le metriche 'convenzionali'.
  • anche l'algoritmo genetico l'ho realizzato in C++ ed è lanciabile da prompt dei comandi, al fine di permettere un'elaborazione di tipo batch e ridurre i lunghi tempi di elaborazione

Strumenti usati: UML, Microsoft Visual C++ 6.0, gcc su Linux, C++ con Winsock (per gli spider), Photoshop, Picture publisher, Powerpoint (diapositive animate per la discussione della tesi)

Esempio di querying

Esempio di ricerca dato uno schizzo realizzato a mano
(l'immagine desiderata è al 14° posto (3^ riga, 4^ colonna)


SECONDA TESI (ls) - Applicazione delle funzioni wavelet al querying di immagini - 2004

Questa è la tesi che ho svolto per la laurea specialistica in Scienze dell'Informazione.
Tramite Microsoft Visual C++ 6.0 ho analizzato il progetto di ricerca di immagini che avevo realizzato per la prima tesi e ne ho effettuato un refactoring per crearne un programma client/server e poter effettuare l'elaborazione di un numero molto elevato di immagini utilizzando la potenza di calcolo di oltre 130 computer presenti nei laboratori della facoltà.
Grazie a questa applicazione, immagini, risultati parziali, richieste di dati da elaborare vengono scambiati fra tutti i computer che partecipano all'elaborazione senza alcun intervento umano: l'unica operazione umana è quella di copiare le immagini su una cartella del computer che farà da server durante l'elaborazione e lanciare su ogni computer il programma client.
Le operazioni compiute sono analoghe a quelle effettuate per la prima tesi, ma ulteriormente ottimizzate e modificate affinché possano essere gestite in maniera parallela senza problemi.
Il risultato dell'elaborazione, rimasto compatibile con quello generato dalla prima tesi, permette di effettuare la ricerca delle immagini fornendo un disegno realizzato a mano, usando un database d'immagini grande a piacere.

Strumenti usati: UML, Microsoft Visual C++ 6.0, C++ con Winsock, Powerpoint (diapositive animate per la discussione della tesi)