CCLOSET: AI Wardrobe Visualization Studio

outfitwardrobeimagecclosetstyling
Top 5 most frequent words from project text

CCLOSET is an AI styling studio for testing outfits before a pull, shoot, purchase, or client presentation. The app lets users upload a person reference, add wardrobe pieces by category, build valid outfit combinations, and render generated lookbook images from real styling context.

Features

  • Person and wardrobe reference uploads, including image URL imports
  • Category-based outfit queue for tops, bottoms, outerwear, shoes, and accessories
  • OpenAI image editing pipeline for editorial outfit previews
  • Free-session and paid-credit flow backed by Stripe
  • Private accounts with saved, ranked, favorited, and annotated looks

The production app is deployed with Firebase Hosting and Cloud Functions, using an Express API for generation runs, checkout, account state, URL safety checks, and saved-look storage.

Vue 3ViteExpressFirebaseOpenAIStripeCloud FunctionsImage Generation

Multi-Document Graph Visualizer

documentconnectionresearcherinteractivegraph
Top 5 most frequent words from project text

A powerful tool for researchers, journalists, and activists to discover and visualize connections across multiple texts, documents, and research materials. The application helps researchers discover hidden connections between documents, visualize relationships between concepts, people, places, and ideas, and explore their corpus through an interactive network graph.

Built with Python and TypeScript, the tool processes various document formats (PDF, TXT) and generates interactive network visualizations. It features automatic text processing, relationship detection, and an intuitive web interface for exploring document connections. The system supports qualitative research, historical analysis, and literary studies by revealing patterns and connections that might be missed through traditional close reading methods.

Key Features

  • Interactive graph exploration
  • Multi-format document support
  • Exportable analysis data
  • User-friendly interface designed for non-technical researchers
PythonTypeScriptD3.jsNatural Language ProcessingNetwork AnalysisPoetryMake

Redact: Privacy-First Face Detection Tool

faceprivacytoolprotectautomatically
Top 5 most frequent words from project text

A privacy-focused web tool that helps protect people's identities in photos by automatically detecting and covering faces with black rectangles. Built for activists, journalists, and community organizers who need to protect privacy in visual documentation.

The tool processes images entirely client-side, with no server uploads, using Face-API.js and a SSD MobileNet v1 neural network. It automatically strips all metadata (EXIF, IPTC, XMP) including GPS location, device information, timestamps, and other potentially identifying data.

Key Features

  • Automatic face detection
  • Manual rectangle controls for additional coverage
  • Complete metadata removal
  • Offline functionality
  • Simple point-and-click interface accessible to both technical and non-technical users
JavaScriptFace-API.jsHTML5 CanvasWebGLNeural NetworksPrivacy Engineering

Jenny Markov: Interactive Digital Art Installation

A generative art installation inspired by Jenny Holzer's "Truisms" series, combining Markov chain text generation with interactive CRT-style visual effects. Named as a playful homage to Holzer's work, this installation reimagines her iconic philosophical statements through algorithmic generation, running on an Adafruit PyPortal Titano.

The installation uses a weighted Markov chain algorithm to generate new philosophical statements from Holzer's original Truisms, maintaining the provocative and thought-provoking style of her work. The system analyzes word relationships, maintains frequency weights for word transitions, and generates new statements while preserving the philosophical essence of the source material.

Key Features

  • Real-time text generation
  • CRT-style visual effects (dynamic color shifting, phosphor glow simulation, scan line animation)
  • Touch-responsive interactions
  • Efficient memory management optimized for embedded hardware

The project demonstrates the intersection of generative text art, interactive media, retro computing aesthetics, and philosophical inquiry, while paying tribute to one of the most influential conceptual artists of our time.

CircuitPythonMarkov ChainsEmbedded SystemsInteractive ArtDigital Signal ProcessingHardware ProgrammingColor TheoryMemory Optimization

Image Portfolio Builder

imagesimpletoolbeautifulportfolio
Top 5 most frequent words from project text

A simple, elegant way to showcase high-resolution images without relying on social media algorithms. This tool enables photographers, digital artists, and creators to build beautiful portfolio websites by simply dropping images into a folder. The system automatically processes images for optimal display across all devices while maintaining quality.

The tool handles all the complex tasks automatically - from creating multiple image sizes for different devices to generating WebP and JPEG versions for maximum compatibility. It features a clean, minimalist layout that puts the focus entirely on the artwork, with smooth transitions and responsive design that works beautifully on everything from phones to large desktop displays.

Key features include automatic image optimization (800px, 1800px, 2400px variants), smart layout adaptation, fast loading through modern image formats, beautiful transitions, and simple deployment options. Built with modern web technologies, it requires zero database setup and can be deployed instantly to various hosting platforms.

SvelteViteTailwindCSSSharpFirebaseNode.jsWebPImage Processing

ClusterViz

imagepixelclusteringspacepoint
Top 5 most frequent words from project text

ClusterViz is an interactive clustering sandbox I built to make clustering feel concrete across two different data spaces inside the same workspace: editable 2D point clouds and image pixels treated as RGB vectors. It lets you generate or draw datasets, upload an image and sample its pixels, then run algorithms like K-Means and DBSCAN with a shared set of controls and a shared dataset state that stays consistent as you switch modules.

