l3d

Get it on GitHub

Wireframes

Multilayer Spinner

Single Perspective Sphere

A spinning green sphere, outlined in purple.

Red/Cyan Stereo Sphere

Red/Cyan Stereo Cube + Sphere

Lazy Armature

Joint Transformations

Lazy Armature is a fork of l3d. @hunteriam and I wrote it as a separate project, building on the work I did with l3d. Using l3d as the backend, Lazy Armature parses complex command files to create beautiful animations, as seen below. Command files dictate a skeleton structure with variables that change over the course of the animation.

Basic Example:

        
skeleton 0 0 0 { 
	vary j 1 360 1 90
	sphere 1 1 1 0 0 0 0 0 0
	bone 3 0 0 {
		cube 1.5 1 1 0 0 0 1.5 0 0
		sphere 1 1 1 0 0 0 3 0 0
		bone 3 3 0 {
			cube 1 1.5 1 0 0 0 3 1.5 0
			sphere 1 1 1 0 0 0 3 3 0
			bone 3 3 3 {
				cube 1 1 1.5 0 0 0 3 3 1.5
				sphere 1 1 1 0 0 0 3 3 3
				rotate-joint j j j
			}
			rotate-joint j j j
		}
		rotate-joint j j j
	}
}
render-perspective-cyclops 0 0 10
files test_ppm_
	    
    

Result:

Complicated Example (examples/human.laf):

        
skeleton 0 0 0 {
	--Head
	bone 0 2 0 {
		sphere 1 1 1 0 0 0 0 2 0
	}
	--shoulder
	bone 2 0 0 {
		--Right Arm
		bone 4 0 0 {
			vary momentum -90 -270 1 40
			vary momentum -270 -90 41 80
			cube 1 0.5 0.5 0 0 0 3 0 0
			bone 1 1 0 {
				cube 0.5 1 0.5 0 0 0 4 1 0
			}
			rotate-joint -90 momentum 90
		}
	}
	--shoulder
	bone -2 0 0 {
		--Left Arm
		bone -4 0 0 {
			vary momentum -90 90 1 40
			vary momentum 90 -90 41 80
			cube 1 0.5 0.5 0 0 0 -3 0 0
			bone -1 1 0 {
				cube 0.5 1 0.5 0 0 0 -4 1 0
			}
			rotate-joint 90 momentum 90
		}
	}
	
	--Upper Torso
	cube 1 1 1 0 0 0 0 0 0
	
	--Lower Torso
	bone 0 -2 0 {
		vary contract -10 10 1 20
		vary contract 10 -20 21 40
		vary contract -20 10 41 60
		vary contract 10 -20 61 80
		cube 0.75 2 0.5 0 0 0 0 -1 0 
		
		-- The One Leg
		bone -1 -5 0 {
			vary bend 0 -20 1 20
			vary bend -20 40 21 40
			vary bend 40 -20 41 60
			vary bend -20 40 61 80
			cube 0.5 2 0.5 0 0 0 0 -5 0
			rotate-joint bend 0 0 
		}
		rotate-joint contract 0 0

	}
}
render-perspective-cyclops 0 0 10
files human
	    
    

Result: