Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

assisted_self-portrait

video performance, ar filter, 16:9, hd, sound, 1:30 minutes, 2014–2026

creating a self-portrait using images from the web, with the aid of an anonymous search engine composed in a screen-performance on my computer desktop.

how it works?

%%{init: {'theme': 'base', 'flowchart': {'curve': 'stepBefore'}, 'themeVariables': {'primaryColor': '#000', 'primaryTextColor': '#fff', 'primaryBorderColor': '#fff', 'lineColor': '#fff', 'secondaryColor': '#000', 'tertiaryColor': '#000', 'background': '#000', 'mainBkg': '#000', 'nodeBorder': '#fff', 'clusterBkg': '#000', 'clusterBorder': '#fff', 'titleColor': '#fff', 'edgeLabelBackground': '#000'}}}%%
flowchart TD
  START[START] --> WEBCAM[CREATE WEBCAM]
  START --> SEARCH[SEARCH IMAGES]

  WEBCAM --> TRACK[MEDIAPIPE FACE MESH]
  TRACK --> LANDMARKS[EXTRACT LANDMARK POSITIONS]

  SEARCH --> PROXY[PROXY IMAGE]
  PROXY --> DETECT[DETECT FACE]
  DETECT --> CROP[CROP FACE REGION]

  LANDMARKS --> POSITION[POSITION OVERLAY WINDOWS]
  CROP --> POSITION

  POSITION --> COMPOSITE[COMPOSITE ON WEBCAM]

  LANDMARKS -.-> TRACK
  COMPOSITE -.-> TRACK
Loading

bundled default images are shown instantly while the search + crop pipeline runs in the background. each detected face gets its own unique set of portrait images.

features

  • instant start: bundled face-part images display immediately β€” no loading screen
  • multi-face: each detected face (up to 5) gets its own unique set of portrait images
  • face centering: webcam auto-zooms and centers on the detected face
  • screenshot: capture the ar view with overlays + "le" watermark (desktop download / mobile share)
  • emoji loader: cycling πŸ‘πŸ‘‚πŸ‘ƒπŸ‘„ indicator while images load in background
  • animated favicon: matching emoji animation in the browser tab
  • corner ui: reload, info panel, "le" glitch signature, camera β€” inspired by leandroestrella.com

tech stack

  • face tracking: mediapipe face mesh (468 landmarks, up to 5 faces)
  • image cropping: face-api.js (ssd mobilenet + 68-point landmarks)
  • image search: duckduckgo image search (server-side proxy)
  • server: express (local dev) / php + apache (production)
  • deploy: github actions β†’ ftp to cpanel on push to main

setup

npm install
npm start
# open http://localhost:3000

requires camera access. works on desktop and mobile browsers.

license

apache 2.0

About

πŸ‘πŸ‘ƒπŸ‘„πŸ‘‚ creating a self-portrait using images from the web, with the aid of an anonymous search engine

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages