Alessio Lavore

About me

Welcome to my personal website. Here you can find information about me and my projects.

My name is Alessio and I am a student at the University of La Sapienza in Rome,

I graduated in Computer Engineering and I am passionate about programming and everything related to technology.

Sometimes, when I'm bored, I start some completely useless projects just to do something. Everything but studying.

Academic Career

I'm not sure why this would interest you even slightly, but okay.

My journey towards computer science began in high school, specifically at a Scientific High School with an Applied Sciences course (so with computer science instead of Latin),

where I learned the basics of programming and started to realize that this was what I wanted to do in life.

After 5 years, I graduated and immediately enrolled in university, in the Computer Engineering course, because it sounds cooler than just Computer Science ...

... no, that's not true, it's because of the addition of Electronics and Economics, as well as a more in-depth study of Mathematics.

After completing the 3 years, I graduated with an excellent foundation in programming in C, Python, and Java (a bit less),

specific knowledge in developing functional and efficient software, decision-making skills in the production process,

and a perspective focused on the security as well as the profitability of the developed software.

During my studies, I had the opportunity to experiment by creating elaborate projects, such as dynamic and functional web platforms,

or developing intelligent agents using specific approaches in the field of AI.

Passions and Soft Skills

In addition to computer science, I have a great passion for everything related to computers,

from their history to the most widespread components today, to how to assemble one and configure it optimally.

For this reason, like any good IT professional, I assembled my own PC.

Over time, this has also led me to have excellent skills in the field, both in terms of components and system optimization.

Of course, I don't live only for IT and computers. I have been playing basketball since I was a child and occasionally practice airsoft.

I go to the gym regularly and like to try to push my limits at every opportunity.

If I were to egocentrically attribute some soft skills to myself, they would definitely be related to the field of software development.

I consider myself skilled at interacting well and organizing or adapting in any work group,

as well as being willing to help and mentor when necessary or to ask for help when needed.

foto del pc

About me

Benvenuto nel mio sito personale. Qui potrai trovare informazioni su di me e sui miei progetti.

Il mio nome è Alessio e sono uno studente presso l'Università La Sapienza di Roma,

Sono laureato in Ingegneria informatica e sono appassionato di programmazione e di tutto ciò che riguarda la tecnologia.

Qualche volta, quando sono annoiato, inizio dei progetti completamente inutili tanto per fare qualcosa. Tutto tranne che studiare.

Carriera Accademica

non so perché dovrebbe interessarti anche solo minimamente ma ok.

La mia corsa verso l'informatica inizia al liceo, in particolare ad un Liceo Scientifico con corso in Scienze Applicate (quindi con informatica invece che latino),

qui ho imparato le basi della programmazione e ho iniziato a capire che era ciò che volevo fare nella vita.

Dopo 5 anni mi diplomo e mi iscrivo subito all'Università, al corso di Ingegneria Informatica, perché fa più figo di Informatica e basta ...

... no, non è vero, è per l'aggiunta di Elettronica ed Economia, oltre che uno studio più approfondito della Matematica.

Finiti i 3 anni mi laureo, con sulle spalle un'ottima formazione sulla programmazione in C, Python e Java (un po' meno),

una conoscenza specifica nello sviluppo di software funzionali ed efficenti, capacità decisionali nel processo produttivo,

e un ottica improntata alla sicurezza oltre che alla redditività dei software sviluppati.

Durante il corso di studi ho avuto modo di sperimentare nella creazione di progetti elaborati, come piattaforme web dinamiche e funzionali,

o come la realizzazione agenti intelligenti usando approcci specifici nel campo dell' IA.

Passioni e Soft Skills

Oltre all'informatica ho anche una gran passione per tutto il mondo legato ai computer,

dalla loro storia, alle componenti più diffuse ad oggi, sul come se ne assembla uno e come configurarli al meglio.

Per questo come ogni buon informatico che si rispetti mi sono assemblato da solo il mio pc.

