Most visited

Recently visited


ViroCore is a platform for Java developers to easily build native AR and VR experiences.

ViroCore combines a high-performance rendering engine with a descriptive API for creating immersive AR/VR apps. While lower-level APIs like OpenGL require you to learn and precisely implement rendering algorithms, ViroCore requires only high-level scene descriptions. Easily add animations, physics, particle effects, and more to your Android applications.

For help getting started using ViroCore, try the Getting Started guide, or take a look at Code Samples.

For higher level documentation, see the Development Guides.


AnimatedTexture.OnLoadComplete Callback interface for responding to an AnimatedTexture's lifecycle events. 
Animation.Listener Callback interface to respond to Animation events. 
AnimationTransaction.Listener Callback interface for responding to the end of an AnimationTransaction
ARHitTestListener Callback interface for responding to AR hit-test results. 
ARScene.CloudAnchorHostListener Callback interface for responding to anchor hosting requests. 
ARScene.CloudAnchorResolveListener Callback interface for responding to anchor resolution requests. 
ARScene.Listener Callback interface for ARScene events. 
ARScene.LoadARImageDatabaseListener Callback interface for responding to requests for loading AR image databases. 
AsyncObject3DListener Callback interface for responding to Object3D model loading events. 
CameraImageListener CameraImageListener receives a callback each time the AR camera image is updated. 
CameraListener Callback interface for responding to Camera driven events, such as position and rotation changes. 
ClickListener Callback interface for responding to click events, which occur when any Controller button is clicked. 
ControllerStatusListener Callback interface for responding to status change events for a Controller. 
DragListener Callback interface for responding to drag events, which occur when the Controller pressed down on a Node with a button, holds it, and then drags the Node
FrameListener Callback interface for listening to frame events. 
FuseListener Callback interface for responding to fuse events, which occur when the user hovers the Controller's pointer over a Node for a set period of time. 
GesturePinchListener Callback interface for responding to pinch events, which occur when the user pinches with two fingers on the screen. 
GestureRotateListener Callback interface for responding to rotate events, which occur when the user places two fingers on the screen and rotates then clockwise or counterclockwise. 
HitTestListener Callback interface for responding to hit-test results. 
HoverListener Callback interface for responding to hover events, which occur when the Controller hovers over a Node
Node.TransformListener The TransformListener receives callbacks when the Node's position has changed. 
ParticleEmitter.ParticleModifier ParticleModifier is used by various ParticleEmitter properties to set not only how particles will initially behave, but how they will behave over time or across distance. 
ParticleEmitter.SpawnVolume Interface for volumes that can be defined for spawning particles. 
PhysicsBody.CollisionListener Callback interface for responding to PhysicsBody collisions. 
PhysicsShape The physics simulation approximates physics bodies with simplified shapes. 
PhysicsWorld.HitTestListener Callback used when hit tests are completed. 
PointCloudUpdateListener Interface for receiving point cloud updates. 
PortalScene.EntryListener Callback interface for responding to users entering or exiting a PortalScene. 
RendererCloseListener Callback runnable that is used for responding to Viro renderer being closed by the user. 
Scene.VisibilityListener Receives callbacks in response to a Scene appearing and disappearing. 
Sound.PlaybackListener Callback interface for responding to Sound events. 
SoundField.PlaybackListener Callback interface for responding to SoundField events. 
SpatialSound.PlaybackListener Callback interface for responding to SpatialSound events. 
TouchpadScrollListener Callback interface for responding to touchpad scroll events, which occur when the finger is used to scroll up or down while hovering over a Node in a touchpad Controller. 
TouchpadSwipeListener Callback interface for responding to touchpad swipe events, which occur when a finger is swiped across a touchpad Controller. 
TouchpadTouchListener Callback interface for responding to touchpad touch events, which occur when a finger interacts with a touchpad Controller. 
VideoTexture.PlaybackListener Callback interface for responding to video lifecycle and playback events. 
ViroMediaRecorder.RecordingErrorListener Listener for responding to errors when starting a recording, and for responding to errors during a recording. 
ViroMediaRecorder.ScreenshotFinishListener Listener for responding to screenshot capture success and errors. 
ViroMediaRecorder.VideoRecordingFinishListener Listener for responding to video recording success and errors. 
ViroViewARCore.StartupListener Callback interface for responding to ViroViewARCore startup success or failure. 
ViroViewGVR.StartupListener Callback interface for responding to ViroViewGVR startup success or failure. 
ViroViewOVR.StartupListener Callback interface for responding to ViroViewOVR startup success or failure. 
ViroViewScene.StartupListener Callback interface for responding to ViroViewScene startup success or failure. 


AmbientLight AmbientLight is a Light that emits ambient light that affects all objects equally, at constant intensity in all directions. 
AmbientLight.AmbientLightBuilder<R extends Light, B extends LightBuilder<R, B>> Builder for creating AmbientLight objects. 
AndroidViewTexture AndroidViewTexture renders an Android View onto a Viro Texture
AnimatedTexture AnimatedTexture plays animated GIF images from local or remote sources. 
Animation Animation represents a set of skeletal or keyframe animations that can be executed. 
AnimationTransaction AnimationTransaction exposes a simple interface for animating properties of Viro objects. 
ARAnchor ARAnchor represents real-world objects whose position and orientation can be tracked. 
ARHitTestResult ARHitTestResult encapsulates a single result of an AR hit-test. 
ARImageAnchor ARImageAnchor is a specialized ARAnchor that represents a detected ARImageTarget in the real world. 
ARImageTarget ARImageTarget contains all the information required to find and track an image and extract its pose information. 
ARNode ARNode is a specialized Node that corresponds to a detected or manually created ARAnchor
ARPlaneAnchor ARPlaneAnchor is a specialized ARAnchor that represents a detected plane in the real-world. 
ARPointCloud ARPointCloud contains a collection of points that the AR subsystem has detected in the user's real world. 
ARScene ARScene blends virtual 3D content with the device camera's view of the real world. 
ARScene.ARSceneBuilder<R extends ARScene, B extends ARSceneBuilder<R, B>> ARSceneBuilder for building ARScene
BoundingBox BoundingBox defines an axis-aligned 6-sided bounding volume. 
Box Box is a simple shape representing a six-sided geometry, defined by width, height, and length. 
Camera The Camera defines the point of view of the user in the Scene
CameraIntrinsics CameraIntrinsics define the physical characteristics of the device camera using a "pinhole" model. 
Controller Controller represents the UI through which the user interacts with the Scene
DirectionalLight DirectionalLight is a Light that illuminates all objects in the Scene from the same direction with constant intensity. 
DirectionalLight.DirectionalLightBuilder<R extends Light, B extends LightBuilder<R, B>> Builder for creating DirectionalLight.DirectionalLightBuilder objects. 
FixedParticleEmitter FixedParticleEmitter enables you to render groups of fixed particles. 
Geometry Geometry is the top-level class for any displayable 3D model with Material objects that define its appearance. 
Geometry.GeometryBuilder Builder for creating Geometry objects. 
HitTestResult HitTestResult encapsulates a single result of a virtual based hit-test. 
Light Light is a light source that illuminates Nodes in the Scene
Light.LightBuilder<R extends Light, B extends LightBuilder<R, B>> LightBuilder abstract class for building subclasses of Light
Material Materials are the set of shading attributes that define the appearance of a geometry's surfaces when rendered. 
Material.MaterialBuilder Builder for creating Material objects. 
Matrix Matrix represents a 4x4 floating-point Matrix. 
Node Underlying each Scene is a full-featured 3D scene graph engine. 
Node.NodeBuilder<R extends Node, B extends NodeBuilder<R, B>> NodeBuilder for creating Node objects. 
Object3D Object3D defines a Node that can load FBX, OBJ, GLTF, or GLB models. 
OmniLight OmniLight is a Light that emits light in all directions from a given position, with decreasing intensity over distance. 
OmniLight.OmniLightBuilder<R extends Light, B extends LightBuilder<R, B>> Builder for creating OmniLight objects. 
ParticleEmitter ParticleEmitter enables developers to create and configure quad emitters for building complex and intricate particle effects. 
ParticleEmitter.EmissionBurst EmissionBurst defines moments of instantaneous particle creation. 
ParticleEmitter.ParticleEmitterBuilder Builder for creating ParticleEmitter objects. 
ParticleEmitter.ParticleModifierColor ParticleModifier for color properties. 
ParticleEmitter.ParticleModifierFloat ParticleModifier for floating point properties. 
ParticleEmitter.ParticleModifierVector ParticleModifier for Vector properties. 
ParticleEmitter.SpawnVolumeBox For spawning particles across or within a box. 
ParticleEmitter.SpawnVolumeEllipsoid For spawning particles across or within an ellipsoid. 
ParticleEmitter.SpawnVolumePoint For spawning particles at a particular point in the parent Node's coordinate system. 
ParticleEmitter.SpawnVolumeSphere For spawning particles aross or within a sphere. 
PhysicsBody PhysicsBody encapsulates the physics simulation of a particular Node
PhysicsShapeAutoCompound AutoCompound shapes are automatically generated from a Node by approximating its geometry as a composite of bounding boxes. 
PhysicsShapeBox Box physics shape. 
PhysicsShapeSphere Spherical PhysicsShape
PhysicsWorld The PhysicsWorld encapsulates the physics simulation associated with the Scene
Polygon Polygon represents a one-sided plane whose boundary is defined by a list of vertices. 
Polyline Polyline defines a multi-point line. 
Portal Portal is a special Node that serves as an entry or window into an associated PortalScene
PortalScene PortalScene is the root of the subgraph of Nodes that is displayed through a Portal
PortalScene.PortalSceneBuilder<R extends Node, B extends PortalSceneBuilder<R, B>> PortalSceneBuilder for creating PortalScene objects. 
Quad Quad represents a one-sided plane defined by a width and height. 
Quaternion Represents a 4-component floating-point quaternion. 
RendererConfiguration RendererConfiguration allows you to set which rendering properties and algorithms will be enabled at launch. 
Scene Scene represents a scene graph - a hierarchy of Nodes that together represent the 3D world. 
Scene.SceneBuilder<R extends Scene, B extends SceneBuilder<R, B>> SceneBuilder for creating Scene objects. 
Sound Viro provides a full-featured audio engine. 
SoundField SoundField emits environmental sound from every direction. 
SpatialSound SpatialSound is positioned audio that can travel throughout a scene. 
Sphere Sphere defines a spherical shape, e.g. 
Spotlight Spotlight is a Light that illuminates objects within a cone-shaped area, in a given direction, with decreasing intensity over distance. 
Spotlight.SpotlightBuilder<R extends Light, B extends LightBuilder<R, B>> Builder for creating Spotlight objects. 
Submesh Submesh defines how the vertices of a Geometry are connected together to form a 3D object. 
Submesh.SubmeshBuilder Builder for creating Submesh objects. 
Surface This class is deprecated. Use Quad in place of this class.  
Text Text is a Geometry that renders strings of text. 
Text.TextBuilder Builder for creating Text objects. 
Texture Texture is an image used to add surface detail and color to a Material
Texture.TextureBuilder Builder for creating Texture objects. 
Vector Vector represents a 3-component floating-point vector. 
VideoTexture VideoTexture plays video from local or remote sources. 
ViroContext ViroContext provides context for the Viro application. 
ViroMediaRecorder ViroMediaRecorder enables you to take a screenshot or record a video of the scene rendered in your ViroView
ViroView ViroView is the entrypoint for Viro applications, it enables the rendering of 3D AR and VR content to an Android View. 
ViroViewARCore ViroViewARCore is a ViroView for rendering augmented reality scenes using Google's ARCore API for tracking. 
ViroViewGVR ViroViewGVR is a ViroView for rendering content in stereo for VR headsets using the Google GVR SDK. 
ViroViewOVR ViroViewOVR is a ViroView for rendering content in stereo for VR headsets using the Oculus Mobile SDK. 
ViroViewScene ViroViewScene is a ViroView for rendering a Scene on a simple Android View. 


