LÖVR
v0.17.0
dev
v0.16.0
v0.15.0
v0.14.0
v0.13.0
v0.12.0
v0.11.0
v0.10.0
v0.9.1
v0.9.0
v0.8.0
v0.7.1
v0.7.0
v0.6.0
v0.5.0
v0.4.0
v0.3.0
v0.2.0
v0.1.0
Guides
Getting Started
Getting Started (Quest)
Callbacks and Modules
Simple Lighting
Shaders
Libraries
Plugins
Distribution
Contributing
Compiling
FAQ
v0.17.0
Examples
Intro
Hello World
Spinning Cube
Shapes
3D Model
360 Photo
Custom Mesh
Tracked Hands
Thread
Interaction
Pointer
Pointer UI
Physics Pointer
Dragging
Dragging with Rotation
Controller Models
Hand Tracking
Custom Hand Rig
Locomotion
Basic Thumbsticks
Teleportation Flat
Teleportation Colliders
Walking In Place
Space Stretch
Environment
Grid
Grid (Smooth)
Skybox
Terrain - Heightmap
Terrain - Procedural
Triplanar Mapping
Lighting
Cel Shading
Circular Shadows
PBR Materials
Shadows
Animation
Playback
2 Bone IK
Physics
Boxes
Hand Physics
Newtons Cradle
Saloon Door
Terrain
Wrecking Ball
Zip Line
Audio
Playback
Spatialization
Directivity
Mute
Sine Wave Generator
Effects
Billboards
Blur
Stereo Image
Cubemap Generate
Cubemap Texturing
Stencil
Flatscreen
2D Button
FPS Controls
Spectator Camera
Window HUD
Optimization
Instancing
Debugging
Raw Input
Tally
Modules
enet
http
lovr
lovr.audio
lovr.data
lovr.event
lovr.filesystem
lovr.graphics
lovr.headset
lovr.math
lovr.physics
lovr.system
lovr.thread
lovr.timer
utf8
Objects
BallJoint
Blob
BoxShape
Buffer
CapsuleShape
Channel
Collider
Curve
CylinderShape
DistanceJoint
Font
HingeJoint
Image
Joints
Mat4
Material
Mesh
MeshShape
Model
ModelData
Object
Pass
Quat
RandomGenerator
Rasterizer
Readback
Sampler
Shader
Shapes
SliderJoint
Sound
Source
SphereShape
TerrainShape
Texture
Thread
Vec2
Vec3
Vec4
Vectors
World
Callbacks
lovr.conf
lovr.draw
lovr.errhand
lovr.focus
lovr.keypressed
lovr.keyreleased
lovr.load
lovr.log
lovr.mirror
lovr.mousemoved
lovr.mousepressed
lovr.mousereleased
lovr.permission
lovr.quit
lovr.recenter
lovr.resize
lovr.restart
lovr.run
lovr.textinput
lovr.threaderror
lovr.update
lovr.visible
lovr.wheelmoved
Functions
BallJoint:getAnchors
BallJoint:getResponseTime
BallJoint:getTightness
BallJoint:setAnchor
BallJoint:setResponseTime
BallJoint:setTightness
Blob:getF32
Blob:getF64
Blob:getI16
Blob:getI32
Blob:getI8
Blob:getName
Blob:getPointer
Blob:getSize
Blob:getString
Blob:getU16
Blob:getU32
Blob:getU8
BoxShape:getDimensions
BoxShape:setDimensions
Buffer:clear
Buffer:getData
Buffer:getFormat
Buffer:getLength
Buffer:getPointer
Buffer:getSize
Buffer:getStride
Buffer:isTemporary
Buffer:mapData
Buffer:newReadback
Buffer:setData
CapsuleShape:getLength
CapsuleShape:getRadius
CapsuleShape:setLength
CapsuleShape:setRadius
Channel:clear
Channel:hasRead
Channel:peek
Channel:pop
Channel:push
Collider:addShape
Collider:applyForce
Collider:applyTorque
Collider:destroy
Collider:getAABB
Collider:getAngularDamping
Collider:getAngularVelocity
Collider:getFriction
Collider:getJoints
Collider:getLinearDamping
Collider:getLinearVelocity
Collider:getLinearVelocityFromLocalPoint
Collider:getLinearVelocityFromWorldPoint
Collider:getLocalCenter
Collider:getLocalPoint
Collider:getLocalVector
Collider:getMass
Collider:getMassData
Collider:getOrientation
Collider:getPose
Collider:getPosition
Collider:getRestitution
Collider:getShapes
Collider:getTag
Collider:getUserData
Collider:getWorld
Collider:getWorldPoint
Collider:getWorldVector
Collider:isAwake
Collider:isDestroyed
Collider:isGravityIgnored
Collider:isKinematic
Collider:isSleepingAllowed
Collider:removeShape
Collider:setAngularDamping
Collider:setAngularVelocity
Collider:setAwake
Collider:setFriction
Collider:setGravityIgnored
Collider:setKinematic
Collider:setLinearDamping
Collider:setLinearVelocity
Collider:setMass
Collider:setMassData
Collider:setOrientation
Collider:setPose
Collider:setPosition
Collider:setRestitution
Collider:setSleepingAllowed
Collider:setTag
Collider:setUserData
Curve:addPoint
Curve:evaluate
Curve:getPoint
Curve:getPointCount
Curve:getTangent
Curve:removePoint
Curve:render
Curve:setPoint
Curve:slice
CylinderShape:getLength
CylinderShape:getRadius
CylinderShape:setLength
CylinderShape:setRadius
DistanceJoint:getAnchors
DistanceJoint:getDistance
DistanceJoint:getResponseTime
DistanceJoint:getTightness
DistanceJoint:setAnchors
DistanceJoint:setDistance
DistanceJoint:setResponseTime
DistanceJoint:setTightness
Font:getAscent
Font:getDescent
Font:getHeight
Font:getKerning
Font:getLineSpacing
Font:getLines
Font:getPixelDensity
Font:getRasterizer
Font:getVertices
Font:getWidth
Font:setLineSpacing
Font:setPixelDensity
HingeJoint:getAnchors
HingeJoint:getAngle
HingeJoint:getAxis
HingeJoint:getLimits
HingeJoint:getLowerLimit
HingeJoint:getUpperLimit
HingeJoint:setAnchor
HingeJoint:setAxis
HingeJoint:setLimits
HingeJoint:setLowerLimit
HingeJoint:setUpperLimit
Image:encode
Image:getBlob
Image:getDimensions
Image:getFormat
Image:getHeight
Image:getPixel
Image:getWidth
Image:mapPixel
Image:paste
Image:setPixel
Joint:destroy
Joint:getColliders
Joint:getType
Joint:getUserData
Joint:isEnabled
Joint:setEnabled
Joint:setUserData
Mat4:equals
Mat4:fov
Mat4:getOrientation
Mat4:getPose
Mat4:getPosition
Mat4:getScale
Mat4:identity
Mat4:invert
Mat4:lookAt
Mat4:mul
Mat4:orthographic
Mat4:perspective
Mat4:reflect
Mat4:rotate
Mat4:scale
Mat4:set
Mat4:target
Mat4:translate
Mat4:transpose
Mat4:unpack
Material:getProperties
Mesh:computeBoundingBox
Mesh:getBoundingBox
Mesh:getDrawMode
Mesh:getIndexBuffer
Mesh:getIndices
Mesh:getMaterial
Mesh:getVertexBuffer
Mesh:getVertexCount
Mesh:getVertexFormat
Mesh:getVertexStride
Mesh:getVertices
Mesh:setBoundingBox
Mesh:setDrawMode
Mesh:setIndexBuffer
Mesh:setIndices
Mesh:setMaterial
Mesh:setVertices
Model:animate
Model:clone
Model:getAnimationCount
Model:getAnimationDuration
Model:getAnimationName
Model:getBlendShapeCount
Model:getBlendShapeName
Model:getBlendShapeWeight
Model:getBoundingBox
Model:getBoundingSphere
Model:getCenter
Model:getData
Model:getDepth
Model:getDimensions
Model:getHeight
Model:getIndexBuffer
Model:getMaterial
Model:getMaterialCount
Model:getMaterialName
Model:getMetadata
Model:getNodeChildren
Model:getNodeCount
Model:getNodeName
Model:getNodeOrientation
Model:getNodeParent
Model:getNodePose
Model:getNodePosition
Model:getNodeScale
Model:getNodeTransform
Model:getRootNode
Model:getTexture
Model:getTextureCount
Model:getTriangleCount
Model:getTriangles
Model:getVertexBuffer
Model:getVertexCount
Model:getWidth
Model:hasJoints
Model:resetNodeTransforms
Model:setBlendShapeWeight
Model:setNodeOrientation
Model:setNodePose
Model:setNodePosition
Model:setNodeScale
Model:setNodeTransform
ModelData:getAnimationChannelCount
ModelData:getAnimationCount
ModelData:getAnimationDuration
ModelData:getAnimationKeyframe
ModelData:getAnimationKeyframeCount
ModelData:getAnimationName
ModelData:getAnimationNode
ModelData:getAnimationProperty
ModelData:getAnimationSmoothMode
ModelData:getBlendShapeCount
ModelData:getBlendShapeName
ModelData:getBlob
ModelData:getBlobCount
ModelData:getBoundingBox
ModelData:getBoundingSphere
ModelData:getCenter
ModelData:getDepth
ModelData:getDimensions
ModelData:getHeight
ModelData:getImage
ModelData:getImageCount
ModelData:getMaterial
ModelData:getMaterialCount
ModelData:getMaterialName
ModelData:getMeshCount
ModelData:getMeshDrawMode
ModelData:getMeshIndex
ModelData:getMeshIndexCount
ModelData:getMeshIndexFormat
ModelData:getMeshMaterial
ModelData:getMeshVertex
ModelData:getMeshVertexCount
ModelData:getMeshVertexFormat
ModelData:getMetadata
ModelData:getNodeChildren
ModelData:getNodeCount
ModelData:getNodeMeshes
ModelData:getNodeName
ModelData:getNodeOrientation
ModelData:getNodeParent
ModelData:getNodePose
ModelData:getNodePosition
ModelData:getNodeScale
ModelData:getNodeSkin
ModelData:getNodeTransform
ModelData:getRootNode
ModelData:getSkinCount
ModelData:getSkinInverseBindMatrix
ModelData:getSkinJoints
ModelData:getTriangleCount
ModelData:getTriangles
ModelData:getVertexCount
ModelData:getWidth
Object:release
Object:type
Pass:barrier
Pass:beginTally
Pass:box
Pass:capsule
Pass:circle
Pass:compute
Pass:cone
Pass:cube
Pass:cylinder
Pass:draw
Pass:fill
Pass:finishTally
Pass:getCanvas
Pass:getClear
Pass:getDimensions
Pass:getHeight
Pass:getProjection
Pass:getSampleCount
Pass:getScissor
Pass:getStats
Pass:getTallyBuffer
Pass:getTarget
Pass:getType
Pass:getViewCount
Pass:getViewPose
Pass:getViewport
Pass:getWidth
Pass:line
Pass:mesh
Pass:origin
Pass:plane
Pass:points
Pass:pop
Pass:push
Pass:reset
Pass:rotate
Pass:roundrect
Pass:scale
Pass:send
Pass:setAlphaToCoverage
Pass:setBlendMode
Pass:setCanvas
Pass:setClear
Pass:setColor
Pass:setColorWrite
Pass:setCullMode
Pass:setDepthClamp
Pass:setDepthOffset
Pass:setDepthTest
Pass:setDepthWrite
Pass:setFont
Pass:setMaterial
Pass:setMeshMode
Pass:setProjection
Pass:setSampler
Pass:setScissor
Pass:setShader
Pass:setStencilTest
Pass:setStencilWrite
Pass:setTallyBuffer
Pass:setViewCull
Pass:setViewPose
Pass:setViewport
Pass:setWinding
Pass:setWireframe
Pass:skybox
Pass:sphere
Pass:text
Pass:torus
Pass:transform
Pass:translate
Quat:conjugate
Quat:direction
Quat:equals
Quat:length
Quat:mul
Quat:normalize
Quat:set
Quat:slerp
Quat:unpack
RandomGenerator:getSeed
RandomGenerator:getState
RandomGenerator:random
RandomGenerator:randomNormal
RandomGenerator:setSeed
RandomGenerator:setState
Rasterizer:getAdvance
Rasterizer:getAscent
Rasterizer:getBearing
Rasterizer:getBoundingBox
Rasterizer:getCurves
Rasterizer:getDescent
Rasterizer:getDimensions
Rasterizer:getFontSize
Rasterizer:getGlyphCount
Rasterizer:getHeight
Rasterizer:getKerning
Rasterizer:getLeading
Rasterizer:getWidth
Rasterizer:hasGlyphs
Rasterizer:newImage
Readback:getBlob
Readback:getData
Readback:getImage
Readback:isComplete
Readback:wait
Sampler:getAnisotropy
Sampler:getCompareMode
Sampler:getFilter
Sampler:getMipmapRange
Sampler:getWrap
Shader:clone
Shader:getBufferFormat
Shader:getType
Shader:getWorkgroupSize
Shader:hasAttribute
Shader:hasStage
Shape:destroy
Shape:getAABB
Shape:getCollider
Shape:getMass
Shape:getOrientation
Shape:getPose
Shape:getPosition
Shape:getType
Shape:getUserData
Shape:isEnabled
Shape:isSensor
Shape:setEnabled
Shape:setOrientation
Shape:setPose
Shape:setPosition
Shape:setSensor
Shape:setUserData
SliderJoint:getAxis
SliderJoint:getLimits
SliderJoint:getLowerLimit
SliderJoint:getPosition
SliderJoint:getUpperLimit
SliderJoint:setAxis
SliderJoint:setLimits
SliderJoint:setLowerLimit
SliderJoint:setUpperLimit
Sound:getBlob
Sound:getCapacity
Sound:getChannelCount
Sound:getChannelLayout
Sound:getDuration
Sound:getFormat
Sound:getFrameCount
Sound:getFrames
Sound:getSampleCount
Sound:getSampleRate
Sound:isCompressed
Sound:isStream
Sound:setFrames
Source:clone
Source:getDirectivity
Source:getDuration
Source:getOrientation
Source:getPitch
Source:getPose
Source:getPosition
Source:getRadius
Source:getSound
Source:getVolume
Source:isEffectEnabled
Source:isLooping
Source:isPlaying
Source:isSpatial
Source:pause
Source:play
Source:seek
Source:setDirectivity
Source:setEffectEnabled
Source:setLooping
Source:setOrientation
Source:setPitch
Source:setPose
Source:setPosition
Source:setRadius
Source:setVolume
Source:stop
Source:tell
SphereShape:getRadius
SphereShape:setRadius
Texture:clear
Texture:generateMipmaps
Texture:getDimensions
Texture:getFormat
Texture:getHeight
Texture:getLayerCount
Texture:getMipmapCount
Texture:getParent
Texture:getPixels
Texture:getSampleCount
Texture:getType
Texture:getWidth
Texture:hasUsage
Texture:isView
Texture:newReadback
Texture:newView
Texture:setPixels
Thread:getError
Thread:isRunning
Thread:start
Thread:wait
Vec2:add
Vec2:angle
Vec2:distance
Vec2:div
Vec2:dot
Vec2:equals
Vec2:length
Vec2:lerp
Vec2:mul
Vec2:normalize
Vec2:set
Vec2:sub
Vec2:unpack
Vec3:add
Vec3:angle
Vec3:cross
Vec3:distance
Vec3:div
Vec3:dot
Vec3:equals
Vec3:length
Vec3:lerp
Vec3:mul
Vec3:normalize
Vec3:rotate
Vec3:set
Vec3:sub
Vec3:transform
Vec3:unpack
Vec4:add
Vec4:angle
Vec4:distance
Vec4:div
Vec4:dot
Vec4:equals
Vec4:length
Vec4:lerp
Vec4:mul
Vec4:normalize
Vec4:set
Vec4:sub
Vec4:transform
Vec4:unpack
World:collide
World:computeOverlaps
World:destroy
World:disableCollisionBetween
World:enableCollisionBetween
World:getAngularDamping
World:getColliders
World:getContacts
World:getGravity
World:getLinearDamping
World:getResponseTime
World:getStepCount
World:getTags
World:getTightness
World:isCollisionEnabledBetween
World:isSleepingAllowed
World:newBoxCollider
World:newCapsuleCollider
World:newCollider
World:newCylinderCollider
World:newMeshCollider
World:newSphereCollider
World:newTerrainCollider
World:overlaps
World:queryBox
World:querySphere
World:raycast
World:setAngularDamping
World:setGravity
World:setLinearDamping
World:setResponseTime
World:setSleepingAllowed
World:setStepCount
World:setTightness
World:update
lovr.audio.getAbsorption
lovr.audio.getDevice
lovr.audio.getDevices
lovr.audio.getOrientation
lovr.audio.getPose
lovr.audio.getPosition
lovr.audio.getSampleRate
lovr.audio.getSpatializer
lovr.audio.getVolume
lovr.audio.isStarted
lovr.audio.newSource
lovr.audio.setAbsorption
lovr.audio.setDevice
lovr.audio.setGeometry
lovr.audio.setOrientation
lovr.audio.setPose
lovr.audio.setPosition
lovr.audio.setVolume
lovr.audio.start
lovr.audio.stop
lovr.data.newBlob
lovr.data.newImage
lovr.data.newModelData
lovr.data.newRasterizer
lovr.data.newSound
lovr.event.clear
lovr.event.poll
lovr.event.push
lovr.event.quit
lovr.event.restart
lovr.filesystem.append
lovr.filesystem.createDirectory
lovr.filesystem.getAppdataDirectory
lovr.filesystem.getDirectoryItems
lovr.filesystem.getExecutablePath
lovr.filesystem.getIdentity
lovr.filesystem.getLastModified
lovr.filesystem.getRealDirectory
lovr.filesystem.getRequirePath
lovr.filesystem.getSaveDirectory
lovr.filesystem.getSize
lovr.filesystem.getSource
lovr.filesystem.getUserDirectory
lovr.filesystem.getWorkingDirectory
lovr.filesystem.isDirectory
lovr.filesystem.isFile
lovr.filesystem.isFused
lovr.filesystem.load
lovr.filesystem.mount
lovr.filesystem.newBlob
lovr.filesystem.read
lovr.filesystem.remove
lovr.filesystem.setIdentity
lovr.filesystem.setRequirePath
lovr.filesystem.unmount
lovr.filesystem.write
lovr.getVersion
lovr.graphics.compileShader
lovr.graphics.getBackgroundColor
lovr.graphics.getBuffer
lovr.graphics.getDefaultFont
lovr.graphics.getDevice
lovr.graphics.getFeatures
lovr.graphics.getLimits
lovr.graphics.getPass
lovr.graphics.getWindowPass
lovr.graphics.isFormatSupported
lovr.graphics.isTimingEnabled
lovr.graphics.newBuffer
lovr.graphics.newFont
lovr.graphics.newMaterial
lovr.graphics.newMesh
lovr.graphics.newModel
lovr.graphics.newPass
lovr.graphics.newSampler
lovr.graphics.newShader
lovr.graphics.newTexture
lovr.graphics.present
lovr.graphics.setBackgroundColor
lovr.graphics.setTimingEnabled
lovr.graphics.submit
lovr.graphics.wait
lovr.headset.animate
lovr.headset.getAngularVelocity
lovr.headset.getAxis
lovr.headset.getBoundsDepth
lovr.headset.getBoundsDimensions
lovr.headset.getBoundsGeometry
lovr.headset.getBoundsWidth
lovr.headset.getClipDistance
lovr.headset.getDeltaTime
lovr.headset.getDirection
lovr.headset.getDisplayDimensions
lovr.headset.getDisplayFrequencies
lovr.headset.getDisplayFrequency
lovr.headset.getDisplayHeight
lovr.headset.getDisplayWidth
lovr.headset.getDriver
lovr.headset.getHands
lovr.headset.getName
lovr.headset.getOrientation
lovr.headset.getOriginType
lovr.headset.getPass
lovr.headset.getPassthrough
lovr.headset.getPassthroughModes
lovr.headset.getPose
lovr.headset.getPosition
lovr.headset.getRefreshRate
lovr.headset.getRefreshRates
lovr.headset.getSkeleton
lovr.headset.getTexture
lovr.headset.getTime
lovr.headset.getVelocity
lovr.headset.getViewAngles
lovr.headset.getViewCount
lovr.headset.getViewPose
lovr.headset.isDown
lovr.headset.isFocused
lovr.headset.isSeated
lovr.headset.isTouched
lovr.headset.isTracked
lovr.headset.isVisible
lovr.headset.newModel
lovr.headset.setClipDistance
lovr.headset.setDisplayFrequency
lovr.headset.setPassthrough
lovr.headset.setRefreshRate
lovr.headset.start
lovr.headset.stopVibration
lovr.headset.submit
lovr.headset.vibrate
lovr.headset.wasPressed
lovr.headset.wasReleased
lovr.math.drain
lovr.math.gammaToLinear
lovr.math.getRandomSeed
lovr.math.linearToGamma
lovr.math.mat4
lovr.math.newCurve
lovr.math.newMat4
lovr.math.newQuat
lovr.math.newRandomGenerator
lovr.math.newVec2
lovr.math.newVec3
lovr.math.newVec4
lovr.math.noise
lovr.math.quat
lovr.math.random
lovr.math.randomNormal
lovr.math.setRandomSeed
lovr.math.vec2
lovr.math.vec3
lovr.math.vec4
lovr.physics.newBallJoint
lovr.physics.newBoxShape
lovr.physics.newCapsuleShape
lovr.physics.newCylinderShape
lovr.physics.newDistanceJoint
lovr.physics.newHingeJoint
lovr.physics.newMeshShape
lovr.physics.newSliderJoint
lovr.physics.newSphereShape
lovr.physics.newTerrainShape
lovr.physics.newWorld
lovr.system.getCoreCount
lovr.system.getMousePosition
lovr.system.getMouseX
lovr.system.getMouseY
lovr.system.getOS
lovr.system.getWindowDensity
lovr.system.getWindowDimensions
lovr.system.getWindowHeight
lovr.system.getWindowWidth
lovr.system.hasKeyRepeat
lovr.system.isKeyDown
lovr.system.isMouseDown
lovr.system.isWindowOpen
lovr.system.openWindow
lovr.system.pollEvents
lovr.system.requestPermission
lovr.system.setKeyRepeat
lovr.system.wasKeyPressed
lovr.system.wasKeyReleased
lovr.thread.getChannel
lovr.thread.newThread
lovr.timer.getAverageDelta
lovr.timer.getDelta
lovr.timer.getFPS
lovr.timer.getTime
lovr.timer.sleep
lovr.timer.step
Types
AnimationProperty
AttributeType
AudioMaterial
AudioShareMode
AudioType
BlendAlphaMode
BlendMode
ChannelLayout
CompareMode
CullMode
DataLayout
DataType
DefaultAttribute
DefaultShader
Device
DeviceAxis
DeviceButton
DrawMode
DrawStyle
Effect
FilterMode
HeadsetDriver
HeadsetOrigin
HorizontalAlign
JointType
KeyCode
MeshStorage
ModelDrawMode
OriginType
PassType
PassthroughMode
Permission
SampleFormat
ShaderStage
ShaderType
ShapeType
SmoothMode
StackType
StencilAction
TextureFeature
TextureFormat
TextureType
TextureUsage
TimeUnit
VerticalAlign
VolumeUnit
Winding
WrapMode
Hello World
Source
Edit
function lovr.draw(pass) pass:text('hello world', 0, 1.7, -5) end