A non-exhaustive list of WebGL and WebGPU frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are wip/outdated/not maintained anymore.
| Name | Stars | Last Commit | Description |
|---|---|---|---|
| three.js | ![GitHub |
| const Web3 = require("web3"); | |
| const BN = Web3.utils.BN; | |
| (async () => { | |
| const network = "mainnet"; | |
| const web3 = new Web3( | |
| new Web3.providers.HttpProvider( | |
| `https://${network}.infura.io/v3/${process.env.INFURA_API_KEY}` | |
| ) | |
| ); |
| import numpy as np | |
| import re | |
| import sys | |
| ''' | |
| Read a PFM file into a Numpy array. Note that it will have | |
| a shape of H x W, not W x H. Returns a tuple containing the | |
| loaded image and the scale factor from the file. | |
| ''' | |
| def read_pfm(file): |
| //JavaScript implementation of winding number algorithm to determine whether a point is inside a polygon | |
| //Based on C++ implementation of wn_PnPoly() published on http://geomalgorithms.com/a03-_inclusion.html | |
| function pointInPolygon(point, vs) { | |
| const x = point[0], y = point[1]; | |
| let wn = 0; | |
| for (let i = 0, j = vs.length - 1; i < vs.length; j = i++) { | |
| let xi = vs[i][0], yi = vs[i][1]; | |
| let xj = vs[j][0], yj = vs[j][1]; |
| var cameraZ = camera.position.z; | |
| var planeZ = 5; | |
| var distance = cameraZ - planeZ; | |
| var aspect = viewWidth / viewHeight; | |
| var vFov = camera.fov * Math.PI / 180; | |
| var planeHeightAtDistance = 2 * Math.tan(vFov / 2) * distance; | |
| var planeWidthAtDistance = planeHeightAtDistance * aspect; | |
| // or |
A non-exhaustive list of WebGL and WebGPU frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are wip/outdated/not maintained anymore.
| Name | Stars | Last Commit | Description |
|---|---|---|---|
| three.js | ![GitHub |
| export function tween( time, update ) { | |
| const start = Date.now(); | |
| var isCanceled = false; | |
| var isComplete = false; | |
| var chain = []; | |
| function loop() { | |
| if ( isCanceled ) return; |
| // Add on element with overflow | |
| -webkit-mask-image: -webkit-radial-gradient(white, black); |
| export const Spring = (x, y, mass, stiffness, viscosity) => ({ | |
| prevX: x, | |
| prevY: y, | |
| currX: x, | |
| currY: y, | |
| mass, stiffness, viscosity | |
| }); | |
| Spring.copy = (spring) => ({ | |
| prevX: spring.prevX, |