webgl
import { EquirectangularReflectionMapping, HalfFloatType, Texture } from "three"
import { UltraHDRLoader } from "three/examples/jsm/Addons.js"
const loader = new UltraHDRLoader()
// Fix iPhone 15, iOS 18.3: THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.
loader.setDataType(HalfFloatType)
const envMap = await new Promise((resolve: (texture: Texture) => void) => {
loader.load("/assets/envmap.jpg", function (texture) {
texture.mapping = EquirectangularReflectionMapping
texture.needsUpdate = true
resolve(texture)
})
})
scene.environment = envMap
Ultra HDR

synthcity
Infinite procedural cyberpunk world

Puddle in rain
Real time puddle in rain

Active Theory

Active Theory

Active Theory

Active Theory

basement.studio