GPU.js transpila funciones sencillas de JavaScript a código de shaders para ejecutarlas en la GPU en navegadores y Node.js, con fallback a JavaScript normal.
chenglou/handwired
Proyecto de investigación que compila el flujo de control habitual de JavaScript en una red diferenciable de multiplicaciones de matrices con pesos escritos a mano.
- Estrellas
- 1,773
- Forks
- 146
- Issues abiertos
- 9
- Último commit
- hace 3 días
¿Qué es?
Handwired convierte programas JavaScript habituales con ramas if-else, bucles y estado en una red neuronal construida únicamente con multiplicaciones de matrices y ReLU sobre números de punto flotante. Los condicionales se reescriben como operaciones aritméticas; por ejemplo, se calculan ambas ramas y se selecciona una mediante un indicador derivado de ReLU, de modo que la red resultante reproduce exactamente la salida del programa original.
Como los pesos se escriben a mano en lugar de aprenderse, no hace falta entrenar el modelo y todo el programa sigue siendo diferenciable. El cálculo combinado puede ejecutarse en JavaScript sin dependencias adicionales o en WebGPU, lo que permite aplicar técnicas existentes de optimización de GPU a estas primitivas mínimas.
El proyecto explora posibles usos, como desbloquear los pesos para entrenarlos, conectar un programa congelado a una red neuronal genérica para entrenarla de extremo a extremo y ejecutar código JavaScript de estilo monohilo con paralelismo de nivel GPU. Entre las demos hay una búsqueda en JSON sobre 100k documentos. El repositorio está configurado para usar Bun y las demos también están disponibles en línea.
Funciones clave
- 01Convierte if-else, bucles y estado en multiplicaciones de matrices y ReLU
- 02No requiere entrenamiento porque los pesos se escriben manualmente
- 03Mantiene diferenciable el programa completo
- 04Se ejecuta en JavaScript sin dependencias adicionales o en WebGPU
- 05Incluye demos interactivas y un ejemplo de búsqueda en JSON sobre 100k documentos
Casos de uso
- Estudiar cómo representar programas como redes neuronales
- Experimentar con el entrenamiento de lógica de programas congelada dentro de una red neuronal
- Explorar la ejecución de código JavaScript habitual con paralelismo de GPU
Inicio rápido
- 1
Clona el repositorio
git clone - 2
Instala las dependencias
bun install - 3
Ejecuta las demostraciones localmente
bun start
Antes de usarlo
- Es un proyecto de investigación cuyo objetivo es demostrar un concepto, no una biblioteca para producción.
- Para ejecutar las demostraciones se necesita el runtime Bun, que no se indica como opcional.
Temas
Preguntas frecuentes
- ¿Qué es handwired?
- Proyecto de investigación que compila el flujo de control habitual de JavaScript en una red diferenciable de multiplicaciones de matrices con pesos escritos a mano. Handwired convierte programas JavaScript habituales con ramas if-else, bucles y estado en una red neuronal construida únicamente con multiplicaciones de matrices y ReLU sobre números de punto flotante. Los condicionales se reescriben como operaciones aritméticas; por ejemplo, se calculan ambas ramas y se selecciona una mediante un indicador derivado de ReLU, de modo que la red resultante reproduce exactamente la salida del programa original.
- ¿handwired es gratuito? ¿Qué licencia tiene?
- handwired es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿handwired sigue mantenido?
- Mantenimiento activo. El último commit de handwired fue el 17 oct 2026.
- ¿Para qué puedo usar handwired?
- Estudiar cómo representar programas como redes neuronales Experimentar con el entrenamiento de lógica de programas congelada dentro de una red neuronal Explorar la ejecución de código JavaScript habitual con paralelismo de GPU
- ¿Cómo se instala handwired?
- Clona el repositorio: git clone Instala las dependencias: bun install Ejecuta las demostraciones localmente: bun start
- ¿Dónde consigo handwired?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/chenglou/handwired
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Elimina fondos de imágenes directamente en el navegador con WebGPU o WebAssembly, sin subirlas a ningún servidor.
Un kit rápido y completo para JavaScript y TypeScript: runtime, bundler, ejecutor de pruebas y gestor de paquetes en un solo ejecutable.
Framework de código abierto para crear apps nativas universales con React que funcionan en Android, iOS y la web.
Un bundler extremadamente rápido para JavaScript, TypeScript, JSX y CSS, con CLI y API para JavaScript y Go.
Biblioteca JavaScript de alto rendimiento para crear mapas web interactivos que muestran mosaicos, datos vectoriales y marcadores de cualquier origen.