Screen Recording 2025-05-02 at 2.31.12 AM.mov
Google is the place to search for information about pretty much anything and everything. Guccione browser on the other hand is a search engine that inhabits a much more specific niche, information about Fabrizio Guccione aka me.
DISCLAIMER: As of right now the implementation allows you to search up only images of my childhood.
According to a Pew Research Center article 60% of Americans believe it is not possible to go through daily life without having their data collected. This constant fear of having our data harvested as we navigate the web led to the creation of this project as a way to ironically fight back by providing as much data as I possibly could free of charge and with easy access.
Technical logic inspiration
The project was also heavily inspired by Dan Shiffman’s example code showing how embeddings can be used for quick zero-shot image search using the Unsplash database of over 25,000 images (this sketch is an example sketch that just uses 10 images). This quickly made me think of using the embeddings for a wider range of searching applications. Showed off in class was also the text embedding search sketch that I later incorporated into the auto completion text search feature that Google is commonly associated with (Sketch link).
The current implementation takes the base code from the two sketches mentioned above (that both utilize huggingface locally downloaded models to generate embeddings and search for closest similarity between what the user inputs). The CLIP embeddings model (clip-vit-base-patch16) is used to locally save the embeddings from the images loaded in the project as a json file structure in the data directory. Additionally the text embeddings (provided by all-MiniLM-L6-v2 model) work similarly in a way that all the text embeddings are calculated and stored in a json file. As the user searches in the search bar every keydown pressed causes the text embedding model to be queried and an embedding to be generated for the current word being typed. This embedding is compared in real-time to the text embedding database of already searched words and the closest matches are shown below the search bar. When the user finally presses enter or presses the search button then that specific embedding is saved in the search history json data file for future reference. Moreover, when the user searches that text embedding is compared instead to the CLIP model embeddings and the closest matches are displayed in order of closest similarity to lowest.
The latest addition to the backend AI integration was the use of the Florence2 Multimodal model (also hosted on huggingface). I was first introduced to this model during the Transformers.js talk given by Joshua Lochner. I employed the model to automatically generate captions for the images since every Google image search is not complete without a short description of each image in the overview search UI. The generation of the captions is done locally since the Florence2 model is quite large and doing so on the server side was causing too many logistical issues. The image captions are stored in a json file with the corresponding image url and id that are later used to merge the captions and the embeddings for each image so that both pieces of information can be related to a single image and supplied to the user accordingly.
The majority of the coding, especially the heavier server side coding using node.js was done with the help of Claude.ai
Style Inspiration
Since this a search engine that is specifically about me I was inspired to utilize Google’s 2009 UI since that is the UI that I associated most closely with the Google of my childhood. Not only does it have a nostalgic feeling for me personally, but the Google 2009 UI compared to today’s much sleeker and more minimalistic Google UI is a great example of the depersonalization of companies to appeal to the great masses. Since this search engine could not get any more personal it felt right to bring back a Google that was, not only iconic but also help personality.
Google 2009 UI (courtesy of this website that holds screenshots of the Google UI through time)
Google UI today