Эффекты шейдеров WebGPU в виде готовых компонентов для React, Vue, Svelte, Solid и обычного JavaScript.
gpujs/gpu.js
GPU.js преобразует простые функции JavaScript в шейдерный код, чтобы выполнять их на GPU в браузерах и Node.js, а при необходимости переключается на обычный JavaScript.
- Звёзды
- 15,511
- Форки
- 666
- Открытые issues
- 68
- Последний коммит
- 14 дней назад
Что это?
GPU.js — библиотека JavaScript для вычислений общего назначения на GPU (GPGPU) в браузере и Node.js. Вы пишете обычную функцию JavaScript, которая вычисляет один элемент выходного массива, а GPU.js преобразует её в шейдерный язык и компилирует для параллельного выполнения на GPU. Если GPU недоступен, та же функция выполняется на CPU с помощью обычного JavaScript.
В основе библиотеки лежат ядра, создаваемые с помощью gpu.createKernel(): размер выходных данных задаётся через setOutput(), а каждый поток получает свою позицию через this.thread.x, y и z. Поддерживаются WebGL, WebGL2, headless GL для Node, WebAssembly, WebGPU (опционально) и резервный режим на CPU. Ядра можно объединять с помощью combineKernels() или запускать в конвейере, чтобы промежуточные результаты оставались на устройстве.
GPU.js также поддерживает графический вывод на canvas, режим отладки с пошаговым выполнением кода ядра и точками останова, а также типы TypeScript. В версии 3 вызовы ядер будут возвращать Promises; асинхронный режим уже доступен.
Ключевые возможности
- 01Автоматически преобразует обычные функции JavaScript в шейдерный код для GPU.
- 02Если GPU недоступен, переключается на обычный JavaScript.
- 03Работает в браузерах и Node.js с бэкендами WebGL, WebGL2, headless GL и WebGPU.
- 04Объединяет ядра с помощью combineKernels() и конвейерной обработки, сокращая повторную передачу данных.
- 05В графическом режиме выводит результаты на canvas.
- 06Включает режим разработки для отладки ядер с точками останова и типы TypeScript.
Сценарии использования
- Ускорение матричных операций и численных вычислений на веб-странице.
- Обработка изображений и применение фильтров к пиксельным данным в браузере.
- Прототипирование параллельных GPU-алгоритмов на JavaScript перед переносом на более низкоуровневый язык.
- Ускорение вычислений с большими объёмами данных в сервисах Node.js при наличии GPU.
Быстрый старт
- 1
Установите пакет из npm
npm install gpu.js - 2
Создайте экземпляр GPU и kernel в Node.js
- 3
Используйте сборку для браузера через тег script или CDN
Что важно знать
- В следующей мажорной версии v3 все вызовы kernel будут возвращать Promise, из-за чего синхронный код, написанный сегодня, перестанет работать.
- Синхронные вызовы kernel зависят от readback в WebGL, который блокирует главный поток.
Темы
Частые вопросы
- Что такое gpu.js?
- GPU.js преобразует простые функции JavaScript в шейдерный код, чтобы выполнять их на GPU в браузерах и Node.js, а при необходимости переключается на обычный JavaScript. GPU.js — библиотека JavaScript для вычислений общего назначения на GPU (GPGPU) в браузере и Node.js. Вы пишете обычную функцию JavaScript, которая вычисляет один элемент выходного массива, а GPU.js преобразует её в шейдерный язык и компилирует для параллельного выполнения на GPU. Если GPU недоступен, та же функция выполняется на CPU с помощью обычного JavaScript.
- gpu.js можно использовать бесплатно? Какая у него лицензия?
- gpu.js распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- gpu.js всё ещё поддерживается?
- Активно поддерживается. Последний коммит в gpu.js — 5 окт. 2026 г..
- Для чего можно использовать gpu.js?
- Ускорение матричных операций и численных вычислений на веб-странице. Обработка изображений и применение фильтров к пиксельным данным в браузере. Прототипирование параллельных GPU-алгоритмов на JavaScript перед переносом на более низкоуровневый язык. Ускорение вычислений с большими объёмами данных в сервисах Node.js при наличии GPU.
- Как установить gpu.js?
- Установите пакет из npm: npm install gpu.js Создайте экземпляр GPU и kernel в Node.js Используйте сборку для браузера через тег script или CDN
- Где скачать gpu.js?
- Исходный код и инструкции по установке — на GitHub: https://github.com/gpujs/gpu.js
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Песочница на Three.js и GLSL для настройки игровых эффектов способностей с прицеливанием: параметры можно менять ползунками даже на паузе.
Исследовательский проект, который компилирует обычные конструкции управления JavaScript в дифференцируемую сеть матричных умножений с весами, заданными вручную.
Фреймворк на базе Node.js и Chromium для создания кроссплатформенных настольных приложений на JavaScript, HTML и CSS.
Быстрый универсальный инструментарий для JavaScript и TypeScript: runtime, bundler, тестовый раннер и пакетный менеджер в одном исполняемом файле.
Открытый каталог интерактивных UI-компонентов на Three.js/WebGL без входа в систему, с интерактивными превью и полным исходным кодом на React.