shfty-elysian / elysian-legacy

Field function compiler
0 stars 0 forks source link

Elysian

A DSL, IR, transpiler, interpreter, and toolkit for building signed distance fields and converting them into concrete assets.

Distance Fields 101

Project History

Elysian has been quietly in development for some time now:

GL analytical raytracer

Adjacent; not SDF, but seeded an interest in analytical geometry and spacewarping

Godot prototype

Bevy prototype

Imperative rust-gpu prototype

Worked, but language support too limited to realize the necessary abstractions

Type-Level Functional Programming prototype

Functional Programming rust-gpu prototype

Elysian

Elysian Is A...

Elysian Is Not A...

It has some crossover with these domains, but is a higher-order solution for generating the associated data instead of creating it directly. To put it another way, Elysian is the foundation you might build any of the above on top of.

Elysian is applicable in...

Advantages

Declarative

Procedural

Analytical

Lossless

General

Higher-order

Extensible

Features

Common Concerns

You have to hand-code your entire scene when using SDFs, like Shadertoy

Calculating extra data like normals is expensive

3D SDFs are slow because you have to raymarch them

Generated meshes are prone to artifacts

There's no way to rig or animate an SDF-based model

Relevant Projects

Media Molecule's Dreams

Adobe 3D modeler

VL.Fuse

MagicaCSG

MudBun

msdfgen

diagrams