summaryrefslogtreecommitdiff
path: root/workspaces/main/shaders
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-11 17:23:07 +0100
committerskal <pascal.massimino@gmail.com>2026-02-11 17:23:07 +0100
commit46e0935ba3b241dcd0e965e492ef8fa270b537ea (patch)
treea277ce8d7daa0ca6fa7cca7f757366a70767b7cc /workspaces/main/shaders
parent606a3e8027e901b5a3f9e68444d931982080bdd9 (diff)
update cnn code
Diffstat (limited to 'workspaces/main/shaders')
-rw-r--r--workspaces/main/shaders/cnn/cnn_conv1x1.wgsl4
-rw-r--r--workspaces/main/shaders/cnn/cnn_conv3x3.wgsl46
-rw-r--r--workspaces/main/shaders/cnn/cnn_layer.wgsl2
-rw-r--r--workspaces/main/shaders/cnn/cnn_weights_generated.wgsl324
4 files changed, 182 insertions, 194 deletions
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)
);