Notebook - Welcome to Notebook

Contact/Report Bugs
You can contact me at: bkenwright@xbdev.net












Sexy webgl falling leaf simulation example style body padding 0 margin 0 overflow hidden height 600px canvas padding 0 margin 0 div btnbg position fixed left 0 top 0 style canvas id xbdev canvas div class btnbg div xbdev shader script id xbdev point vsh type x shader x vertex uniform mat4 uProjection uniform mat4 uModelview uniform vec3 uResolution uniform vec3 uOffset uniform vec3 uDOF x focus distance y focus radius z max radius uniform vec3 uFade x start distance y half distance z near fade start attribute vec3 aPosition attribute vec3 aEuler attribute vec2 aMisc x size y fade varying vec3 pposition varying float psize varying float palpha varying float pdist varying mat3 rotMat varying vec3 normX varying vec3 normY varying vec3 normZ varying vec3 normal varying float diffuse varying float specular varying float rstop varying float distancefade void main void Projection is based on vertical angle vec4 pos uModelview vec4 aPosition uOffset 1 0 gl Position uProjection pos gl PointSize aMisc x uProjection 1 1 pos z uResolution y 0 5 pposition pos xyz psize aMisc x pdist length pos xyz palpha smoothstep 0 0 1 0 pdist 0 1 uFade z vec3 elrsn sin aEuler vec3 elrcs cos aEuler mat3 rotx mat3 1 0 0 0 0 0 0 0 elrcs x elrsn x 0 0 elrsn x elrcs x mat3 roty mat3 elrcs y 0 0 elrsn y 0 0 1 0 0 0 elrsn y 0 0 elrcs y mat3 rotz mat3 elrcs z elrsn z 0 0 elrsn z elrcs z 0 0 0 0 0 0 1 0 mat3 rotmat rotx roty rotz normal rotmat 2 mat3 trrotm mat3 rotmat 0 0 rotmat 1 0 rotmat 2 0 rotmat 0 1 rotmat 1 1 rotmat 2 1 rotmat 0 2 rotmat 1 2 rotmat 2 2 normX trrotm 0 normY trrotm 1 normZ trrotm 2 const vec3 lit vec3 0 6917144638660746 0 6917144638660746 0 20751433915982237 float tmpdfs dot lit normal if tmpdfs 0 0 normal normal tmpdfs dot lit normal diffuse 0 4 tmpdfs vec3 eyev normalize pos xyz if dot eyev normal 0 0 vec3 hv normalize eyev lit specular pow max dot hv normal 0 0 20 0 else specular 0 0 rstop clamp abs pdist uDOF x uDOF y uDOF z 0 0 1 0 rstop pow rstop 0 5 0 69315 ln 0 5 distancefade min 1 0 exp uFade x pdist 0 69315 uFade y script script id xbdev point fsh type x shader x fragment ifdef GL ES precision mediump float precision highp float endif uniform vec3 uDOF x focus distance y focus radius z max radius uniform vec3 uFade x start distance y half distance z near fade start const vec3 fadeCol vec3 0 08 0 03 0 06 varying vec3 pposition varying float psize varying float palpha varying float pdist varying mat3 rotMat varying vec3 normX varying vec3 normY varying vec3 normZ varying vec3 normal varying float diffuse varying float specular varying float rstop varying float distancefade float ellipse vec2 p vec2 o vec2 r vec2 lp p o r return length lp 1 0 void main void vec3 p vec3 gl PointCoord vec2 0 5 0 5 0 0 2 0 vec3 d vec3 0 0 0 0 1 0 float nd normZ z dot normZ d if abs nd 0 0001 discard float np dot normZ p vec3 tp p d np nd vec2 coord vec2 dot normX tp dot normY tp angle 15 degree const float flwrsn 0 258819045102521 const float flwrcs 0 965925826289068 mat2 flwrm mat2 flwrcs flwrsn flwrsn flwrcs vec2 flwrp vec2 abs coord x coord y flwrm float r if flwrp x 0 0 r ellipse flwrp vec2 0 065 0 024 0 5 vec2 0 36 0 96 0 5 else r ellipse flwrp vec2 0 065 0 024 0 5 vec2 0 58 0 96 0 5 if r rstop discard vec3 col mix vec3 1 0 0 8 0 75 vec3 1 0 0 9 0 87 r float grady mix 0 0 1 0 pow coord y 0 5 0 5 0 35 col vec3 1 0 grady grady col mix 0 8 1 0 pow abs coord x 0 3 col col diffuse specular col mix fadeCol col distancefade float alpha rstop 0 001 0 5 r rstop 2 0 1 0 alpha smoothstep 0 0 1 0 alpha palpha gl FragColor vec4 col 0 5 alpha script effects script id fx common vsh type x shader x vertex uniform vec3 uResolution attribute vec2 aPosition varying vec2 texCoord varying vec2 screenCoord void main void gl Position vec4 aPosition 0 0 1 0 texCoord aPosition xy 0 5 vec2 0 5 0 5 screenCoord aPosition xy vec2 uResolution z 1 0 script script id bg fsh type x shader x fragment ifdef GL ES precision mediump float precision highp float endif uniform vec2 uTimes varying vec2 texCoord varying vec2 screenCoord void main void vec3 col float c vec2 tmpv texCoord vec2 0 8 1 0 vec2 0 95 1 0 c exp pow length tmpv 1 8 2 0 col mix vec3 0 02 0 0 0 03 vec3 0 96 0 98 1 0 1 5 c gl FragColor vec4 col 0 5 1 0 script script id fx brightbuf fsh type x shader x fragment ifdef GL ES precision mediump float precision highp float endif uniform sampler2D uSrc uniform vec2 uDelta varying vec2 texCoord varying vec2 screenCoord void main void vec4 col texture2D uSrc texCoord gl FragColor vec4 col rgb 2 0 vec3 0 5 1 0 script script id fx dirblur r4 fsh type x shader x fragment ifdef GL ES precision mediump float precision highp float endif uniform sampler2D uSrc uniform vec2 uDelta uniform vec4 uBlurDir dir x y stride z w varying vec2 texCoord varying vec2 screenCoord void main void vec4 col texture2D uSrc texCoord col col texture2D uSrc texCoord uBlurDir xy uDelta col col texture2D uSrc texCoord uBlurDir xy uDelta col col texture2D uSrc texCoord uBlurDir xy uBlurDir zw uDelta col col texture2D uSrc texCoord uBlurDir xy uBlurDir zw uDelta gl FragColor col 5 0 script effect fragment shader template script id fx common fsh type x shader x fragment ifdef GL ES precision mediump float precision highp float endif uniform sampler2D uSrc uniform vec2 uDelta varying vec2 texCoord varying vec2 screenCoord void main void gl FragColor texture2D uSrc texCoord script post processing script id pp final vsh type x shader x vertex uniform vec3 uResolution attribute vec2 aPosition varying vec2 texCoord varying vec2 screenCoord void main void gl Position vec4 aPosition 0 0 1 0 texCoord aPosition xy 0 5 vec2 0 5 0 5 screenCoord aPosition xy vec2 uResolution z 1 0 script script id pp final fsh type x shader x fragment ifdef GL ES precision mediump float precision highp float endif uniform sampler2D uSrc uniform sampler2D uBloom uniform vec2 uDelta varying vec2 texCoord varying vec2 screenCoord void main void vec4 srccol texture2D uSrc texCoord 2 0 vec4 bloomcol texture2D uBloom texCoord vec4 col col srccol bloomcol vec4 1 0 srccol col smoothstep 1 0 0 0 pow length texCoord vec2 0 5 2 0 1 2 0 5 col pow col vec4 0 45454545454545 1 0 2 2 gl FragColor vec4 col rgb 1 0 gl FragColor a 1 0 script script Utilities var Vector3 var Matrix44 Vector3 create function x y z return x x y y z z Vector3 dot function v0 v1 return v0 x v1 x v0 y v1 y v0 z v1 z Vector3 cross function v v0 v1 v x v0 y v1 z v0 z v1 y v y v0 z v1 x v0 x v1 z v z v0 x v1 y v0 y v1 x Vector3 normalize function v var l v x v x v y v y v z v z if l 0 00001 l 1 0 Math sqrt l v x l v y l v z l Vector3 arrayForm function v if v array v array 0 v x v array 1 v y v array 2 v z else v array new Float32Array v x v y v z return v array Matrix44 createIdentity function return new Float32Array 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 Matrix44 loadProjection function m aspect vdeg near far var h near Math tan vdeg Math PI 180 0 0 5 2 0 var w h aspect m 0 2 0 near w m 1 0 0 m 2 0 0 m 3 0 0 m 4 0 0 m 5 2 0 near h m 6 0 0 m 7 0 0 m 8 0 0 m 9 0 0 m 10 far near far near m 11 1 0 m 12 0 0 m 13 0 0 m 14 2 0 far near far near m 15 0 0 Matrix44 loadLookAt function m vpos vlook vup var frontv Vector3 create vpos x vlook x vpos y vlook y vpos z vlook z Vector3 normalize frontv var sidev Vector3 create 1 0 0 0 0 0 Vector3 cross sidev vup frontv Vector3 normalize sidev var topv Vector3 create 1 0 0 0 0 0 Vector3 cross topv frontv sidev Vector3 normalize topv m 0 sidev x m 1 topv x m 2 frontv x m 3 0 0 m 4 sidev y m 5 topv y m 6 frontv y m 7 0 0 m 8 sidev z m 9 topv z m 10 frontv z m 11 0 0 m 12 vpos x m 0 vpos y m 4 vpos z m 8 m 13 vpos x m 1 vpos y m 5 vpos z m 9 m 14 vpos x m 2 vpos y m 6 vpos z m 10 m 15 1 0 var timeInfo start 0 prev 0 Date delta 0 elapsed 0 Number sec var gl var renderSpec width 0 height 0 aspect 1 array new Float32Array 3 halfWidth 0 halfHeight 0 halfArray new Float32Array 3 and some render targets see setViewport renderSpec setSize function w h renderSpec width w renderSpec height h renderSpec aspect renderSpec width renderSpec height renderSpec array 0 renderSpec width renderSpec array 1 renderSpec height renderSpec array 2 renderSpec aspect renderSpec halfWidth Math floor w 2 renderSpec halfHeight Math floor h 2 renderSpec halfArray 0 renderSpec halfWidth renderSpec halfArray 1 renderSpec halfHeight renderSpec halfArray 2 renderSpec halfWidth renderSpec halfHeight function deleteRenderTarget rt gl deleteFramebuffer rt frameBuffer gl deleteRenderbuffer rt renderBuffer gl deleteTexture rt texture function createRenderTarget w h var ret width w height h sizeArray new Float32Array w h w h dtxArray new Float32Array 1 0 w 1 0 h ret frameBuffer gl createFramebuffer ret renderBuffer gl createRenderbuffer ret texture gl createTexture gl bindTexture gl TEXTURE 2D ret texture gl texImage2D gl TEXTURE 2D 0 gl RGBA w h 0 gl RGBA gl UNSIGNED BYTE null gl texParameteri gl TEXTURE 2D gl TEXTURE WRAP S gl CLAMP TO EDGE gl texParameteri gl TEXTURE 2D gl TEXTURE WRAP T gl CLAMP TO EDGE gl texParameteri gl TEXTURE 2D gl TEXTURE MAG FILTER gl LINEAR gl texParameteri gl TEXTURE 2D gl TEXTURE MIN FILTER gl LINEAR gl bindFramebuffer gl FRAMEBUFFER ret frameBuffer gl framebufferTexture2D gl FRAMEBUFFER gl COLOR ATTACHMENT0 gl TEXTURE 2D ret texture 0 gl bindRenderbuffer gl RENDERBUFFER ret renderBuffer gl renderbufferStorage gl RENDERBUFFER gl DEPTH COMPONENT16 w h gl framebufferRenderbuffer gl FRAMEBUFFER gl DEPTH ATTACHMENT gl RENDERBUFFER ret renderBuffer gl bindTexture gl TEXTURE 2D null gl bindRenderbuffer gl RENDERBUFFER null gl bindFramebuffer gl FRAMEBUFFER null return ret function compileShader shtype shsrc var retsh gl createShader shtype gl shaderSource retsh shsrc gl compileShader retsh if gl getShaderParameter retsh gl COMPILE STATUS var errlog gl getShaderInfoLog retsh gl deleteShader retsh console error errlog return null return retsh function createShader vtxsrc frgsrc uniformlist attrlist var vsh compileShader gl VERTEX SHADER vtxsrc var fsh compileShader gl FRAGMENT SHADER frgsrc if vsh null fsh null return null var prog gl createProgram gl attachShader prog vsh gl attachShader prog fsh gl deleteShader vsh gl deleteShader fsh gl linkProgram prog if gl getProgramParameter prog gl LINK STATUS var errlog gl getProgramInfoLog prog console error errlog return null if uniformlist prog uniforms for var i 0 i uniformlist length i prog uniforms uniformlist i gl getUniformLocation prog uniformlist i if attrlist prog attributes for var i 0 i attrlist length i var attr attrlist i prog attributes attr gl getAttribLocation prog attr return prog function useShader prog gl useProgram prog for var attr in prog attributes gl enableVertexAttribArray prog attributes attr function unuseShader prog for var attr in prog attributes gl disableVertexAttribArray prog attributes attr gl useProgram null var projection angle 60 nearfar new Float32Array 0 1 100 0 matrix Matrix44 createIdentity var camera position Vector3 create 0 0 100 lookat Vector3 create 0 0 0 up Vector3 create 0 1 0 dof Vector3 create 10 0 4 0 8 0 matrix Matrix44 createIdentity var pointFlower var meshFlower var sceneStandBy false var BlossomParticle function this velocity new Array 3 this rotation new Array 3 this position new Array 3 this euler new Array 3 this size 1 0 this alpha 1 0 this zkey 0 0 BlossomParticle prototype setVelocity function vx vy vz this velocity 0 vx this velocity 1 vy this velocity 2 vz BlossomParticle prototype setRotation function rx ry rz this rotation 0 rx this rotation 1 ry this rotation 2 rz BlossomParticle prototype setPosition function nx ny nz this position 0 nx this position 1 ny this position 2 nz BlossomParticle prototype setEulerAngles function rx ry rz this euler 0 rx this euler 1 ry this euler 2 rz BlossomParticle prototype setSize function s this size s BlossomParticle prototype update function dt et this position 0 this velocity 0 dt this position 1 this velocity 1 dt this position 2 this velocity 2 dt this euler 0 this rotation 0 dt this euler 1 this rotation 1 dt this euler 2 this rotation 2 dt function createPointFlowers get point sizes var prm gl getParameter gl ALIASED POINT SIZE RANGE renderSpec pointSize min prm 0 max prm 1 var vtxsrc document getElementById xbdev point vsh textContent var frgsrc document getElementById xbdev point fsh textContent pointFlower program createShader vtxsrc frgsrc uProjection uModelview uResolution uOffset uDOF uFade aPosition aEuler aMisc useShader pointFlower program pointFlower offset new Float32Array 0 0 0 0 0 0 pointFlower fader Vector3 create 0 0 10 0 0 0 paramerters velocity 3 rotate 3 pointFlower numFlowers 1600 pointFlower particles new Array pointFlower numFlowers vertex attributes position 3 euler xyz 3 size 1 pointFlower dataArray new Float32Array pointFlower numFlowers 3 3 2 pointFlower positionArrayOffset 0 pointFlower eulerArrayOffset pointFlower numFlowers 3 pointFlower miscArrayOffset pointFlower numFlowers 6 pointFlower buffer gl createBuffer gl bindBuffer gl ARRAY BUFFER pointFlower buffer gl bufferData gl ARRAY BUFFER pointFlower dataArray gl DYNAMIC DRAW gl bindBuffer gl ARRAY BUFFER null unuseShader pointFlower program for var i 0 i pointFlower numFlowers i pointFlower particles i new BlossomParticle function initPointFlowers area pointFlower area Vector3 create 20 0 20 0 20 0 pointFlower area x pointFlower area y renderSpec aspect pointFlower fader x 10 0 env fade start pointFlower fader y pointFlower area z env fade half pointFlower fader z 0 1 near fade start particles var PI2 Math PI 2 0 var tmpv3 Vector3 create 0 0 0 var tmpv 0 var symmetryrand function return Math random 2 0 1 0 for var i 0 i pointFlower numFlowers i var tmpprtcl pointFlower particles i velocity tmpv3 x symmetryrand 0 3 0 8 tmpv3 y symmetryrand 0 2 1 0 tmpv3 z symmetryrand 0 3 0 5 Vector3 normalize tmpv3 tmpv 2 0 Math random 1 0 tmpprtcl setVelocity tmpv3 x tmpv tmpv3 y tmpv tmpv3 z tmpv rotation tmpprtcl setRotation symmetryrand PI2 0 5 symmetryrand PI2 0 5 symmetryrand PI2 0 5 position tmpprtcl setPosition symmetryrand pointFlower area x symmetryrand pointFlower area y symmetryrand pointFlower area z euler tmpprtcl setEulerAngles Math random Math PI 2 0 Math random Math PI 2 0 Math random Math PI 2 0 size tmpprtcl setSize 0 9 Math random 0 1 function renderPointFlowers update var PI2 Math PI 2 0 var limit pointFlower area x pointFlower area y pointFlower area z var repeatPos function prt cmp limit if Math abs prt position cmp prt size 0 5 limit out of area if prt position cmp 0 prt position cmp limit 2 0 else prt position cmp limit 2 0 var repeatEuler function prt cmp prt euler cmp prt euler cmp PI2 if prt euler cmp 0 0 prt euler cmp PI2 for var i 0 i pointFlower numFlowers i var prtcl pointFlower particles i prtcl update timeInfo delta timeInfo elapsed repeatPos prtcl 0 pointFlower area x repeatPos prtcl 1 pointFlower area y repeatPos prtcl 2 pointFlower area z repeatEuler prtcl 0 repeatEuler prtcl 1 repeatEuler prtcl 2 prtcl alpha 1 0 pointFlower area z prtcl position 2 0 5 prtcl zkey camera matrix 2 prtcl position 0 camera matrix 6 prtcl position 1 camera matrix 10 prtcl position 2 camera matrix 14 sort pointFlower particles sort function p0 p1 return p0 zkey p1 zkey update data var ipos pointFlower positionArrayOffset var ieuler pointFlower eulerArrayOffset var imisc pointFlower miscArrayOffset for var i 0 i pointFlower numFlowers i var prtcl pointFlower particles i pointFlower dataArray ipos prtcl position 0 pointFlower dataArray ipos 1 prtcl position 1 pointFlower dataArray ipos 2 prtcl position 2 ipos 3 pointFlower dataArray ieuler prtcl euler 0 pointFlower dataArray ieuler 1 prtcl euler 1 pointFlower dataArray ieuler 2 prtcl euler 2 ieuler 3 pointFlower dataArray imisc prtcl size pointFlower dataArray imisc 1 prtcl alpha imisc 2 draw gl enable gl BLEND gl disable gl DEPTH TEST gl blendFunc gl SRC ALPHA gl ONE MINUS SRC ALPHA var prog pointFlower program useShader prog gl uniformMatrix4fv prog uniforms uProjection false projection matrix gl uniformMatrix4fv prog uniforms uModelview false camera matrix gl uniform3fv prog uniforms uResolution renderSpec array gl uniform3fv prog uniforms uDOF Vector3 arrayForm camera dof gl uniform3fv prog uniforms uFade Vector3 arrayForm pointFlower fader gl bindBuffer gl ARRAY BUFFER pointFlower buffer gl bufferData gl ARRAY BUFFER pointFlower dataArray gl DYNAMIC DRAW gl vertexAttribPointer prog attributes aPosition 3 gl FLOAT false 0 pointFlower positionArrayOffset Float32Array BYTES PER ELEMENT gl vertexAttribPointer prog attributes aEuler 3 gl FLOAT false 0 pointFlower eulerArrayOffset Float32Array BYTES PER ELEMENT gl vertexAttribPointer prog attributes aMisc 2 gl FLOAT false 0 pointFlower miscArrayOffset Float32Array BYTES PER ELEMENT doubler for var i 1 i 2 i var zpos i 2 0 pointFlower offset 0 pointFlower area x 1 0 pointFlower offset 1 pointFlower area y 1 0 pointFlower offset 2 pointFlower area z zpos gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers pointFlower offset 0 pointFlower area x 1 0 pointFlower offset 1 pointFlower area y 1 0 pointFlower offset 2 pointFlower area z zpos gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers pointFlower offset 0 pointFlower area x 1 0 pointFlower offset 1 pointFlower area y 1 0 pointFlower offset 2 pointFlower area z zpos gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers pointFlower offset 0 pointFlower area x 1 0 pointFlower offset 1 pointFlower area y 1 0 pointFlower offset 2 pointFlower area z zpos gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers main pointFlower offset 0 0 0 pointFlower offset 1 0 0 pointFlower offset 2 0 0 gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers gl bindBuffer gl ARRAY BUFFER null unuseShader prog gl enable gl DEPTH TEST gl disable gl BLEND effects common util function createEffectProgram vtxsrc frgsrc exunifs exattrs var ret var unifs uResolution uSrc uDelta if exunifs unifs unifs concat exunifs var attrs aPosition if exattrs attrs attrs concat exattrs ret program createShader vtxsrc frgsrc unifs attrs useShader ret program ret dataArray new Float32Array 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ret buffer gl createBuffer gl bindBuffer gl ARRAY BUFFER ret buffer gl bufferData gl ARRAY BUFFER ret dataArray gl STATIC DRAW gl bindBuffer gl ARRAY BUFFER null unuseShader ret program return ret basic usage useEffect prog srctex texture texid dtxArray f32 dtx dty basic initialize gl uniform additional uniforms drawEffect unuseEffect prog TEXTURE0 makes src function useEffect fxobj srctex var prog fxobj program useShader prog gl uniform3fv prog uniforms uResolution renderSpec array if srctex null gl uniform2fv prog uniforms uDelta srctex dtxArray gl uniform1i prog uniforms uSrc 0 gl activeTexture gl TEXTURE0 gl bindTexture gl TEXTURE 2D srctex texture function drawEffect fxobj gl bindBuffer gl ARRAY BUFFER fxobj buffer gl vertexAttribPointer fxobj program attributes aPosition 2 gl FLOAT false 0 0 gl drawArrays gl TRIANGLE STRIP 0 4 function unuseEffect fxobj unuseShader fxobj program var effectLib function createEffectLib var vtxsrc frgsrc common var cmnvtxsrc document getElementById fx common vsh textContent background frgsrc document getElementById bg fsh textContent effectLib sceneBg createEffectProgram cmnvtxsrc frgsrc uTimes null make brightpixels buffer frgsrc document getElementById fx brightbuf fsh textContent effectLib mkBrightBuf createEffectProgram cmnvtxsrc frgsrc null null direction blur frgsrc document getElementById fx dirblur r4 fsh textContent effectLib dirBlur createEffectProgram cmnvtxsrc frgsrc uBlurDir null final composite vtxsrc document getElementById pp final vsh textContent frgsrc document getElementById pp final fsh textContent effectLib finalComp createEffectProgram vtxsrc frgsrc uBloom null background function createBackground console log create background function initBackground console log init background function renderBackground gl disable gl DEPTH TEST useEffect effectLib sceneBg null gl uniform2f effectLib sceneBg program uniforms uTimes timeInfo elapsed timeInfo delta drawEffect effectLib sceneBg unuseEffect effectLib sceneBg gl enable gl DEPTH TEST post process var postProcess function createPostProcess console log create post process function initPostProcess console log init post process function renderPostProcess gl enable gl TEXTURE 2D gl disable gl DEPTH TEST var bindRT function rt isclear gl bindFramebuffer gl FRAMEBUFFER rt frameBuffer gl viewport 0 0 rt width rt height if isclear gl clearColor 0 0 0 0 gl clear gl COLOR BUFFER BIT gl DEPTH BUFFER BIT make bright buff bindRT renderSpec wHalfRT0 true useEffect effectLib mkBrightBuf renderSpec mainRT drawEffect effectLib mkBrightBuf unuseEffect effectLib mkBrightBuf make bloom for var i 0 i 2 i var p 1 5 1 i var s 2 0 1 i bindRT renderSpec wHalfRT1 true useEffect effectLib dirBlur renderSpec wHalfRT0 gl uniform4f effectLib dirBlur program uniforms uBlurDir p 0 0 s 0 0 drawEffect effectLib dirBlur unuseEffect effectLib dirBlur bindRT renderSpec wHalfRT0 true useEffect effectLib dirBlur renderSpec wHalfRT1 gl uniform4f effectLib dirBlur program uniforms uBlurDir 0 0 p 0 0 s drawEffect effectLib dirBlur unuseEffect effectLib dirBlur display gl bindFramebuffer gl FRAMEBUFFER null gl viewport 0 0 renderSpec width renderSpec height gl clear gl COLOR BUFFER BIT gl DEPTH BUFFER BIT useEffect effectLib finalComp renderSpec mainRT gl uniform1i effectLib finalComp program uniforms uBloom 1 gl activeTexture gl TEXTURE1 gl bindTexture gl TEXTURE 2D renderSpec wHalfRT0 texture drawEffect effectLib finalComp unuseEffect effectLib finalComp gl enable gl DEPTH TEST var SceneEnv function createScene createEffectLib createBackground createPointFlowers createPostProcess sceneStandBy true function initScene initBackground initPointFlowers initPostProcess camera position z 17 320508 camera position z pointFlower area z projection nearfar 0 projection angle Math atan2 pointFlower area y camera position z pointFlower area z 180 0 Math PI 2 0 Matrix44 loadProjection projection matrix renderSpec aspect projection angle projection nearfar 0 projection nearfar 1 function renderScene draw Matrix44 loadLookAt camera matrix camera position camera lookat camera up gl enable gl DEPTH TEST gl bindFramebuffer gl FRAMEBUFFER null gl bindFramebuffer gl FRAMEBUFFER renderSpec mainRT frameBuffer gl viewport 0 0 renderSpec mainRT width renderSpec mainRT height gl clearColor 0 005 0 0 05 0 gl clear gl COLOR BUFFER BIT gl DEPTH BUFFER BIT renderBackground renderPointFlowers renderPostProcess function onResize e makeCanvasFullScreen document getElementById xbdev setViewports if sceneStandBy initScene function setViewports renderSpec setSize gl canvas width gl canvas height gl clearColor 0 2 0 2 0 5 1 0 gl viewport 0 0 renderSpec width renderSpec height var rtfunc function rtname rtw rth var rt renderSpec rtname if rt deleteRenderTarget rt renderSpec rtname createRenderTarget rtw rth rtfunc mainRT renderSpec width renderSpec height rtfunc wFullRT0 renderSpec width renderSpec height rtfunc wFullRT1 renderSpec width renderSpec height rtfunc wHalfRT0 renderSpec halfWidth renderSpec halfHeight rtfunc wHalfRT1 renderSpec halfWidth renderSpec halfHeight function render renderScene var animating true function toggleAnimation elm animating true if animating animate if elm elm innerHTML animating Stop Start function stepAnimation if animating animate function animate var curdate new Date timeInfo elapsed curdate timeInfo start 1000 0 timeInfo delta curdate timeInfo prev 1000 0 timeInfo prev curdate if animating requestAnimationFrame animate render function makeCanvasFullScreen canvas var b document body var d document documentElement fullw Math max b clientWidth b scrollWidth d scrollWidth d clientWidth fullh Math max b clientHeight b scrollHeight d scrollHeight d clientHeight canvas width fullw canvas height fullh window addEventListener load function e var canvas document getElementById xbdev try makeCanvasFullScreen canvas gl canvas getContext experimental webgl catch e alert WebGL not supported e console error e return window addEventListener resize onResize setViewports createScene initScene timeInfo start new Date timeInfo prev timeInfo start animate set window requestAnimationFrame function w r w r r w r r w webkitR r w mozR r w msR r w oR r function c w setTimeout c 1000 60 window equestAnimationFrame console log sweet script

