(function(){ var TINT = 'rgba(217,235,243,0.97)'; var RADIUS = 35; var FEATHER = 0.0005; var MODE = 'trail'; var TRAIL_LIFETIME = 850; var SPAWN_INTERVAL = 15; var canvas = document.createElement('canvas'); canvas.style.cssText = 'position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1;'; document.body.appendChild(canvas); var ctx = canvas.getContext('2d'); function resize(){ var dpr = window.devicePixelRatio || 1; canvas.width = window.innerWidth * dpr; canvas.height = window.innerHeight * dpr; canvas.style.width = window.innerWidth + 'px'; canvas.style.height = window.innerHeight + 'px'; ctx.setTransform(dpr, 0, 0, dpr, 0, 0); } resize(); window.addEventListener('resize', resize); var points = []; var lastSpawn = 0; function addPoint(x, y){ var now = performance.now(); if (now - lastSpawn < SPAWN_INTERVAL) return; lastSpawn = now; points.push({ x: x, y: y, t: now }); } window.addEventListener('mousemove', function(e){ addPoint(e.clientX, e.clientY); }); window.addEventListener('touchmove', function(e){ var t = e.touches[0]; if (t) addPoint(t.clientX, t.clientY); }, { passive: true }); function draw(){ var now = performance.now(); var w = window.innerWidth, h = window.innerHeight; ctx.clearRect(0, 0, w, h); ctx.globalCompositeOperation = 'source-over'; ctx.fillStyle = TINT; ctx.fillRect(0, 0, w, h); ctx.globalCompositeOperation = 'destination-out'; points = points.filter(function(p){ return now - p.t < TRAIL_LIFETIME; }); points.forEach(function(p){ var age = (now - p.t) / TRAIL_LIFETIME; var alpha = 1 - age; var r = MODE === 'ripple' ? RADIUS * (0.15 + age * 0.9) : RADIUS * (1 - age * 0.3); var innerStop = MODE === 'ripple' ? Math.max(0, FEATHER - 0.2) : 0; var grad = ctx.createRadialGradient(p.x, p.y, r * innerStop, p.x, p.y, r); grad.addColorStop(0, 'rgba(0,0,0,' + alpha + ')'); grad.addColorStop(FEATHER, 'rgba(0,0,0,' + alpha + ')'); grad.addColorStop(1, 'rgba(0,0,0,0)'); ctx.fillStyle = grad; ctx.beginPath(); ctx.arc(p.x, p.y, r, 0, Math.PI * 2); ctx.fill(); }); requestAnimationFrame(draw); } requestAnimationFrame(draw); })();

portfolio

primate intelligence
anaco
gatlin robotics
axomind
operatic
acorn genetics

.


investing in early stage physical ai, supporting founders at the forefront of automation and robotics

email
linkedin


team

nima

advisors

shahin
saman
will




portfolio

.





supporting founders at the forefront of automation and robotics.

portfolio
primate ai
anaco
gatlin robotics
axomind
tba...


home

email
linkedin
team
subscribe

home

physical fund
investing in early stage physical ai, supporting founders at the forefront of automation and robotics

.

portfolio
primate intelligence
anaco
gatlin robotics
axomind
abraxas

.

email
linkedin
subscribe