# noeidelon
Foxes dream of electron beams.
**noe** + **eidelon** _(n. a thing, an image, a reflection)_
https://art.mekanoe.com
## Artworks
<!--/INSERT/-->
## Development
`nix` to install bun... or do it globally.
`bun run .` to generate HTMLs
`bun serve` to serve them locally
`bun dev` if you're developing the templates for auto-generation.
### Infrastructure
- **Output generation**
- Bun renders TypeScript and GLSL to html/
- src/public/ is copied to html/
- This doubles as an "archival" system to preserve scuffedness
- .ply files are converted to JS typed arrays and Mesh objects
- .html files (and README.md) are generated from rendered TypeScript main.ts files.
- **Platform**
- WebGLApp provides render loop, canvas, and other stuff
- Behavior provides automatic registration of WebGLApp events (like Unity MonoBehaviors)
- Shader provides GLSL shader tooling
- Mesh is a DTO with vertex position, color, UVs, and faces
- MeshRenderer sends WebGL instructions for rendering a Mesh object with a Shader object.
- Renderable is a container of a Transform and Renderer (like a Unity GameObject)
- Transform is a tuplet of a position vec3, rotation quat, and scale vec3; to be used anywhere needed.
- Scene is a group of Renderables
## License
Code and images are licensed under the AGPLv3 license. See [LICENSE](./LICENSE) for more information.