Modelview uResolution uOffset uDOF uFade aPosition aEuler aMisc useShader pointFlower program pointFlower offset new Float32Array 0 0 0 0 0 0 pointFlower fader Vector3 create 0 0 10 0 0 0 paramerters velocity 3 rotate 3 pointFlower numFlowers 1600 pointFlower particles new Array pointFlower numFlowers vertex attributes position 3 euler xyz 3 size 1 pointFlower dataArray new Float32Array pointFlower numFlowers 3 3 2 pointFlower positionArrayOffset 0 pointFlower eulerArrayOffset pointFlower numFlowers 3 pointFlower miscArrayOffset pointFlower numFlowers 6 pointFlower buffer gl createBuffer gl bindBuffer gl ARRAY BUFFER pointFlower buffer gl bufferData gl ARRAY BUFFER pointFlower dataArray gl DYNAMIC DRAW gl bindBuffer gl ARRAY BUFFER null unuseShader pointFlower program for var i 0 i pointFlower numFlowers i pointFlower particles i new BlossomParticle function initPointFlowers area pointFlower area Vector3 create 20 0 20 0 20 0 pointFlower area x pointFlower area y renderSpec aspect pointFlower fader x 10 0 env fade start pointFlower fader y pointFlower area z env fade half pointFlower fader z 0 1 near fade start particles var PI2 Math PI 2 0 var tmpv3 Vector3 create 0 0 0 var tmpv 0 var symmetryrand function return Math random 2 0 1 0 for var i 0 i pointFlower numFlowers i var tmpprtcl pointFlower particles i velocity tmpv3 x symmetryrand 0 3 0 8 tmpv3 y symmetryrand 0 2 1 0 tmpv3 z symmetryrand 0 3 0 5 Vector3 normalize tmpv3 tmpv 2 0 Math random 1 0 tmpprtcl setVelocity tmpv3 x tmpv tmpv3 y tmpv tmpv3 z tmpv rotation tmpprtcl setRotation symmetryrand PI2 0 5 symmetryrand PI2 0 5 symmetryrand PI2 0 5 position tmpprtcl setPosition symmetryrand pointFlower area x symmetryrand pointFlower area y symmetryrand pointFlower area z euler tmpprtcl setEulerAngles Math random Math PI 2 0 Math random Math PI 2 0 Math random Math PI 2 0 size tmpprtcl setSize 0 9 Math random 0 1 function renderPointFlowers update var PI2 Math PI 2 0 var limit pointFlower area x pointFlower area y pointFlower area z var repeatPos function prt cmp limit if Math abs prt position cmp prt size 0 5 limit out of area if prt position cmp 0 prt position cmp limit 2 0 else prt position cmp limit 2 0 var repeatEuler function prt cmp prt euler cmp prt euler cmp PI2 if prt euler cmp 0 0 prt euler cmp PI2 for var i 0 i pointFlower numFlowers i var prtcl pointFlower particles i prtcl update timeInfo delta timeInfo elapsed repeatPos prtcl 0 pointFlower area x repeatPos prtcl 1 pointFlower area y repeatPos prtcl 2 pointFlower area z repeatEuler prtcl 0 repeatEuler prtcl 1 repeatEuler prtcl 2 prtcl alpha 1 0 pointFlower area z prtcl position 2 0 5 prtcl zkey camera matrix 2 prtcl position 0 camera matrix 6 prtcl position 1 camera matrix 10 prtcl position 2 camera matrix 14 sort pointFlower particles sort function p0 p1 return p0 zkey p1 zkey update data var ipos pointFlower positionArrayOffset var ieuler pointFlower eulerArrayOffset var imisc pointFlower miscArrayOffset for var i 0 i pointFlower numFlowers i var prtcl pointFlower particles i pointFlower dataArray ipos prtcl position 0 pointFlower dataArray ipos 1 prtcl position 1 pointFlower dataArray ipos 2 prtcl position 2 ipos 3 pointFlower dataArray ieuler prtcl euler 0 pointFlower dataArray ieuler 1 prtcl euler 1 pointFlower dataArray ieuler 2 prtcl euler 2 ieuler 3 pointFlower dataArray imisc prtcl size pointFlower dataArray imisc 1 prtcl alpha imisc 2 draw gl enable gl BLEND gl disable gl DEPTH TEST gl blendFunc gl SRC ALPHA gl ONE MINUS SRC ALPHA var prog pointFlower program useShader prog gl uniformMatrix4fv prog uniforms uProjection false projection matrix gl uniformMatrix4fv prog uniforms uModelview false camera matrix gl uniform3fv prog uniforms uResolution renderSpec array gl uniform3fv prog uniforms uDOF Vector3 arrayForm camera dof gl uniform3fv prog uniforms uFade Vector3 arrayForm pointFlower fader gl bindBuffer gl ARRAY BUFFER pointFlower buffer gl bufferData gl ARRAY BUFFER pointFlower dataArray gl DYNAMIC DRAW gl vertexAttribPointer prog attributes aPosition 3 gl FLOAT false 0 pointFlower positionArrayOffset Float32Array BYTES PER ELEMENT gl vertexAttribPointer prog attributes aEuler 3 gl FLOAT false 0 pointFlower eulerArrayOffset Float32Array BYTES PER ELEMENT gl vertexAttribPointer prog attributes aMisc 2 gl FLOAT false 0 pointFlower miscArrayOffset Float32Array BYTES PER ELEMENT doubler for var i 1 i 2 i var zpos i 2 0 pointFlower offset 0 pointFlower area x 1 0 pointFlower offset 1 pointFlower area y 1 0 pointFlower offset 2 pointFlower area z zpos gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers pointFlower offset 0 pointFlower area x 1 0 pointFlower offset 1 pointFlower area y 1 0 pointFlower offset 2 pointFlower area z zpos gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers pointFlower offset 0 pointFlower area x 1 0 pointFlower offset 1 pointFlower area y 1 0 pointFlower offset 2 pointFlower area z zpos gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers pointFlower offset 0 pointFlower area x 1 0 pointFlower offset 1 pointFlower area y 1 0 pointFlower offset 2 pointFlower area z zpos gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers main pointFlower offset 0 0 0 pointFlower offset 1 0 0 pointFlower offset 2 0 0 gl uniform3fv prog uniforms uOffset pointFlower offset gl drawArrays gl POINT 0 pointFlower numFlowers gl bindBuffer gl ARRAY BUFFER null unuseShader prog gl enable gl DEPTH TEST gl disable gl BLEND effects common util function createEffectProgram vtxsrc frgsrc exunifs exattrs var ret var unifs uResolution uSrc uDelta if exunifs unifs unifs concat exunifs var attrs aPosition if exattrs attrs attrs concat exattrs ret program createShader vtxsrc frgsrc unifs attrs useShader ret program ret dataArray new Float32Array 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ret buffer gl createBuffer gl bindBuffer gl ARRAY BUFFER ret buffer gl bufferData gl ARRAY BUFFER ret dataArray gl STATIC DRAW gl bindBuffer gl ARRAY BUFFER null unuseShader ret program return ret basic usage useEffect prog srctex texture texid dtxArray f32 dtx dty basic initialize gl uniform additional uniforms drawEffect unuseEffect prog TEXTURE0 makes src function useEffect fxobj srctex var prog fxobj program useShader prog gl uniform3fv prog uniforms uResolution renderSpec array if srctex null gl uniform2fv prog uniforms uDelta srctex dtxArray gl uniform1i prog uniforms uSrc 0 gl activeTexture gl TEXTURE0 gl bindTexture gl TEXTURE 2D srctex texture function drawEffect fxobj gl bindBuffer gl ARRAY BUFFER fxobj buffer gl vertexAttribPointer fxobj program attributes aPosition 2 gl FLOAT false 0 0 gl drawArrays gl TRIANGLE STRIP 0 4 function unuseEffect fxobj unuseShader fxobj program var effectLib function createEffectLib var vtxsrc frgsrc common var cmnvtxsrc document getElementById fx common vsh textContent background frgsrc document getElementById bg fsh textContent effectLib sceneBg createEffectProgram cmnvtxsrc frgsrc uTimes null make brightpixels buffer frgsrc document getElementById fx brightbuf fsh textContent effectLib mkBrightBuf createEffectProgram cmnvtxsrc frgsrc null null direction blur frgsrc document getElementById fx dirblur r4 fsh textContent effectLib dirBlur createEffectProgram cmnvtxsrc frgsrc uBlurDir null final composite vtxsrc document getElementById pp final vsh textContent frgsrc document getElementById pp final fsh textContent effectLib finalComp createEffectProgram vtxsrc frgsrc uBloom null background function createBackground console log create background function initBackground console log init background function renderBackground gl disable gl DEPTH TEST useEffect effectLib sceneBg null gl uniform2f effectLib sceneBg program uniforms uTimes timeInfo elapsed timeInfo delta drawEffect effectLib sceneBg unuseEffect effectLib sceneBg gl enable gl DEPTH TEST post process var postProcess function createPostProcess console log create post process function initPostProcess console log init post process function renderPostProcess gl enable gl TEXTURE 2D gl disable gl DEPTH TEST var bindRT function rt isclear gl bindFramebuffer gl FRAMEBUFFER rt frameBuffer gl viewport 0 0 rt width rt height if isclear gl clearColor 0 0 0 0 gl clear gl COLOR BUFFER BIT gl DEPTH BUFFER BIT make bright buff bindRT renderSpec wHalfRT0 true useEffect effectLib mkBrightBuf renderSpec mainRT drawEffect effectLib mkBrightBuf unuseEffect effectLib mkBrightBuf make bloom for var i 0 i 2 i var p 1 5 1 i var s 2 0 1 i bindRT renderSpec wHalfRT1 true useEffect effectLib dirBlur renderSpec wHalfRT0 gl uniform4f effectLib dirBlur program uniforms uBlurDir p 0 0 s 0 0 drawEffect effectLib dirBlur unuseEffect effectLib dirBlur bindRT renderSpec wHalfRT0 true useEffect effectLib dirBlur renderSpec wHalfRT1 gl uniform4f effectLib dirBlur program uniforms uBlurDir 0 0 p 0 0 s drawEffect effectLib dirBlur unuseEffect effectLib dirBlur display gl bindFramebuffer gl FRAMEBUFFER null gl viewport 0 0 renderSpec width renderSpec height gl clear gl COLOR BUFFER BIT gl DEPTH BUFFER BIT useEffect effectLib finalComp renderSpec mainRT gl uniform1i effectLib finalComp program uniforms uBloom 1 gl activeTexture gl TEXTURE1 gl bindTexture gl TEXTURE 2D renderSpec wHalfRT0 texture drawEffect effectLib finalComp unuseEffect effectLib finalComp gl enable gl DEPTH TEST var SceneEnv function createScene createEffectLib createBackground createPointFlowers createPostProcess sceneStandBy true function initScene initBackground initPointFlowers initPostProcess camera position z 17 320508 camera position z pointFlower area z projection nearfar 0 projection angle Math atan2 pointFlower area y camera position z pointFlower area z 180 0 Math PI 2 0 Matrix44 loadProjection projection matrix renderSpec aspect projection angle projection nearfar 0 projection nearfar 1 function renderScene draw Matrix44 loadLookAt camera matrix camera position camera lookat camera up gl enable gl DEPTH TEST gl bindFramebuffer gl FRAMEBUFFER null gl bindFramebuffer gl FRAMEBUFFER renderSpec mainRT frameBuffer gl viewport 0 0 renderSpec mainRT width renderSpec mainRT height gl clearColor 0 005 0 0 05 0 gl clear gl COLOR BUFFER BIT gl DEPTH BUFFER BIT renderBackground renderPointFlowers renderPostProcess function onResize e makeCanvasFullScreen document getElementById xbdev setViewports if sceneStandBy initScene function setViewports renderSpec setSize gl canvas width gl canvas height gl clearColor 0 2 0 2 0 5 1 0 gl viewport 0 0 renderSpec width renderSpec height var rtfunc function rtname rtw rth var rt renderSpec rtname if rt deleteRenderTarget rt renderSpec rtname createRenderTarget rtw rth rtfunc mainRT renderSpec width renderSpec height rtfunc wFullRT0 renderSpec width renderSpec height rtfunc wFullRT1 renderSpec width renderSpec height rtfunc wHalfRT0 renderSpec halfWidth renderSpec halfHeight rtfunc wHalfRT1 renderSpec halfWidth renderSpec halfHeight function render renderScene var animating true function toggleAnimation elm animating true if animating animate if elm elm innerHTML animating Stop Start function stepAnimation if animating animate function animate var curdate new Date timeInfo elapsed curdate timeInfo start 1000 0 timeInfo delta curdate timeInfo prev 1000 0 timeInfo prev curdate if animating requestAnimationFrame animate render function makeCanvasFullScreen canvas var b document body var d document documentElement fullw Math max b clientWidth b scrollWidth d scrollWidth d clientWidth fullh Math max b clientHeight b scrollHeight d scrollHeight d clientHeight canvas width fullw canvas height fullh window addEventListener load function e var canvas document getElementById xbdev try makeCanvasFullScreen canvas gl canvas getContext experimental webgl catch e alert WebGL not supported e console error e return window addEventListener resize onResize setViewports createScene initScene timeInfo start new Date timeInfo prev timeInfo start animate set window requestAnimationFrame function w r w r r w r r w webkitR r w mozR r w msR r w oR r function c w setTimeout c 1000 60 window equestAnimationFrame console log sweet script

