ROUGH IDEAS INTO WORKING SOFTWARE
I'm Abdullah, a product engineer. Most of my work lives in the gap between what a product should be and what it takes to ship it: direction, architecture, and the follow-through to get both into production.
Lately that means AI products, developer tools, and the web platforms behind them. I care less about clever tech than about software that holds up: users understand it, and the team can keep building on it.
Some products need their first working version. Others need someone to untangle what's already there. Either way, I start from the real constraints and ship in small steps you can see.
void main() { vec4 pos = texture2D(uPositions, vUv); vec4 info = texture2D(uInfo, vUv); vec2 mouse = uMouse; float radius = length(pos.xy) * 1.0; float circularForce = 1. - smoothstep( 0.3, 1.4, pos.x - radius ); float angle = atan(pos.y, pos.x) - info.y * 0.3 * mix(0.5, 1., circularForce); float targetRadius = mix( info.x, 1.0, 0.5 + 0.45 * sin(angle * 2. + uTime * 0.6) ); radius += (targetRadius - radius) * mix(0.2, 0.5, circularForce); vec3 targetPos = vec3( cos(angle), sin(angle), 0.0 ) * radius; pos.xy += (targetPos.xy - pos.xy) * 0.01 * uMotionSpeed * uFrameScale; pos.xy += curl( pos.xyz * 4., uTime * 0.1, 0.1 ).xy * 0.0005 * uMotionSpeed * uFrameScale; float distToMouse = length(pos.xy - mouse); vec2 dir = normalize(pos.xy - mouse); if (uMouseClicked) { float influence = smoothstep( 0.5, 0.0, distToMouse ); vec2 tangent = vec2(-dir.y, dir.x); float spin = info.y * 2.0; pos.xy += tangent * 0.005 * spin * influence * uFrameScale; pos.xy -= dir * 0.001 * influence * uFrameScale; } else { pos.xy += dir * 0.01 * uFrameScale * smoothstep( 0.5, 0.0, distToMouse ); } gl_FragColor = vec4(pos.xy, 1.0, 1.0);}void main() { vec4 pos = texture2D(uPositions, vUv); vec4 info = texture2D(uInfo, vUv); vec2 mouse = uMouse; float radius = length(pos.xy) * 1.0; float circularForce = 1. - smoothstep( 0.3, 1.4, pos.x - radius );void main() {
vec4 pos = texture2D(uPositions, vUv);
vec4 info = texture2D(uInfo, vUv);
vec2 mouse = uMouse;
float radius = length(pos.xy) * 1.0;
float circularForce = 1. - smoothstep(
0.3,
1.4,
pos.x - radius
);
float angle = atan(pos.y, pos.x)
- info.y * 0.3 * mix(0.5, 1., circularForce);
float targetRadius = mix(
info.x,
1.0,
0.5 + 0.45 * sin(angle * 2. + uTime * 0.6)
);
radius += (targetRadius - radius)
* mix(0.2, 0.5, circularForce);
vec3 targetPos = vec3(
cos(angle),
sin(angle),
0.0
) * radius;
pos.xy += (targetPos.xy - pos.xy)
* 0.01
* uMotionSpeed
* uFrameScale;
pos.xy += curl(
pos.xyz * 4.,
uTime * 0.1,
0.1
).xy * 0.0005 * uMotionSpeed * uFrameScale;
float distToMouse = length(pos.xy - mouse);
vec2 dir = normalize(pos.xy - mouse);
if (uMouseClicked) {
float influence = smoothstep(
0.5,
0.0,
distToMouse
);
vec2 tangent = vec2(-dir.y, dir.x);
float spin = info.y * 2.0;
pos.xy += tangent * 0.005 * spin * influence * uFrameScale;
pos.xy -= dir * 0.001 * influence * uFrameScale;
} else {
pos.xy += dir * 0.01 * uFrameScale * smoothstep(
0.5,
0.0,
distToMouse
);
}
gl_FragColor = vec4(pos.xy, 1.0, 1.0);
}