Savoiardi
Type-safe Three.js bindings for Gleam, part of the tiramisu game engine ecosystem.
Installation
gleam add savoiardi
Quick Start
import savoiardi
import gleam/option
pub fn main() {
let renderer = savoiardi.create_renderer(savoiardi.default_renderer_options())
let scene = savoiardi.create_scene()
|> savoiardi.set_scene_background_color(0x1a1a2e)
let camera = savoiardi.create_perspective_camera(75.0, 16.0 /. 9.0, 0.1, 1000.0)
let geometry = savoiardi.create_box_geometry(1.0, 1.0, 1.0)
let material = savoiardi.create_basic_material(0xff0000, False, 1.0, option.None)
let cube = savoiardi.create_mesh(geometry, material)
savoiardi.add_to_scene(scene: scene, object: cube)
savoiardi.render(renderer, scene, camera)
}
Features
- Scene & Renderer - WebGL rendering with configurable options
- Cameras - Perspective and orthographic
- Geometries - Box, sphere, plane, cylinder, torus, text, and more
- Materials - Basic, PBR, phong, lambert, toon
- Lights - Ambient, directional, point, spot, hemisphere
- Textures - Loading, filtering, wrapping modes
- Animation - Mixers and actions for skeletal/keyframe animation
- Audio - Global and positional 3D audio with fade effects
- Asset Loading - GLTF, FBX, OBJ, STL, fonts
- LOD & Instancing - Level of detail and instanced rendering
- Particles - Points-based particle systems
- CSS Renderers - CSS2D and CSS3D overlays
Related Packages
Documentation
Full API documentation available at HexDocs.