3dplot
a4print
about
acejs
acejs2
acejs3
aessecurity
angularjs
animbackgroundimage
aseformat
assert
asteroidsjs
backgrounds01
backgrounds02
backgrounds03
barnsleyfern
base26
base64
bib
binary
bodypix
bouncy
box2dweb
breakoutjs
browserversion
buslanes
busybutton
bvhreader
calendar
canvas
canvas2
canvas3
canvasmandelbrot
canvasmandelbrot2
canvasnumbers
canvaszoom
capsule
changingimages
chatgptusingopenai
chatgptusingopenai2
chatgptusingopenai3
checkboxtoggle
chinesetiles
classes
classfeatures
clipboardbutton
clonenode
codedropdown
codemirror
codemirror2
collada
colorpick
columnresizer
contextmenu
convnet
cookiebanner
countdown
countdown2
countdown3
crop
css3dbarchart
css3dbarchart2
css3dbook
css3dscene
csscube
csscube2
csscube3
csscubevideos
cssfilelist
csshas
csspulse
cssresizeaspect
cssspin
csszooming
csvtoarray
customcheckbox
d3datamap
d3js
d3js10
d3js11
d3js2
d3js3
d3js4
d3js5
d3js6
d3js7
d3js8
d3js9
d3jsanimatedgrid
d3jsarctransition
d3jsarctransition2
d3jsaxis
d3jsaxischanging
d3jsbars
d3jsbrushing
d3jsbuslanes
d3jsbuslanes2
d3jscalendar
d3jscheat
d3jsclock
d3jscloudmap
d3jscogs
d3jscolors
d3jscovid
d3jscovid2
d3jscovid3
d3jsdashboard
d3jsdashboard2
d3jsdashboard3
d3jsdatakeyfunction
d3jsdensity
d3jsdragresizing
d3jsdragresizing2
d3jseach
d3jsease
d3jsevents
d3jsflower
d3jsforcegroups
d3jsforces
d3jsforces2
d3jsfractaltree
d3jsgeo
d3jsgroupbars
d3jsgroups
d3jsheatmap
d3jshex
d3jshierarchies
d3jshierarchies2
d3jshistogram
d3jshistogram2
d3jshistogram3
d3jshistogram4
d3jsinterpolate
d3jsjoin
d3jskmean
d3jskmean2
d3jsline
d3jsline2
d3jsline3
d3jsline4
d3jslinetransition
d3jslinetransition0
d3jslinetransition2
d3jsmaplocations
d3jsmaps
d3jsmaps2
d3jsmaps3
d3jsmisc
d3jsmisc2
d3jsmodule
d3jsmodulecolor
d3jsmultistyles
d3jsnobel
d3jsoverlappinggraphs
d3jspanel
d3jspie
d3jspieinterpolate
d3jssankey
d3jssankey2
d3jsscatter
d3jsshapes
d3jsslider
d3jsspending
d3jsspending2
d3jsspiralplot
d3jsspirograph
d3jssquare
d3jsstack
d3jsstackedbar
d3jsstackedbar2
d3jssunburst
d3jssunmoon
d3jssvglines
d3jssymbols
d3jstimelines
d3jsuk
d3jsvoronoi
d3scatterplot
d3timeline
d3timeline2
datalist
datamuse
date
dblclickhighlight
deviceorientation
dictionaryapi
dockermenu
doodlepad
downloadgif
dragdroplistitems
dragrotateresizediv
dragrotateresizediv2
dragrotateresizediv3
dragrotateresizediv4
dragrotateresizefontsize
dragselectbrush
drawlinesdiv
dropdown
dualquaternionimages
dynamicgrid
easefunctions
easeinterpolate3dplots
echart
echart2
echart3
encapsulation
epubviewer
errorstack
excalidraw
excalidraw2
excalidraw3
excalidraw5
expandable
faker
fetchplus
fileupload
fixedtopbar
fonts
fonts2
footerbar
fractalmaze
fractalmaze2
fractalnoiseimage
fractals
fractals2
fractaltree
freesvg
fresnel
froggerjs
gantt
gifgiphyapi
gifhex
gltffromscratch
gradients
griditems
griditems2
griditems3
griditems4
gridworms
heat
hexview
hexview2
highlight
icons
icons2
iframes
ik
imagetracertosvg
imgur
inputfile
invadersjs
ipynb
ipynb2
ipynb3
ipynb4
isbn13
isbn2
jpghex
jquery
jquery2
jqueryui
jqueryui2
jsdraganddrop
jslint
jsobfuscate
jsraytracer
jstree
jstree2
jszip
jszipimages
jszipread
keyframes
l2dwidget
lda
leftmenu
less
less2
lineargradientimage
linenumbers
loadimagefromfile
makepdf
maps
markdown
markdown2
markdownalerts
markdownalerts2
markdownbookmarks
markovimage
markovpixelblocks
mathjax
matrices
matsandvects
mazegamejs
md2tex
metrotiles
metrowindows
milestones
misc
misc2
modules
myipdetails
neataptic
networkstructures
networkstructures2
number
obj
objtojson
openaiimages
opencv
opencv2
opencv3
opencv4
opencv5
outline
p2
p5fractalleaf
p5fractalshape
p5js
p5js2
p5js3
p5jsanimatedcover
p5mengercube
p5snowflakes
palindrome
panel
parallax
paste
paste2
pasteimgfromurl
pdfjs
pdfjs2
pdfkit
pdfkit2
pdfkit3
pdfkit4
pdfkit5
pdfkit6
pdfmake
pdfmake2
pdfmake3
pdfmake4
pdfmake5
pdfmake6
perlin
perlin2
perlin3
perspective
pexels
playground
plotly
plotlynoise
plotlyranddist
plyloader
plyloader2
pngtxtencoder
pongjs
pptxgenjs
prettycode
prism
prn
problems
progress
pseudorandom
px2svg
python
quotes
racergame
random
randomprofilepatterns
randomstring
rating
rayambient
raymonte
raymonteprogressive
raymonteprogressive2
raymontewarmstart
reexpcross
reexpcross2
regex
regexbib
regexpfixbib
regexpmultiline
repeatwordsregexp
resizabletable
resizabletable2
revealjs
revealjs2
revealjsmulti
ritalanguage
ritalanguage2
ritalanguage3
rotateimg
rough
rsapublicprivatekeys
rss
rss2
sankey
scrappingsvg
scrolltext
scrolltext2
scrollwidth
sdfboxinboxtwist
sdfhollowbox
setintervalexception
shareurl
shuffle
sidecomment
similarity
simplehighlighter
simpleplatformgamejs
sinecanvas
sliderpopout
slides
smileys
snowfall
snowman
sound
soundsignal
sphererayintersection
springs
sqljs
steganography
stereogram
stringmatching
svg
svgchaos
svgdragresize
svgdragresize2
svgdragresize3
svgdragrotate
svgdrawing
svglines
svglines2
svglines3
svglines4
svglines5
svglinesmandelbrot
svgpathsdragrotate
svgpathsdragrotateresize
svgpie
svgpie2
svgpie3
svgpiepath
svgpiepath2
svgrandomfaces
symbols
synaptic
synaptic2
synonyms
tablerotatecells
tablerotatecells2
tablerotatecells3
tablerotatecells3b
tablerotatecells4
tables
tablezebra
tabularjs
tabularjs2
tabulatordownload
tagcanvas
tensorflowgan
tensorflowjs
tensorflowjsbasic
tensorflowjscnn
tensorflowjssinewave
tensorflowjssound
tensorflowmobilenet
tetrahedronfractal
tetrahedronfractalfolding
tetris
textarea
textareaauto
textareadiv
textareadiv2
textmaskimage
theirorthere
thesaurus
threejs
threejs2
threejs3
threejs4
threejsgltf
threejstokyo
tiles
toaster
tooltip
transition
transitionexpandabledropdown
treeview
treeview2
tricks
tshirt
tshirt2
tshirt3
turningpages
unsplash
urlblob
urlblob2
userdefinepoints
vector
videos
videos2
visualsort
vue
w2ui
w2uientertextdialog
webcam
webgl
webgl2
webgl3
webgl4
webgl5
webglbasic1
webglbasic2
webglcube
webglfov
webglfrustum
webgljson
webglleaves
webgllighting
webglorthographic
webglpoints1
webglpoints2
webglpoints3
webglsquare
webgltexture1
webgltexture2
webgltexture3
webgltransforms
webgltriangle
webgpu
webgpu10
webgpu11
webgpu12
webgpu13
webgpu14
webgpu15
webgpu16
webgpu17
webgpu2
webgpu3
webgpu4
webgpu5
webgpu6
webgpu7
webgpu8
webgpu9
webgpubars
webgpubuffers
webgpubuffers2
webgpucellnoise
webgpuclouds
webgpuclydescope
webgpucompute
webgpucubemap
webgpucubemap2
webgpudeferred
webgpudepth
webgpudof
webgpudrops
webgpuetha
webgpufire
webgpufractalcubes
webgpuglassrain
webgpugltf
webgpugltf2
webgpugrass
webgpugrid
webgpukernel
webgpukleinian
webgpulabupdates
webgpulighting
webgpumandelbrot
webgpumeta3d
webgpumetaballs
webgpumouse
webgpunoise
webgpunormalmapping
webgpuobj
webgpuparallax
webgpuparallax2
webgpuparallax3
webgpuparallaxshadow
webgpuparallaxshadow2
webgpupixel
webgpuquad
webgpuray1
webgpuraytracing
webgpuraytracing2
webgpushadowmaps
webgpushadowmaps2
webgpusierpinski2d
webgpusierpinski3d
webgpusinusoid
webgpussao
webgpustadiumobj
webgpuswirl
webgputestpipe3
webgputoon
webgputopology
webgputt
webgpuvolcloud
webgpuwater
webgpuwireframe
webgpuwireframe2
webpcanvas
webworkers
webxr
webxr2
wiggly
wikipedia