Features

  • Dual-space workspace: cluster editable 2D points and image pixels (RGB vectors) in one app
  • Data creation tools for generating synthetic sets or drawing custom point clouds
  • Image upload and pixel sampling pipeline for color-space clustering experiments

The app is currently hosted on Firebase.

tensorflow.jsd3JavaScriptFirebase

W.E.B. DuBois Data Visualization Recreation

Recreation of W.E.B. DuBois data visualization showing social and economic conditions of Black Americans

With D3.js I recreated one of W.E.B. DuBois' data visualizations; DuBois was a renowned sociologist, and civil rights activist, who was known for his work on racial issues in America, particularly the Black Community. He created a data visualization called "Black Data Portraits" that depicted the social and economic conditions of Black Americans in the late 19th and early 20th centuries. This script is a modern-day interpretation of that visualization, using D3.js and deployed on Firebase.

Key features include:

  • Modern D3.js implementation
  • Hosted on Firebase
  • Honors DuBois' legacy
  • Visualizes social and economic data
D3.jsFirebase

Live-User-Touch: Interactive 3D Video Art Installation

videocolorartinteractiveinstallation
Top 5 most frequent words from project text

A Three.js-powered interactive video art installation that transforms ordinary videos into dynamic, responsive 3D artworks that change based on user movements. Created for a Media Archaeology class exploring the intersection of fashion and film, this project reimagines amateur garment creation videos through real-time 3D color manipulation.

The installation features real-time 3D video processing using Three.js and WebGL, where users can control color temperature and contrast through intuitive movements. Moving left/right adjusts the color temperature (cooler/warmer), while moving up/down controls contrast levels. The experience is unique to each viewer's interaction, creating a personalized 3D artistic experience that transforms everyday fashion content into dynamic visual art.

Key features include real-time 3D color grading effects, responsive touch/mouse controls, dynamic look-up tables based on movement, and support for multiple video sources. The project demonstrates the intersection of 3D web technologies and art, making professional color grading techniques accessible through interactive experiences while exploring the relationship between fashion documentation and digital media.

Three.jsWebGLJavaScriptHTML5CSS3Interactive ArtReal-time ProcessingMedia Archaeology

LaTeX Equation Reader: Making Math Accessible

equationlatexmathematicalintolanguage
Top 5 most frequent words from project text

A powerful tool that converts LaTeX mathematical equations into natural language and speech, making mathematical content more accessible to everyone. Built with accessibility in mind, this project addresses critical gaps in mathematical education and research by making LaTeX content accessible to screen reader users, people with print disabilities, and those who benefit from auditory learning.

Features

  • LaTeX equation processing
  • Natural language conversion
  • Text-to-speech capabilities
  • arXiv integration
  • Accessibility features (screen reader, keyboard navigation, high contrast)

The system features a multi-stage pipeline that extracts equations from LaTeX documents, transforms complex mathematical notation into readable text using GPT-4, and converts equations into spoken language. It supports multiple equation environments including inline math, display math, align, gather, and commutative diagrams.

Vue.js 3FastAPIPythonOpenAI GPT-4gTTSDockerLaTeXAccessibility

Citation Networks in the Digital Humanities

Network graph showing citation relationships between authors in digital humanities

Using the Python library NetworkX, I created a graph to represent the relationships between different authors and the common projects they have cited in their work.

Features

  • NetworkX graph analysis
  • Matplotlib visualization
  • Hosted on GitHub Pages
  • Visualizes author relationships

The edges of the graph are labeled with the names of the common projects that the authors have worked on. The size of the nodes in the graph is determined by the degree of the nodes, which is a measure of how connected the author is to other authors in the graph. The graph is plotted and visualized using the Matplotlib library and is hosted on a GitHub Pages site, for which I also designed the layout.

PythonNetworkXMatplotlib

Selected Writing & Educational Content

Embedded Humanities: The Khipu as Situated Information System

This paper explores the khipu as a situated information system, examining how these ancient Andean devices encoded and transmitted knowledge within their cultural context. Through an analysis of their material properties, structural patterns, and historical usage, I demonstrate how khipus functioned as embedded humanities artifacts that integrated technical and cultural knowledge.

Critical Data Studies: A Practicum (Syllabus)

This course interrogates data as a cultural and political artifact rather than a neutral scientific commodity. Students read classical and modern critical texts—from Euclid's Elements to Derrida, Chun, Benjamin, and indigenous records like the Inca khipus—while acquiring front-end development skills (HTML, CSS, SVG, JavaScript) to create interactive data projects that question and reframe the biases embedded in digital infrastructures. Topics include algorithmic bias, indigenous epistemologies, data justice, and the ethics of visualization. The course blends rigorous theoretical critique with hands-on technical creation, preparing students to challenge the hegemonies embedded in our digital world.

From Analysis to Deployment: Building & Publishing Data-Driven Software (Syllabus)

This course is designed for students from diverse backgrounds to transform data science outputs—analyses, visualizations, and insights—into interactive, online software products. Through a blend of theory and hands-on labs, students learn web development (HTML, CSS, JavaScript), dynamic data integration, version control, and deployment using platforms like GitHub Pages, Vercel, Netlify, and AWS. The course emphasizes ethical data stewardship, open educational resources, and the practical differences between self-publishing and using pre-built platforms. The capstone project guides students through the full cycle from analysis to deployed software.