aelatgt / ethereal

MIT License
13 stars 6 forks source link

ethereal

An integrated toolkit for building spatially adaptive immersive interfaces

Package exports:

A bridge from the traditional 2D-web, into the immersive web.

This library rasterizes the DOM by allowing you to organize it into separate independently manipulable and interactive web layers, automatically directing immersive input back to the live DOM instance. A number of optimizations allow you to maintain a live link between the real DOM and it's counterpart within an immersive (i.e., webGL-backed) environment, including: individually hashed DOM layers and rasterized textures, real-time encoding to a compressed texture format w/ low memory footprint and fast GPU uploads, and persistence of compressed textures in client storage for quick retreival and minimal processing in subsequent sessions.

THREE.js Usage:

import {WebContainer3D, WebLayerManager} from '@etherealjs/web-layer/three'

WebLayerManager.intialize(renderer)

const webContainer = new WebContainer3D(el)
scene.add(webContainer)

@etherealjs/spatial-optimizer (wip)

A library designed for metaheuristic optimization of spatial variables and objectives

@etherealjs/spatial-adaptivity (wip)