Paquete npm Open source
@tryonit/web — Motor de prueba virtual en el cliente para el navegador
Un motor de prueba virtual en tiempo real para el navegador (MediaPipe, WebGL2) con una interfaz mount() para Vue, Svelte, Angular, Shopify y HTML.
Resumen
@tryonit/web es el motor de TryOnIt. Abre la cámara, sigue la cara, las manos, el cuerpo o el pelo con MediaPipe ejecutándose en el dispositivo mediante WebAssembly, y dibuja el producto encima en tiempo real: pintalabios y maquillajes completos, color de pelo, stickers, gafas, sombreros, pendientes, relojes y anillos en 3D, y ropa en modo experimental. Las imágenes de la cámara nunca salen del dispositivo, así que no hay servidor que mantener ni coste por prueba.
Escribí los renderizadores yo mismo. El maquillaje se rasteriza a partir de polígonos de puntos de la cara en una máscara suavizada y se mezcla de forma que se conserva la textura de la piel y los labios y los dientes nunca se colorean. Los productos 3D se modelan en milímetros y se colocan con una cámara que reproduce la geometría facial de MediaPipe, con oclusores invisibles para que las patillas de las gafas y el pendiente más lejano desaparezcan detrás de la cabeza. La ropa se deforma sobre el torso mediante una homografía.
El rendimiento fue una condición desde el principio. La entrada inicial ocupa unos 23 KB min+gzip; MediaPipe, cada modelo de seguimiento y three.js solo se cargan cuando un producto los necesita. La detección se ejecuta una vez por cada fotograma nuevo de la cámara, a un ritmo adaptativo de 30 a 15 fps, mientras que el renderizado se ejecuta en cada frame de animación, y destroy() libera cada pista de cámara, tarea de MediaPipe y recurso WebGL. Para webs sin React, mount() añade la interfaz completa en pocas líneas.
Funciones clave
- Maquillaje, color de pelo, stickers, accesorios 3D, relojes, anillos y ropa
- Seguimiento con MediaPipe en el dispositivo, en GPU con respaldo automático en CPU
- Carga diferida solo de los trackers y renderizadores que necesita cada producto
- Frecuencia de detección adaptativa con modos calidad, equilibrado y batería
- Respaldo con subida de foto, captura y comparación de antes y después
- Interfaz mount() sin framework para Vue, Svelte, Angular y temas de Shopify
Artículos sobre este proyecto
-
7 min de lectura
How to Create Virtual Try-On Products with JSON Manifests
A practical guide to TryOnIt asset manifests: lipstick shades, makeup looks, face stickers, variants, CORS hosting, CMS or Shopify loading and CI validation.
-
8 min de lectura
Inside TryOnIt: The Architecture of a Client-Side Virtual Try-On SDK
How I structured an open-source virtual try-on SDK as layered TypeScript packages: a DOM-free core, a per-frame fast path, a state machine and renderers.
-
6 min de lectura
Keeping Web AR Fast: Bundle Budgets, Lazy Loading and Adaptive Tracking
The performance techniques behind TryOnIt: size budgets that fail the build, loading only the trackers a product needs, intent preloading, adaptive detection.
-
7 min de lectura
Preparing 3D Models for AR Try-On: Millimetres, Origins and glTF Export
How to model, orient and compress glasses, hats, earrings, watches and rings for web AR try-on: real-world units, anchor origins, Blender export, compression.
-
4 min de lectura
Privacy by Design for Camera Features: On-Device Virtual Try-On
How TryOnIt keeps camera frames on the device, which network requests it makes, how to self-host for zero third-party requests, and the CSP it needs.