Artifact Features

Assets:

Maximum Package Size: 10 megabytes.

This includes the gltf file and any video / audio files that should be played.

Scene setup

3D File:

.gltf and .glb files are supported. Textures should be optimized and packed into the gltf file. For optimal gpu performance, make sure that the image sizes are powers of two (128, 256, 512, 1024, 2048). Textures bigger than 2048x2048 pixels can usually be resized to 1024x1024 without losing visible quality. (re)baking the textures also usually makes them smaller because the bake algorithm tries to find the smallest image it can fit the texture parts into. It's allowed to use non-quadratic images too (example; 1024x512) For optimization of images tools like optipng and sharp offer command line interfaces to quickly convert multiple images.

Object position

The 3D object in the gltf should be positioned on X: 0 and Y: 0, the Z position determines how high the objects floats above the floor. The Blender units translate 1:1 to meters.

Scenes

Please delete all non-used scenes from the blend project before exporting the gltf file, empty scenes will cause an error.

Apply

Please apply the transform, scale, rotation and modifier data of the object (in blender the apply menu can be shown using ctrl+a)

Animations

All animations in the gltf file will play simultaneously.

Only a few properties are animatable:

  • Keyframe (translation, rotation, scale)
  • Shape keys
  • Armatures / skinning

Example: Fake Mirror

Skybox image - required

360 degree image of the location the artifact is positioned at.

Should be edited to remove the photographer from the image.

Alternatively, the skybox image can also be related to the artifact and not to the location.

Video - optional

At least one object in the scene has to be named "videotarget" for this to work.

Depending on the object, there can theoretically also be multiple videotargets.

Any mesh can be a videotarget, just name it "videotarget" and the video will play on the object, using the same texture mapping as that object uses before the video gets applied.

Please note that the number of irregular vertices drops performance almost exponentially, cubes, planes, spheres and other very simple structures work well.

Max Resolution: 1280x720p

Optimal Resolution: 1024x512p, 512x1024p

Framerate: 25

Maximum Video Bitrate: ~2MBit/s

Audio sample rate: 44100, 48000

FFmpeg command:

ffmpeg -i video_in.mp4 -b:v 1024k -b:a 128k video_out.mp4

Example: De.Fragmentation

Audio - optional

Unfortunately, directional audio is broken in chromium on android, so this audio file will just play in stereo. The chrome bug that tracks progress on this is a few years old by now and unlikely to be fixed until the android audio drivers are rewritten from scratch.

Clipping

If you want to clip parts of the scene, you can add a clipping mesh to your artifact.

Just add any mesh(es) and make sure their name includes the word "clip".

Visitors can walk anywhere in the scene, including the INSIDE of the clipping object, breaking the clipping in weird ways.

To avoid this problem, clipping objects should only be placed where visitors are unlikely to go to (below the ground, very far from the artifact, or high in the sky (2+ meters)) alternatively, the clipping object should be as small as possible.

Example: The Wound

Photogrammetry

If your artifact is based on a 3d scan, instant meshes can be used to cleanup and minify the mesh before using it. Unfortunately the uv map of the texture is lost in the process, it usually is quite easy to reapply after instant meshes has been applied