Questo nel tempo mi ha anche portato ad avere ottime competenze nel settore, sia a livello componentistico che nell'ottimizzazione dei sistemi.

Ovviamente non vivo solo di informatica e computer, gioco a Basket fin da quando ero piccolo e occasionalmente pratico Softair.

Vado in palestra regolarmente e mi piace provare a superare i miei limiti in ogni momento.

Ma se dovessi egocentricamente auto attribuirmi delle softskill esse sarebbero sicuramente legate all' ambito di sviluppo software.

Mi considero abile nel relazionarmi bene e nell'organizzarmi o adattarmi in qualsiasi gruppo di lavoro,

oltre che disponibile ad aiutare e fare da mentore quando necessario o a chiedere aiuto quando ne ho bisogno.

foto del pc

My Projects

github [#ffffff] Created with Sketch.

Most of my projects have been uploaded to GitHub. Here you can find both complex projects and simple standalone codes that I have written along my journey.

Some non-open-source projects I have worked on are my Android games available on the Google PlayStore.

Other projects I have dedicated time to involve circuitry and 3D printing, such as:

  • keyboard_double_arrow_rightA digital night vision device made with a Raspberry Pi and old surveillance cameras;

Project Examples

Blackjack AI

One of the latest projects I worked on during my bachelor's degree was the creation of an AI agent capable of playing blackjack.

The logic of the agent, as well as the game environment and GUI, were written in Python.

For the graphical interface, I used the Matplotlib, Tkinter, and Pygame libraries, while the agent's code is completely original.

To make the AI agent work, I used a probabilistic approach based on expected value calculation.

The agent is able to choose the move that maximizes its probability of winning and consequently its profit, at any moment during the game.

To evaluate the AI's performance, I also created an accelerated multithreaded game simulator,

which allows the simulation of specific game conditions and the creation of performance graphs.

screenshot blackjack AI

Digital NVG

The creation of this night vision device was carried out in three phases: design, construction, and software development.

During the design phase, I decided on the shape of the device, took measurements to correctly position lenses and screens,

decided which materials to use, how to procure them, and which electronic components were most suitable for the project.

After completing the design, I created the 3D model, taking into account all the necessary measurements and spaces for the electronics.

I then procured a Raspberry Pi Zero 2W, two 2.2" LCD displays, and two cameras salvaged from old surveillance cameras.

I soldered all the connections between the various components and tested the proper functioning of the parts.

Finally, I had to write the Python code that controls the frame transfer from the camera to the display, make it a service to start it from the RPi's Linux OS at boot,

3D print all the parts of the device, and assemble everything to be stable and secure.

photo of the night vision device

OutThink

The last Android game I worked on is called OutThink, and it is a logic game based on 100 different levels.

The levels range from a low difficulty that everyone can handle to a higher difficulty that requires more specific knowledge or a higher reasoning ability.

The questions in the levels are purely logical and mathematical; the only language used is numeric or symbolic, without any words.

The game was developed in Unity using C#, the assets were either handmade or sourced from some open-source collections,

player data management, achievements, and completed levels were handled through Google's API for Google Play Games integration.

screenshot of the main page of OutThink
screenshot of level 3 of the game

Quantum Chess

Using Unity as the game engine and C# as the programming language, I created a quantum version of chess.

The idea is to allow the game pieces to make a double move or super move,

but to do so, it is necessary to define both superpositions of the piece, halving its probability.

Each piece maintains that position until it tries to capture another, at which point its real position is observed.

I had fun recreating chess from scratch with all its rules and an intuitive graphical interface, then revolutionizing it by adding all the interesting mechanics related to quantum physics.

screenshot of Quantum Chess

My Projects

github [#ffffff] Created with Sketch.

La maggior parte dei miei progetti sono stati caricati su GitHub. Qui potrete trovare sia progetti complessi che semplici codici autonomi che ho scritto durante il mio percorso.

Alcuni progetti non opensource a cui ho lavorato sono i miei videogiochi per Android disponibili sul Google PlayStore.

Altri progetti a cui ho dedicato tempo riguardano invece la circuiteria e la stampa 3d, come ad esempio:

  • keyboard_double_arrow_rightUn visore notturno digitale realizzato con Raspberry Pi e vecchie videocamere di sorveglianza;

Esempi di Progetti

Blackjack AI

Uno degli ultimi progetti a cui ho lavorato durante la triennale è la realizzazione di un agente AI in grado di giocare a blackjack

La logica dell'agente, così come l'ambiente di gioco e la GUI, è stata scritta in Python.

Per l'interfaccia grafica sono state utilizzate le librerie Matplot, Tkinter e Pygame, mentre per l'agente il codice è completamente originale.

Per far funzionare l'agente AI è stato usato un approccio probabilistico che si basa sul calcolo del valore atteso.

L'agente è in grado in ogni momento della partita di scegliere la mossa che massimizza la sua probabilità di vittoria, e di conseguenza di guadagno.

Per valutare le performance dell'AI ho anche realizzato un simulatore accelerato di partite multithread,

il quale permette la simulazione di condizioni specifiche di partite e la creazione di grafici sulle prestazioni.

screenshot blackjack AI

NVG Digitale

La creazione di questo visore notturno è stata realizzata in tre fasi: progettazione, costruzione e sviluppo del software.

Durante la progettazione ho deciso la forma da dare al visore, ho preso le misure per posizionare correttamente lenti e schermi,

ho deciso quali materiali usare, come procurarmeli e quali prodotti elettronici erano i più adatti per il progetto.

Finita la progettazione ho realizzato il modello 3d tenendo conto di tutte le misure e gli spazi necessari per collegare l'elettronica.

Mi sono quindi procurato un Raspberry Pi Zero 2W, due display LCD da 2.2" e due camere recuperate da vecchie videocamere di sorveglianza.

Ho saldato tutti i collegamenti tra le varie componenti ed ho testato il corretto funzionamento delle parti.

Infine ho dovuto scrivere il codice Python che controlla il passaggio dei frame dalla camera al display, renderlo un servizio per farlo avviare dal SO Linux del Rpi all'accensione,

stampare in 3d tutte le parti del visore e montare il tutto in modo che sia stabile e sicuro.

foto del visore notturno

OutThink

L' ultimo gioco Android a cui ho lavorato si chiama OutThink ed è un gioco di logica basato su 100 livelli differenti.

I livelli vanno da una difficoltà bassa affrontabile da tutti, ad una più elevata che richiede conoscenze un pò più specifiche o una capacità di ragionamento più alta.

I quesiti dei livelli sono puramente logici e matematici, l'unico linguaggio usato è quello numerico o simbolico, senza l'uso di parole.

Il gioco è stato sviluppato su Unity in C#, gli assets sono stati realizzati a mano o sono state utilizzate alcune raccolte opensource,

la gestione dei dati dei giocatori, dei traguardi e dei livelli superati è stata effettuata tramite le API di google per l'integrazione di Google Play Games.

screenshot della pagina principale di OutThink
screenshot del livello 3 del gioco

Quantum Chess

Usando Unity come motore grafico e C# come linguaggio di programmazione ho realizzato una versione quantistica di scacchi.

L'idea alla base è quella di permettere alle pedine del gioco di effettuare una mossia doppia o supermossa,

ma per farlo è necessario definire entrambe le superposizioni della pedina dimezzandone la probabilità.

Ogni pedina mantiene quella posizione finchè non prova a mangiarne un' altra, facendolo si osserva la sua posizione reale.

Mi sono quindi divertito nel ricreare da 0 scacchi con tutte le sue regole e con un interfaccia grafica intuitiva, per poi stravolgerlo aggiungendo tutte le meccaniche interessanti a tema fisica quantistica.

screenshot di quantum chess

How to contact me

To contact me, send me an email or visit my social media channels.

How to contact me

Per contattarmi inviami una email o passa per i miei canali social.