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 |
// Built with IMPACT - impactjs.org | |
(function (window) { | |
"use strict"; | |
Number.prototype.map = function (istart, istop, ostart, ostop) { | |
return ostart + (ostop - ostart) * ((this - istart) / (istop - istart)); | |
}; | |
Number.prototype.limit = function (min, max) { | |
return Math.min(max, Math.max(min, this)); | |
}; | |
Number.prototype.round = function (precision) { |
if (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "AMD64") | |
set(GLSL_VALIDATOR "$ENV{VULKAN_SDK}/Bin/glslangValidator.exe") | |
else() | |
set(GLSL_VALIDATOR "$ENV{VULKAN_SDK}/Bin32/glslangValidator.exe") | |
endif() | |
file(GLOB_RECURSE GLSL_SOURCE_FILES | |
"shaders/*.frag" | |
"shaders/*.vert" | |
) |
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 |
UPDATE 2021: I wrote this long before I wrote my book Functional Programming Made Easier: A Step-by-step Guide. For a much more in depth discussion on Monads see Chapter 18.
Initially, Monads are the biggest, scariest thing about Functional Programming and especially Haskell. I've used monads for quite some time now, but I didn't have a very good model for what they really are. I read Philip Wadler's paper Monads for functional programming and I still didnt quite see the pattern.
It wasn't until I read the blog post You Could Have Invented Monads! (And Maybe You Already Have.) that I started to see things more clearly.
This is a distillation of those works and most likely an oversimplification in an attempt to make things easier to understand. Nuance can come later. What we need when first le
cmake_minimum_required(VERSION 3.7) | |
project(opencl_cmake VERSION 0.0.1 LANGUAGES CXX) | |
add_executable(vadd main) | |
target_compile_features(vadd PRIVATE cxx_auto_type) | |
find_package(OpenCL REQUIRED) | |
target_link_libraries(vadd OpenCL::OpenCL) |
function jq() { | |
if [ -f $1 ]; then | |
FILE=$1; shift | |
# Move FILE at the end as expected by native jq | |
command jq "$@" "$FILE" | |
else | |
command jq "$@" | |
fi | |
} |
function jq() { | |
if [ -f $1 ]; then | |
FILE=$1; shift | |
# Move FILE at the end as expected by native jq | |
command jq "$@" "$FILE" | |
else | |
command jq "$@" | |
fi | |
} |