@blockv/3d-face

This vAtom face can plug into the SDKs to render 3D content in either binary glTF or V3D format.

Usage no npm install needed!

<script type="module">
  import blockv3dFace from 'https://cdn.skypack.dev/@blockv/3d-face';
</script>

README

3D Face

This is a face for the Android, iOS and Web BLOCKv SDKs, which allows rendering and interacting with 3D vatoms.

Usage in the Android SDK

First add it to your gradle dependencies:

dependencies {
    implementation 'io.blockv.faces:face3d:1.0.5'
}

Then register it on app startup:

// Kotlin
import io.blockv.face3d.Face3D

blockv.faceManager.registerFace(Face3D.factory)
// Java
import io.blockv.face3d.Face3D;

blockv.getFaceManager().registerFace(Face3D.Companion.getFactory());

Usage in the iOS SDK

First add it to your podfile:

pod 'VatomFace3D'

Then register it on app startup:

import BLOCKv
import VatomFace3D

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    ...

    FaceViewRoster.shared.register(Face3D.self)

}

Usage in the Web SDK

To use in the Web SDK, simply import and register when your app starts up:

import { VatomView } from '@blockv/sdk/face'
import Face3D from '@blockv/3d-face'

VatomView.registerFace(Face3D)

Specification

  • Display URL: native://generic-3d

Building

To build, run npm run build. This results in running these scripts in this order:

  • build-lib will compile the face code into dist/Face3D.min.js
  • copy-webapp will copy all the files in dist/ and put them into webapp/. This is the folder containing the wrapper web app the native apps use. The iOS library uses these files directly.
  • copy-android copies all files in webapp/ into the Android project's assets/ folder. This is because I couldn't get the Android gradle build process to read these files directly.