Animation.State Represents the playback state of an Animation. 
AnimationTimingFunction AnimationTimingFunction defines the pacing of an animation. 
ARAnchor.Type Specifies the type of ARAnchor. 
ARHitTestResult.Type Hit-tests can intersect different kinds of real-world features, each identified by their Type. 
ARImageAnchor.TrackingMethod Specifies the tracking method used to track the ARImageAnchor's position. 
ARImageTarget.Orientation The orientation of the image to detect in the real world, with respect to the base orientation of your input image. 
ARPlaneAnchor.Alignment Specifies the alignment of the ARPlaneAnchor with respect to gravity. 
ARScene.TrackingState Values representing position tracking quality. 
ARScene.TrackingStateReason Diagnoses to explain cases where we have limited position tracking quality in AR. 
Camera.RotationType Specifies the behavior of the Camera in VR when rotating the headset. 
ClickState Indicates the status of a click event, for use with the ClickListener
ControllerStatus Indicates the availability of a given Controller, for use with the ControllerStatusListener
Material.BlendMode BlendMode determines how a pixel's color, as it is being rendered, interacts with the color of the pixel already in the framebuffer. 
Material.ColorWriteMask ColorWriteMask indicates what colors should be written to the screen when rendering a Material. 
Material.CullMode CullMode determines whether we render front faces, back faces, or both. 
Material.LightingModel LightingModel defines a formula for combining a material’s diffuse, specular, and other properties with the Lights in the Scene, and the point of view, to create the color of each rendered pixel. 
Material.ShadowMode ShadowMode defines in what form a Material receives shadows. 
Material.TransparencyMode TransparencyMode determines how the opacity of pixels is computed. 
Node.DragType Specifies the behavior of dragging if the Node has an attached DragListener
Node.TransformBehavior TransformBehaviors change the way a Node computes its position, rotation and scale. 
Object3D.MorphMode MorphMode represents the method used to calculate and blend morph target data in this Object3D. 
Object3D.Type Supported model formats for loading into an Object3D
ParticleEmitter.Factor Factor is used to distinguish between various particle emission properties that can either be set as a rate per second or per meter
PhysicsBody.RigidBodyType The RigidBodyType of a PhysicsBody controls how the body responds to forces and collisions. 
PinchState Indicates that status of a pinch gesture made on a screen, for use with the GesturePinchListener
RotateState Indicates the status of a rotate gesture made on a screen, for use with the GestureRotateListener
Scene.AudioMaterial AudioMaterial is used to define the Scene's reverb effects. 
SpatialSound.Rolloff The attenuation function that determines how the volume of the SpatialSound changes with distance from the sound's position. 
SwipeState Indicates the status of a touchpad swipe event, for use with the TouchpadSwipeListener
Text.ClipMode Controls whether text clips when it exceeds its bounds. 
Text.FontStyle The style of the font used to render Text
Text.FontWeight The weight of the font used to render Text
Text.HorizontalAlignment Controls the horizontal alignment of Text within its bounds. 
Text.LineBreakMode Controls the way in which text wraps when it exceeds its bound's width. 
Text.OuterStroke The outer stroke which enables effects like outline or drop shadow. 
Text.VerticalAlignment Controls the vertical alignment of Text within its bounds. 
Texture.FilterMode FilterMode determines how samples are chosen from the Texture when its rendered size is larger or smaller than the underlying image's actual size. 
Texture.Format Texture.Format identifies the format of the pixel-data underlying the Texture
Texture.StereoMode StereoMode is used in VR to render a Texture in stereo. 
Texture.WrapMode WrapMode determines what happens when the texture coordinates extend outside the [0.0, 1.0] range when mapping the image. 
TouchState Indicates the status of a touchpad touch event, for use with TouchpadTouchListener
ViroMediaRecorder.Error Enum indicating what error (if any) was encountered during a recording operation. 
ViroViewARCore.AnchorDetectionType ARCore, which underlies Viro's augmented reality system, can be set to detect various types of real world features (anchors) by continually scanning the incoming video feed from the device camera. 
ViroViewARCore.ARCoreAvailability Enum describing state of ARCore availability on device. 
ViroViewARCore.StartupError Errors returned by the ViroViewARCore.StartupListener, in response to Viro failing to initialize. 
ViroViewGVR.StartupError Errors returned by the ViroViewGVR.StartupListener, in response to Viro failing to initialize. 
ViroViewOVR.StartupError Errors returned by the ViroViewOVR.StartupListener, in response to Viro failing to initialize. 
ViroViewScene.StartupError Errors returned by the ViroViewScene.StartupListener, in response to Viro failing to initialize. 


DeviceNotCompatibleException Exception thrown when a device is not compatible with Viro.