diff options
Diffstat (limited to 'workspaces')
| -rw-r--r-- | workspaces/main/assets.txt | 1 | ||||
| -rw-r--r-- | workspaces/main/shaders/cnn/cnn_conv1x1.wgsl | 4 | ||||
| -rw-r--r-- | workspaces/main/shaders/cnn/cnn_conv3x3.wgsl | 46 | ||||
| -rw-r--r-- | workspaces/main/shaders/cnn/cnn_layer.wgsl | 2 | ||||
| -rw-r--r-- | workspaces/main/shaders/cnn/cnn_weights_generated.wgsl | 324 |
5 files changed, 183 insertions, 194 deletions
diff --git a/workspaces/main/assets.txt b/workspaces/main/assets.txt index af8b9e9..750bf15 100644 --- a/workspaces/main/assets.txt +++ b/workspaces/main/assets.txt @@ -37,6 +37,7 @@ SHADER_ELLIPSE, NONE, shaders/ellipse.wgsl, "Ellipse Shader" SHADER_PARTICLE_SPRAY_COMPUTE, NONE, shaders/particle_spray_compute.wgsl, "Particle Spray Compute" SHADER_GAUSSIAN_BLUR, NONE, shaders/gaussian_blur.wgsl, "Gaussian Blur Shader" SHADER_CNN_ACTIVATION, NONE, shaders/cnn/cnn_activation.wgsl, "CNN Activation Functions" +SHADER_CNN_CONV1X1, NONE, shaders/cnn/cnn_conv1x1.wgsl, "CNN 1x1 Convolution" SHADER_CNN_CONV3X3, NONE, shaders/cnn/cnn_conv3x3.wgsl, "CNN 3x3 Convolution" SHADER_CNN_CONV5X5, NONE, shaders/cnn/cnn_conv5x5.wgsl, "CNN 5x5 Convolution" SHADER_CNN_CONV7X7, NONE, shaders/cnn/cnn_conv7x7.wgsl, "CNN 7x7 Convolution" diff --git a/workspaces/main/shaders/cnn/cnn_conv1x1.wgsl b/workspaces/main/shaders/cnn/cnn_conv1x1.wgsl index d468182..f77cfa8 100644 --- a/workspaces/main/shaders/cnn/cnn_conv1x1.wgsl +++ b/workspaces/main/shaders/cnn/cnn_conv1x1.wgsl @@ -44,7 +44,7 @@ fn cnn_conv1x1_7to4_src( ) -> vec4<f32> { let step = 1.0 / resolution; - let original = (textureSample(tex, samp, uv) - 0.5) * 2.0; + var original = (textureSample(tex, samp, uv) - 0.5) * 2.0; let gray = dot(original.rgb, vec3<f32>(0.2126, 0.7152, 0.0722)); let uv_norm = (uv - 0.5) * 2.0; let in1 = vec4<f32>(uv_norm, gray, 1.0); @@ -55,7 +55,7 @@ fn cnn_conv1x1_7to4_src( for (var dy = -0; dy <= 0; dy++) { for (var dx = -0; dx <= 0; dx++) { let offset = vec2<f32>(f32(dx), f32(dy)) * step; - let rgbd = (textureSample(tex, samp, uv + offset) - 0.5) * 2.0; + var rgbd = (textureSample(tex, samp, uv + offset) - 0.5) * 2.0; sum.r += dot(weights[pos+0], rgbd) + dot(weights[pos+1], in1); sum.g += dot(weights[pos+2], rgbd) + dot(weights[pos+3], in1); diff --git a/workspaces/main/shaders/cnn/cnn_conv3x3.wgsl b/workspaces/main/shaders/cnn/cnn_conv3x3.wgsl index 48bb392..f7d11b1 100644 --- a/workspaces/main/shaders/cnn/cnn_conv3x3.wgsl +++ b/workspaces/main/shaders/cnn/cnn_conv3x3.wgsl @@ -1,33 +1,26 @@ // 3x3 convolution (vec4-optimized) -// Source layers: 7→4 channels (RGBD output) -// Assumes 'tex' (the input) is *not* normalized to [-1,1], but is [0,1] -// UV coordinates remain in [0,1] and are normalized internally -// weights: array<vec4<f32>, 72> (9 pos × 4 ch × 2 vec4) -fn cnn_conv3x3_7to4_src( +// Inner layers: 7→4 channels (vec4-optimized) +// Assumes 'tex' is already normalized to [-1,1] +fn cnn_conv3x3_7to4( tex: texture_2d<f32>, samp: sampler, uv: vec2<f32>, resolution: vec2<f32>, + gray: f32, weights: array<vec4<f32>, 72> ) -> vec4<f32> { let step = 1.0 / resolution; - - // Compute grayscale from original (converted in [-1,1]) - let original = (textureSample(tex, samp, uv) - 0.5) * 2.0; - let gray = dot(original.rgb, vec3<f32>(0.2126, 0.7152, 0.0722)); - - // Normalize UV to [-1,1] let uv_norm = (uv - 0.5) * 2.0; - let in1 = vec4<f32>(uv_norm, gray, 1.0); var sum = vec4<f32>(0.0); - var pos = 0; + for (var dy = -1; dy <= 1; dy++) { for (var dx = -1; dx <= 1; dx++) { let offset = vec2<f32>(f32(dx), f32(dy)) * step; - let rgbd = (textureSample(tex, samp, uv + offset) - .5) * 2.0; + let rgbd = textureSample(tex, samp, uv + offset); + let in1 = vec4<f32>(uv_norm, gray, 1.0); sum.r += dot(weights[pos+0], rgbd) + dot(weights[pos+1], in1); sum.g += dot(weights[pos+2], rgbd) + dot(weights[pos+3], in1); @@ -40,31 +33,29 @@ fn cnn_conv3x3_7to4_src( return sum; } -// Inner layers: 7→4 channels (vec4-optimized) -// Assumes 'tex' is already normalized to [-1,1] -// UV coordinates remain in [0,1] and are normalized internally -// weights: array<vec4<f32>, 72> (9 pos × 4 ch × 2 vec4) -fn cnn_conv3x3_7to4( +// Source layer: 7→4 channels (vec4-optimized) +// Normalizes [0,1] input to [-1,1] internally +fn cnn_conv3x3_7to4_src( tex: texture_2d<f32>, samp: sampler, uv: vec2<f32>, resolution: vec2<f32>, - gray: f32, weights: array<vec4<f32>, 72> ) -> vec4<f32> { let step = 1.0 / resolution; - // Normalize UV to [-1,1] + let original = (textureSample(tex, samp, uv) - 0.5) * 2.0; + let gray = dot(original.rgb, vec3<f32>(0.2126, 0.7152, 0.0722)); let uv_norm = (uv - 0.5) * 2.0; + let in1 = vec4<f32>(uv_norm, gray, 1.0); var sum = vec4<f32>(0.0); - var pos = 0; + for (var dy = -1; dy <= 1; dy++) { for (var dx = -1; dx <= 1; dx++) { let offset = vec2<f32>(f32(dx), f32(dy)) * step; - let rgbd = textureSample(tex, samp, uv + offset); - let in1 = vec4<f32>(uv_norm, gray, 1.0); + let rgbd = (textureSample(tex, samp, uv + offset) - 0.5) * 2.0; sum.r += dot(weights[pos+0], rgbd) + dot(weights[pos+1], in1); sum.g += dot(weights[pos+2], rgbd) + dot(weights[pos+3], in1); @@ -79,8 +70,7 @@ fn cnn_conv3x3_7to4( // Final layer: 7→1 channel (vec4-optimized) // Assumes 'tex' is already normalized to [-1,1] -// UV coordinates remain in [0,1] and are normalized internally -// weights: array<vec4<f32>, 18> (9 pos × 2 vec4) +// Returns raw sum (activation applied at call site) fn cnn_conv3x3_7to1( tex: texture_2d<f32>, samp: sampler, @@ -90,14 +80,12 @@ fn cnn_conv3x3_7to1( weights: array<vec4<f32>, 18> ) -> f32 { let step = 1.0 / resolution; - - // Normalize UV to [-1,1] let uv_norm = (uv - 0.5) * 2.0; let in1 = vec4<f32>(uv_norm, gray, 1.0); var sum = 0.0; - var pos = 0; + for (var dy = -1; dy <= 1; dy++) { for (var dx = -1; dx <= 1; dx++) { let offset = vec2<f32>(f32(dx), f32(dy)) * step; diff --git a/workspaces/main/shaders/cnn/cnn_layer.wgsl b/workspaces/main/shaders/cnn/cnn_layer.wgsl index 73816c6..e629cb2 100644 --- a/workspaces/main/shaders/cnn/cnn_layer.wgsl +++ b/workspaces/main/shaders/cnn/cnn_layer.wgsl @@ -32,7 +32,7 @@ struct CNNLayerParams { let uv = (p.xy - 0.5) / (uniforms.resolution - 1.0); let original_raw = textureSample(original_input, smplr, uv); let original = (original_raw - 0.5) * 2.0; // Normalize to [-1,1] - let gray = dot(original.rgb, vec3<f32>(0.2126, 0.7152, 0.0722)); + let gray = (dot(original_raw.rgb, vec3<f32>(0.2126, 0.7152, 0.0722)) - 0.5) * 2.0; var result = vec4<f32>(0.0); // Layer 0: 7→4 (RGBD output, normalizes [0,1] input) diff --git a/workspaces/main/shaders/cnn/cnn_weights_generated.wgsl b/workspaces/main/shaders/cnn/cnn_weights_generated.wgsl index b0ea94a..a2a465c 100644 --- a/workspaces/main/shaders/cnn/cnn_weights_generated.wgsl +++ b/workspaces/main/shaders/cnn/cnn_weights_generated.wgsl @@ -2,173 +2,173 @@ // DO NOT EDIT - Generated by train_cnn.py const weights_layer0: array<vec4<f32>, 72> = array( - vec4<f32>(-0.044026, 0.047628, -0.063265, 0.218504), - vec4<f32>(-0.190022, -0.135119, -0.081008, 0.099647), - vec4<f32>(-0.283728, -0.120157, -0.016922, 0.053865), - vec4<f32>(0.086367, -0.126319, -0.150105, 0.182299), - vec4<f32>(0.202147, 0.136897, 0.107852, -0.172833), - vec4<f32>(0.064442, -0.233385, -0.018957, -0.228280), - vec4<f32>(0.071521, 0.098132, -0.040425, -0.063967), - vec4<f32>(0.165120, 0.211831, 0.059642, -0.057744), - vec4<f32>(0.274886, 0.228993, 0.188158, 0.205993), - vec4<f32>(0.075958, 0.041069, 0.387262, 0.099647), - vec4<f32>(0.147526, 0.113838, 0.063860, 0.094863), - vec4<f32>(0.019145, -0.029763, 0.182342, 0.182299), - vec4<f32>(-0.043916, 0.052574, 0.111200, -0.222292), - vec4<f32>(-0.105018, -0.183294, -0.101293, -0.228280), - vec4<f32>(-0.226260, -0.126595, -0.194007, -0.232597), - vec4<f32>(-0.046487, 0.081828, -0.265402, -0.057744), - vec4<f32>(0.157029, 0.267859, 0.601152, 0.075284), - vec4<f32>(-0.020990, -0.051241, 0.225214, 0.099647), - vec4<f32>(0.063772, 0.069126, 0.113609, 0.160308), - vec4<f32>(0.028664, -0.008940, 0.121347, 0.182299), - vec4<f32>(-0.011553, 0.015435, 0.024504, -0.185267), - vec4<f32>(-0.204193, -0.133882, -0.136576, -0.228280), - vec4<f32>(-0.129196, 0.035281, -0.257606, -0.228596), - vec4<f32>(-0.208470, 0.177381, -0.007807, -0.057744), - vec4<f32>(-0.167317, -0.116130, -0.294129, 0.148693), - vec4<f32>(-0.034772, -0.031158, -0.007236, 0.099647), - vec4<f32>(-0.027831, 0.042411, -0.088279, 0.096020), - vec4<f32>(0.057835, 0.021072, 0.016300, 0.182299), - vec4<f32>(0.023852, 0.054272, 0.095647, -0.064063), - vec4<f32>(-0.092098, -0.274072, 0.102436, -0.228280), - vec4<f32>(-0.062181, -0.175155, -0.084286, -0.254635), - vec4<f32>(-0.021370, -0.054084, -0.094507, -0.057744), - vec4<f32>(0.163740, 0.418951, 0.236017, 0.168628), - vec4<f32>(-0.072125, -0.004540, 0.243056, 0.099647), - vec4<f32>(0.137025, 0.252152, 0.089128, 0.212421), - vec4<f32>(-0.111771, -0.086444, 0.200819, 0.182299), - vec4<f32>(-0.111774, -0.136604, 0.106531, -0.035990), - vec4<f32>(-0.104085, -0.185459, -0.028727, -0.228280), - vec4<f32>(-0.195858, -0.185688, -0.057940, -0.110030), - vec4<f32>(0.119684, 0.015679, -0.282928, -0.057744), - vec4<f32>(0.182249, 0.183774, 0.485198, 0.283122), - vec4<f32>(0.073703, -0.066022, 0.369654, 0.099647), - vec4<f32>(0.153869, 0.214244, 0.123994, 0.015235), - vec4<f32>(-0.032879, -0.127768, 0.153828, 0.182299), - vec4<f32>(0.020066, -0.187911, -0.002227, -0.188773), - vec4<f32>(-0.018035, -0.176750, 0.025871, -0.228280), - vec4<f32>(0.003240, -0.110074, -0.137812, -0.099725), - vec4<f32>(-0.030633, -0.135231, 0.025956, -0.057744), - vec4<f32>(-0.362614, -0.213325, -0.263322, 0.096670), - vec4<f32>(-0.032143, 0.081475, -0.343777, 0.099647), - vec4<f32>(-0.297917, -0.083748, -0.133821, 0.091547), - vec4<f32>(-0.037656, 0.022276, -0.011297, 0.182299), - vec4<f32>(0.161341, 0.086857, 0.165727, -0.090049), - vec4<f32>(-0.081491, -0.282614, 0.025270, -0.228280), - vec4<f32>(0.090399, 0.050758, 0.107328, -0.038184), - vec4<f32>(0.070251, 0.011528, -0.091525, -0.057744), - vec4<f32>(-0.056355, -0.009971, -0.150000, 0.235577), - vec4<f32>(-0.095561, -0.065592, -0.089876, 0.099647), - vec4<f32>(0.091840, 0.128219, -0.083141, 0.169319), - vec4<f32>(-0.046781, 0.121648, 0.103069, 0.182299), - vec4<f32>(-0.096114, -0.144242, 0.084139, -0.106471), - vec4<f32>(-0.027582, -0.292333, 0.076865, -0.228280), - vec4<f32>(0.075125, 0.031164, 0.130597, -0.157298), - vec4<f32>(-0.056810, -0.046527, 0.091355, -0.057744), - vec4<f32>(-0.187192, -0.008480, -0.099564, 0.320084), - vec4<f32>(-0.023413, 0.142330, -0.207555, 0.099647), - vec4<f32>(0.060672, -0.047472, 0.057659, 0.195330), - vec4<f32>(0.092087, 0.119028, -0.038835, 0.182299), - vec4<f32>(-0.008512, 0.075632, 0.019646, -0.134091), - vec4<f32>(0.017238, -0.226524, -0.049809, -0.228280), - vec4<f32>(0.026540, 0.106392, 0.130047, -0.184493), - vec4<f32>(-0.176890, -0.118572, 0.130286, -0.057744) + vec4<f32>(-0.064365, 0.036971, -0.002396, 0.109771), + vec4<f32>(-0.072773, -0.119603, -0.123951, 0.273301), + vec4<f32>(-0.236017, 0.095366, -0.091895, 0.268624), + vec4<f32>(-0.079571, 0.007580, -0.058172, 0.170957), + vec4<f32>(0.112710, 0.131221, 0.168938, -0.119702), + vec4<f32>(0.007403, -0.219214, 0.131916, 0.006009), + vec4<f32>(-0.221084, -0.054396, 0.055713, 0.150345), + vec4<f32>(0.032674, 0.016578, 0.033386, 0.260089), + vec4<f32>(0.169524, 0.374150, 0.225601, 0.213908), + vec4<f32>(-0.137716, -0.103676, 0.367652, 0.273301), + vec4<f32>(0.115163, 0.324975, 0.177730, 0.235134), + vec4<f32>(0.027009, -0.008278, 0.299946, 0.170957), + vec4<f32>(-0.011976, -0.130614, 0.041849, -0.063980), + vec4<f32>(-0.098651, -0.113425, -0.001081, 0.006009), + vec4<f32>(0.078393, 0.067415, 0.032002, 0.036014), + vec4<f32>(0.024718, -0.130110, 0.077101, 0.260089), + vec4<f32>(0.218265, 0.276989, 0.397049, 0.167719), + vec4<f32>(0.103226, -0.044606, 0.215080, 0.273301), + vec4<f32>(-0.039886, 0.070243, 0.398847, 0.200997), + vec4<f32>(0.065451, 0.010958, 0.123146, 0.170957), + vec4<f32>(-0.137112, -0.237932, -0.104421, 0.001620), + vec4<f32>(-0.124844, -0.134461, -0.069051, 0.006009), + vec4<f32>(0.208783, 0.066374, 0.311512, 0.247299), + vec4<f32>(0.050053, 0.085183, 0.228604, 0.260089), + vec4<f32>(0.026044, -0.080923, -0.109507, 0.237600), + vec4<f32>(-0.110202, 0.117810, -0.098755, 0.273301), + vec4<f32>(-0.105352, -0.026309, 0.015819, 0.201850), + vec4<f32>(0.071904, -0.018016, -0.059729, 0.170957), + vec4<f32>(0.184291, -0.040453, -0.005354, -0.180611), + vec4<f32>(0.048572, -0.114292, 0.055505, 0.006009), + vec4<f32>(-0.188638, -0.003004, -0.117432, 0.148765), + vec4<f32>(-0.014862, -0.119666, -0.033349, 0.260089), + vec4<f32>(0.062853, 0.098261, 0.253355, 0.213134), + vec4<f32>(-0.115418, 0.123752, 0.108521, 0.273301), + vec4<f32>(0.341238, 0.300137, 0.254389, 0.272310), + vec4<f32>(0.004007, 0.063720, 0.191673, 0.170957), + vec4<f32>(0.068615, -0.206535, -0.003347, -0.135647), + vec4<f32>(0.067868, -0.211995, -0.024734, 0.006009), + vec4<f32>(0.251922, 0.099100, 0.270495, 0.051887), + vec4<f32>(-0.006790, 0.086298, 0.195115, 0.260089), + vec4<f32>(0.142018, 0.148073, 0.222099, 0.154902), + vec4<f32>(0.127208, 0.015852, 0.117386, 0.273301), + vec4<f32>(0.225823, 0.268716, 0.337170, 0.085034), + vec4<f32>(-0.019814, -0.022082, 0.102247, 0.170957), + vec4<f32>(-0.033797, -0.054259, -0.045772, -0.171449), + vec4<f32>(-0.088982, -0.147155, -0.081125, 0.006009), + vec4<f32>(0.143216, 0.161192, 0.085559, 0.114788), + vec4<f32>(0.019867, -0.094182, 0.070013, 0.260089), + vec4<f32>(-0.132244, -0.208928, -0.233332, 0.166794), + vec4<f32>(0.009434, 0.046124, -0.176356, 0.273301), + vec4<f32>(-0.262216, -0.289356, -0.361782, 0.204387), + vec4<f32>(-0.049280, -0.054182, -0.178049, 0.170957), + vec4<f32>(0.289035, 0.027330, 0.288493, -0.185146), + vec4<f32>(-0.078621, -0.097178, 0.092377, 0.006009), + vec4<f32>(-0.149584, -0.037569, -0.080982, 0.130455), + vec4<f32>(0.048648, -0.020057, -0.104357, 0.260089), + vec4<f32>(0.069915, -0.044736, -0.214734, 0.125458), + vec4<f32>(0.080929, -0.040713, -0.096242, 0.273301), + vec4<f32>(0.125697, 0.169932, -0.069403, 0.099432), + vec4<f32>(-0.097684, 0.046785, 0.010933, 0.170957), + vec4<f32>(0.123145, 0.053711, 0.183947, -0.086836), + vec4<f32>(-0.121956, -0.181722, 0.100617, 0.006009), + vec4<f32>(0.027013, 0.153177, 0.023556, 0.151352), + vec4<f32>(-0.154991, -0.001818, 0.136445, 0.260089), + vec4<f32>(-0.036641, -0.003436, -0.066425, 0.123169), + vec4<f32>(-0.038525, -0.054057, 0.067107, 0.273301), + vec4<f32>(0.008664, -0.173642, 0.053332, 0.226703), + vec4<f32>(-0.079667, -0.041206, -0.013324, 0.170957), + vec4<f32>(-0.120826, -0.216758, -0.047136, -0.029416), + vec4<f32>(-0.175910, -0.127141, 0.025666, 0.006009), + vec4<f32>(0.033025, -0.033796, -0.034294, 0.249376), + vec4<f32>(0.045212, 0.018668, -0.083031, 0.260089) ); const weights_layer1: array<vec4<f32>, 72> = array( - vec4<f32>(-0.550220, -0.217290, 0.172294, 0.131499), - vec4<f32>(0.087800, -0.013060, -0.012493, -0.118784), - vec4<f32>(0.414634, 0.110057, -0.148279, -0.164066), - vec4<f32>(-0.067937, 0.015316, 0.110874, 0.170621), - vec4<f32>(0.202338, 0.237349, -0.198003, -0.018883), - vec4<f32>(0.096353, -0.033149, -0.075566, -0.012686), - vec4<f32>(0.540664, -0.019039, -0.187934, -0.017433), - vec4<f32>(-0.093819, -0.032389, -0.075676, -0.045023), - vec4<f32>(-0.454297, -0.094218, 0.153827, 0.131527), - vec4<f32>(-0.075634, 0.034528, -0.179401, -0.118784), - vec4<f32>(0.250372, 0.110398, -0.088627, -0.247025), - vec4<f32>(-0.017120, -0.036461, 0.085890, 0.170621), - vec4<f32>(0.157555, 0.055556, -0.209897, -0.072719), - vec4<f32>(0.009895, 0.007367, -0.068084, -0.012686), - vec4<f32>(0.470887, -0.026009, -0.130709, -0.190289), - vec4<f32>(0.042477, 0.099113, 0.024500, -0.045023), - vec4<f32>(0.004836, -0.032572, 0.196070, 0.127080), - vec4<f32>(-0.094058, -0.110672, -0.099101, -0.118784), - vec4<f32>(0.251474, 0.026879, -0.072475, -0.221995), - vec4<f32>(0.004570, 0.095751, 0.241107, 0.170621), - vec4<f32>(-0.039411, 0.212567, -0.146248, -0.181935), - vec4<f32>(-0.048444, -0.100834, -0.040524, -0.012686), - vec4<f32>(0.279418, 0.027548, -0.172508, -0.243648), - vec4<f32>(-0.072080, 0.084367, -0.125451, -0.045023), - vec4<f32>(-0.762915, -0.254977, 0.125205, 0.235909), - vec4<f32>(-0.038104, -0.075417, -0.146520, -0.118784), - vec4<f32>(0.339557, 0.229433, -0.050644, -0.131365), - vec4<f32>(-0.129065, -0.050450, 0.095530, 0.170621), - vec4<f32>(0.256145, 0.078530, -0.183619, -0.206955), - vec4<f32>(-0.050830, -0.048353, 0.147183, -0.012686), - vec4<f32>(0.581766, -0.000920, -0.038922, -0.233026), - vec4<f32>(0.054928, 0.125764, 0.045640, -0.045023), - vec4<f32>(-0.656914, -0.193329, 0.142118, 0.112047), - vec4<f32>(0.055497, -0.066662, -0.127356, -0.118784), - vec4<f32>(0.381869, 0.121043, -0.193973, -0.053474), - vec4<f32>(-0.135338, 0.102084, 0.047766, 0.170621), - vec4<f32>(0.157373, 0.108581, -0.056749, -0.190385), - vec4<f32>(0.059588, -0.079601, 0.116529, -0.012686), - vec4<f32>(0.615891, -0.003999, -0.044733, -0.233113), - vec4<f32>(-0.013833, 0.158467, 0.069948, -0.045023), - vec4<f32>(-0.370423, -0.001432, 0.188960, 0.234769), - vec4<f32>(-0.067498, 0.029365, -0.139773, -0.118784), - vec4<f32>(0.397838, 0.223050, -0.266812, -0.218634), - vec4<f32>(0.026448, -0.063605, 0.172133, 0.170621), - vec4<f32>(0.091567, 0.082715, -0.157309, -0.080454), - vec4<f32>(0.164888, -0.075561, 0.031425, -0.012686), - vec4<f32>(0.211481, 0.062354, -0.139909, -0.166563), - vec4<f32>(-0.052356, 0.195890, 0.002621, -0.045023), - vec4<f32>(-0.722615, -0.098662, 0.050131, 0.208800), - vec4<f32>(0.015331, 0.048369, 0.020104, -0.118784), - vec4<f32>(0.510514, 0.267948, -0.167085, -0.073239), - vec4<f32>(0.013588, 0.029198, 0.011374, 0.170621), - vec4<f32>(0.434384, 0.234026, -0.016845, -0.053492), - vec4<f32>(0.048535, -0.021576, 0.119118, -0.012686), - vec4<f32>(0.504202, 0.059151, -0.076747, -0.100093), - vec4<f32>(0.065644, 0.111175, 0.023457, -0.045023), - vec4<f32>(-0.589185, -0.167617, 0.017656, 0.154815), - vec4<f32>(-0.068627, 0.014695, -0.001009, -0.118784), - vec4<f32>(0.477531, 0.147435, -0.190240, -0.063934), - vec4<f32>(0.092949, 0.164573, 0.090508, 0.170621), - vec4<f32>(0.216511, 0.208554, -0.094266, -0.180448), - vec4<f32>(0.027521, -0.009373, 0.038030, -0.012686), - vec4<f32>(0.373956, 0.047154, 0.029470, -0.198022), - vec4<f32>(0.054003, 0.064209, 0.009144, -0.045023), - vec4<f32>(-0.357275, -0.065495, 0.150350, 0.111417), - vec4<f32>(0.071622, -0.082439, -0.197320, -0.118784), - vec4<f32>(0.422302, 0.061022, -0.108647, -0.244366), - vec4<f32>(-0.058943, 0.114681, -0.041863, 0.170621), - vec4<f32>(0.238027, -0.022158, 0.021928, -0.176080), - vec4<f32>(-0.059569, 0.164817, 0.009572, -0.012686), - vec4<f32>(0.285508, -0.027414, -0.011562, -0.042465), - vec4<f32>(0.125779, 0.231493, -0.069255, -0.045023) + vec4<f32>(0.254979, 0.244192, -0.324097, 0.193675), + vec4<f32>(-0.216693, -0.037426, 0.137290, 0.124129), + vec4<f32>(-0.237225, -0.270981, 0.141186, -0.200254), + vec4<f32>(0.112698, -0.065897, -0.043789, -0.017097), + vec4<f32>(-0.003851, 0.048306, -0.180819, 0.001167), + vec4<f32>(-0.096826, -0.121978, 0.068031, 0.155805), + vec4<f32>(-0.020896, -0.321049, 0.236152, -0.117393), + vec4<f32>(0.166722, 0.114709, -0.040971, -0.035307), + vec4<f32>(0.086793, 0.348764, -0.262425, 0.388516), + vec4<f32>(-0.003484, 0.049151, 0.089976, 0.124129), + vec4<f32>(-0.080785, -0.197224, 0.172738, -0.199285), + vec4<f32>(-0.056783, -0.079022, 0.002687, -0.017097), + vec4<f32>(0.230001, 0.195060, -0.237831, 0.213528), + vec4<f32>(0.010828, -0.175885, 0.075520, 0.155805), + vec4<f32>(-0.048712, -0.175662, 0.176246, -0.067224), + vec4<f32>(-0.048118, 0.067163, -0.114919, -0.035307), + vec4<f32>(0.134012, 0.106994, -0.240137, 0.317381), + vec4<f32>(-0.209563, 0.027607, 0.150277, 0.124129), + vec4<f32>(0.009538, -0.103125, 0.068209, -0.046492), + vec4<f32>(0.007195, -0.039193, -0.100942, -0.017097), + vec4<f32>(0.052864, 0.280180, -0.209586, 0.237769), + vec4<f32>(0.023231, 0.038595, -0.071840, 0.155805), + vec4<f32>(-0.141548, -0.233184, 0.023925, -0.019451), + vec4<f32>(0.067484, 0.057416, 0.051800, -0.035307), + vec4<f32>(0.087521, 0.214685, -0.282225, 0.424372), + vec4<f32>(-0.056052, -0.156497, 0.023169, 0.124129), + vec4<f32>(-0.258638, -0.149771, 0.183942, -0.260751), + vec4<f32>(0.148103, 0.129853, 0.012112, -0.017097), + vec4<f32>(0.010897, 0.133480, -0.192718, 0.252913), + vec4<f32>(-0.088200, -0.138182, -0.005718, 0.155805), + vec4<f32>(-0.209273, -0.180554, 0.232975, -0.064025), + vec4<f32>(0.040287, -0.104819, 0.049971, -0.035307), + vec4<f32>(0.107734, 0.238235, -0.326000, 0.247477), + vec4<f32>(-0.181079, -0.113835, 0.103895, 0.124129), + vec4<f32>(-0.101286, -0.185177, 0.277056, -0.084833), + vec4<f32>(0.106763, 0.107663, -0.073146, -0.017097), + vec4<f32>(-0.005552, 0.177759, -0.029719, 0.060847), + vec4<f32>(0.161847, -0.061512, 0.132996, 0.155805), + vec4<f32>(-0.257929, -0.377618, 0.130284, -0.159584), + vec4<f32>(0.093874, -0.134273, -0.030173, -0.035307), + vec4<f32>(0.214204, 0.298440, -0.217456, 0.215751), + vec4<f32>(-0.122887, -0.152684, 0.125991, 0.124129), + vec4<f32>(-0.183399, -0.242007, 0.076115, -0.234678), + vec4<f32>(0.097245, 0.104651, 0.037698, -0.017097), + vec4<f32>(0.119585, 0.291845, -0.081658, 0.209448), + vec4<f32>(0.205421, -0.010635, -0.016784, 0.155805), + vec4<f32>(-0.097006, -0.123679, 0.222243, -0.211022), + vec4<f32>(0.092569, -0.032077, -0.082684, -0.035307), + vec4<f32>(0.225746, 0.263205, -0.388231, 0.342453), + vec4<f32>(-0.002536, 0.050069, 0.130625, 0.124129), + vec4<f32>(-0.238043, -0.051000, 0.113924, -0.204495), + vec4<f32>(0.020115, -0.106413, 0.127491, -0.017097), + vec4<f32>(0.194054, 0.126466, -0.102551, 0.263437), + vec4<f32>(-0.072873, 0.018799, -0.015787, 0.155805), + vec4<f32>(-0.042832, -0.173311, 0.147956, -0.126879), + vec4<f32>(0.128747, -0.134294, 0.111303, -0.035307), + vec4<f32>(0.243550, 0.288997, -0.250508, 0.252519), + vec4<f32>(-0.089251, -0.111297, 0.112490, 0.124129), + vec4<f32>(-0.223589, -0.095261, 0.145935, -0.139099), + vec4<f32>(0.156093, -0.096579, -0.006812, -0.017097), + vec4<f32>(0.005154, 0.251212, -0.107685, 0.143674), + vec4<f32>(-0.017334, -0.082075, 0.088612, 0.155805), + vec4<f32>(-0.199050, -0.333849, 0.219760, -0.079489), + vec4<f32>(0.127082, 0.103959, -0.133810, -0.035307), + vec4<f32>(0.297919, 0.254741, -0.134594, 0.088785), + vec4<f32>(-0.095642, -0.044997, 0.167123, 0.124129), + vec4<f32>(-0.004141, -0.243894, 0.176584, -0.157082), + vec4<f32>(0.068545, -0.112190, -0.117632, -0.017097), + vec4<f32>(0.045947, 0.055152, -0.161696, 0.018504), + vec4<f32>(0.197872, 0.018991, -0.106403, 0.155805), + vec4<f32>(-0.190943, -0.075032, 0.069981, -0.145124), + vec4<f32>(0.012619, 0.059838, -0.139603, -0.035307) ); const weights_layer2: array<vec4<f32>, 18> = array( - vec4<f32>(-0.005880, 0.219661, 0.076830, 0.031369), - vec4<f32>(0.019447, -0.157183, -0.072867, 0.019890), - vec4<f32>(-0.190992, 0.094952, 0.243652, 0.101839), - vec4<f32>(-0.073730, -0.097028, 0.130087, 0.019890), - vec4<f32>(-0.048538, 0.255178, 0.072403, 0.162183), - vec4<f32>(0.068563, -0.177353, -0.031857, 0.019890), - vec4<f32>(-0.075366, 0.082456, 0.196628, 0.101995), - vec4<f32>(-0.061104, -0.091889, -0.083985, 0.019890), - vec4<f32>(-0.249014, 0.051544, 0.211691, -0.042091), - vec4<f32>(0.002831, 0.053599, 0.029920, 0.019890), - vec4<f32>(-0.048174, 0.040130, 0.219902, 0.065074), - vec4<f32>(0.034129, -0.058673, -0.094574, 0.019890), - vec4<f32>(-0.249925, 0.243446, 0.268119, 0.031839), - vec4<f32>(-0.151316, 0.014516, -0.058603, 0.019890), - vec4<f32>(-0.207769, 0.219873, 0.041389, 0.142059), - vec4<f32>(0.036077, 0.056158, -0.059980, 0.019890), - vec4<f32>(-0.100513, 0.210483, 0.012164, 0.071910), - vec4<f32>(0.130846, 0.074247, -0.018889, 0.019890) + vec4<f32>(0.245902, -0.217970, 0.056291, -0.070807), + vec4<f32>(0.016448, -0.018901, -0.124061, -0.041984), + vec4<f32>(0.031777, -0.024354, 0.057418, -0.191855), + vec4<f32>(0.066501, -0.005719, 0.060455, -0.041984), + vec4<f32>(0.152728, -0.171275, 0.042248, -0.104487), + vec4<f32>(0.080702, -0.084644, 0.121606, -0.041984), + vec4<f32>(0.250396, -0.225428, 0.240979, -0.069204), + vec4<f32>(-0.025812, -0.029050, 0.050136, -0.041984), + vec4<f32>(0.042793, -0.011392, 0.222963, -0.241601), + vec4<f32>(-0.134324, -0.071387, 0.108891, -0.041984), + vec4<f32>(0.130457, -0.123356, 0.002928, -0.122289), + vec4<f32>(-0.059852, -0.166258, -0.062116, -0.041984), + vec4<f32>(0.171512, -0.030577, 0.234602, -0.193894), + vec4<f32>(-0.020420, -0.071602, -0.056219, -0.041984), + vec4<f32>(0.242776, -0.138304, 0.220627, -0.012853), + vec4<f32>(0.020668, -0.104949, -0.013328, -0.041984), + vec4<f32>(0.013987, -0.195309, 0.083045, -0.189454), + vec4<f32>(0.028755, -0.036818, 0.045813, -0.041984) ); |
