All Projects → antvis → GWebGPUEngine

antvis / GWebGPUEngine

Licence: MIT license
A WebGPU Engine for real-time rendering and GPGPU

Programming Languages

typescript
32286 projects
PEG.js
56 projects
javascript
184084 projects - #8 most used programming language
GLSL
2045 projects
CSS
56736 projects

Projects that are alternatives of or similar to GWebGPUEngine

hecs
An experimental ECS written in Javascript.
Stars: ✭ 16 (-86.78%)
Mutual labels:  ecs, webgpu
Amplifier.NET
Amplifier allows .NET developers to easily run complex applications with intensive mathematical computation on Intel CPU/GPU, NVIDIA, AMD without writing any additional C kernel code. Write your function in .NET and Amplifier will take care of running it on your favorite hardware.
Stars: ✭ 142 (+17.36%)
Mutual labels:  gpgpu
webgpu-cca
Experiment implementation of Multiple Neighborhoods Cellular Automata using WebGPU
Stars: ✭ 31 (-74.38%)
Mutual labels:  webgpu
terraform-aws-ecs-fargate-task-definition
Terraform module to create AWS ECS Fargate Task Definition
Stars: ✭ 20 (-83.47%)
Mutual labels:  ecs
roguelike tutorial
RoguelikeDev Tutorial 2018
Stars: ✭ 33 (-72.73%)
Mutual labels:  ecs
ecs-autoscale
A framework that runs on AWS Lambda for autoscaling ECS clusters and services
Stars: ✭ 69 (-42.98%)
Mutual labels:  ecs
RASM
3D Ray-Tracing WebGPU Game Engine Written in Rust WebAssembly.
Stars: ✭ 20 (-83.47%)
Mutual labels:  webgpu
thelegendofericc
Single player roguelike tile-based game written in Java using LibGDX and Ashley
Stars: ✭ 22 (-81.82%)
Mutual labels:  ecs
learn-gpgpu
Algorithms implemented in CUDA + resources about GPGPU
Stars: ✭ 37 (-69.42%)
Mutual labels:  gpgpu
django-step-by-step
A Django + Vue reference project that focuses on developer tooling and CI/CD + IaC
Stars: ✭ 86 (-28.93%)
Mutual labels:  ecs
EntitasGenericAddon
Addon to Entitas that allows using generic methods instead of code generator and uses type inference to insure compile time correctness
Stars: ✭ 17 (-85.95%)
Mutual labels:  ecs
RavEngine
A fast, easy to use C++20 3D game library for modern computers
Stars: ✭ 122 (+0.83%)
Mutual labels:  ecs
dokr
Helper package for docker and ECS tasks
Stars: ✭ 17 (-85.95%)
Mutual labels:  ecs
terraform-aws-ecs-cluster
Terraform module for building an ECS cluster in AWS
Stars: ✭ 42 (-65.29%)
Mutual labels:  ecs
online-wgsl-editor
A tiny WGSL online editor
Stars: ✭ 128 (+5.79%)
Mutual labels:  webgpu
terraform-ecs
Terraform ECS module
Stars: ✭ 15 (-87.6%)
Mutual labels:  ecs
vscode-wgsl
VsCode Syntax highlight for WGSL files
Stars: ✭ 55 (-54.55%)
Mutual labels:  webgpu
mine.js
🌏 A voxel engine built with JS/TS/RS. (formerly mc.js) (maybe mine.ts? or even mine.rs?)
Stars: ✭ 282 (+133.06%)
Mutual labels:  ecs
Syndra
3D Game Engine/Renderer
Stars: ✭ 40 (-66.94%)
Mutual labels:  ecs
webgpu
WebGPU Samples & RnD
Stars: ✭ 72 (-40.5%)
Mutual labels:  webgpu

[WIP] GWebGPUEngine

travis ci 最近提交

A WebGPU Engine for real-time rendering and GPGPU. 中文

https://gwebgpu.antv.vision/zh/docs/api/gwebgpu

GPGPU

You can try to solve some compute-intensive tasks like layout & particle effects with GPGPU technique. Use any rendering techniques(d3, g, Three.js or ours' rendering API if you like) when calculation is completed.

const world = new World({
  engineOptions: {
    supportCompute: true,
  },
});

const compute = world.createComputePipeline({
  shader: `
    //...
  `,
  dispatch: [1, 1, 1],
  onCompleted: (result) => {
    console.log(result); // [2, 4, 6, 8, 10, 12, 14, 16]
    world.destroy();
  },
});

// bind 2 params to Compute Shader
world.setBinding(compute, 'vectorA', [1, 2, 3, 4, 5, 6, 7, 8]);
world.setBinding(compute, 'vectorB', [1, 2, 3, 4, 5, 6, 7, 8]);

Our Compute Shader using Typescript syntax:

import { globalInvocationID } from 'g-webgpu';

@numthreads(8, 1, 1)
class Add2Vectors {
  @in @out
  vectorA: float[];

  @in
  vectorB: float[];

  sum(a: float, b: float): float {
    return a + b;
  }

  @main
  compute() {
    // 获取当前线程处理的数据
    const a = this.vectorA[globalInvocationID.x];
    const b = this.vectorB[globalInvocationID.x];

    // 输出当前线程处理完毕的数据,即两个向量相加后的结果
    this.vectorA[globalInvocationID.x] = this.sum(a, b);
  }
}

Resources

Contributing

Bootstrap with Yarn Workspace.

yarn install

Watch all the packages:

yarn watch
yarn start
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].