<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:media="http://search.yahoo.com/mrss/"
	
	>

<channel>
	<title>Nimā Bahre(h)mand</title>
	<link>https://nimabahrehmand.com</link>
	<description>Nimā Bahre(h)mand</description>
	<pubDate>Sun, 12 Oct 2025 15:52:39 +0000</pubDate>
	<generator>https://nimabahrehmand.com</generator>
	<language>en</language>
	
		
	<item>
		<title>theia</title>
				
		<link>https://nimabahrehmand.com/theia</link>

		<pubDate>Sun, 12 Oct 2025 15:52:39 +0000</pubDate>

		<dc:creator>Nimā Bahre(h)mand</dc:creator>

		<guid isPermaLink="true">https://nimabahrehmand.com/theia</guid>

		<description>

theia_Pzz

  html,body{height:100%;margin:0;overflow:hidden;background:transparent}
  #app{position:fixed;inset:0;background:transparent}
  canvas{display:block}
  #caption{
    position:fixed; left:50%; bottom:10px; transform:translateX(-50%);
    pointer-events:none; user-select:none; -webkit-user-select:none;
  }




{
  "imports": {
    "three": "https://cdn.jsdelivr.net/npm/three@0.160.0/build/three.module.js",
    "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.160.0/examples/jsm/"
  }
}






import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';

const CONFIG={baseHeat:0.45,fitMargin:1.4,sigmaDays:120,cameraShake:0.08};
const FIRE={radius:0.45, intensity:1.25, speed:0.010, scale:1.45, shapelessAmp:0.065};

const CRISES=[{date:'2011-03-15',w:1.0},{date:'2015-03-26',w:1.0},{date:'2016-12-13',w:1.0},{date:'2020-08-04',w:0.9},{date:'2023-10-07',w:1.0},{date:'2024-02-01',w:1.0}];
const crisisMS=CRISES.map(e=&#62;({...e,t:Date.parse(e.date)}));
const SIGMA_MS=CONFIG.sigmaDays*24*3600*1000;

const container=document.getElementById('app');
const renderer=new THREE.WebGLRenderer({antialias:true,alpha:true,premultipliedAlpha:false});
renderer.setPixelRatio(Math.min(window.devicePixelRatio,2));
renderer.setSize(innerWidth,innerHeight);
renderer.setClearColor(0x000000,0);
container.appendChild(renderer.domElement);

const scene=new THREE.Scene();
const camera=new THREE.PerspectiveCamera(36,innerWidth/innerHeight,0.1,100);
const controls=new OrbitControls(camera,renderer.domElement);
controls.enableDamping=true;
controls.enablePan=false;
controls.minDistance=1.8;
controls.maxDistance=6.0;

scene.add(new THREE.HemisphereLight(0x0000ff,0x000022,1.2));
const dir=new THREE.DirectionalLight(0x3366ff,1.5);
dir.position.set(2,3,2);
scene.add(dir);

const base=new THREE.SphereGeometry(0.8,160,160);
const pos=base.attributes.position;
for(let i=0;i</description>
		
	</item>
		
	</channel>
</rss>