Getting Started
Step 1: Sign up
If you don't have an account, please contact us at Cognitive3D.com
Step 2: Install the NPM package
npm install cognitive3d-analytics
Step 3: Create a Settings File
To initialize the package properly, C3DAnalytics needs to be instantiated with settings.
We recommend creating a settings file that you can then import to your files:
//settings.js
export default {
config: {
APIKey: 'ASDF1234ASDF', // API Key is available on the dashboard
gazeBatchSize: 64, // Number of Gaze snapshots stored in a batch before sending to server
dynamicDataLimit: 64, // Number of Dynamic Object snapshots stored in a batch before sending to server
customEventBatchSize: 64, // Number of Custom Event snapshots stored in a batch before sending to server
sensorDataLimit: 64, // Number of Sensor snapshots stored in a batch before sending to server
HMDType: 'Oculus Rift', // Defaut HMD Type set in Metadata for this project. You can overwrite this at run time via Metadata methods.
allSceneData: [
// Scene data can be found on the Dashboard
{
sceneName: 'test_scene1',
sceneId: 'test_id1',
versionNumber: '1'
},
{
sceneName: 'test_scene2',
sceneId: 'test_id2',
versionNumber: '2'
},
{
sceneName: 'test_scene3',
sceneId: 'test_scene3',
versionNumber: '3'
},
{
sceneName: 'tutorial',
sceneId: 'b9d33399-1e13-428e-9559-7d15f28e9683',
versionNumber: '3'
}
]
},
}
Step 4: Import plugin and settings
//app.js
import C3DAnalytics from 'cognitive-3d-analytics/lib'
import mySettings from './settings.js'
const c3d = new C3DAnalytics(mySettings);
Step 5: Add user metadata
c3d.userId = 'myUserId'; // Required
c3d.setUserName("John Smith"); // A friendly name to label this user session
//User properties & metadata can be set using the following method: setUserProperty('property', 'value);
c3d.setUserProperty('Age', 21);
c3d.setUserProperty('SomeGroup', 'someValue');
c3d.setUserProperty('HairColor', 'Brown');
//Device specific properties work the same:
c3d.setDeviceName('Samsung');
c3d.setDeviceProperty('AppName', 'myTestApp');
A full list of all device properties that can found on the metadata page.
Step 6: Start a Session
Choose which scene is currently active, and start the session:
c3d.setScene('test_scene1');
c3d.startSession();
Step 7: Record User Gaze
We provide a simple API to record users' Gaze data:
c3d.gaze.recordGaze(pos, rot, gaze, objectId /*optional*/);
// pos: position array [x,y,z] of the the current position of the user. The HMD position in worldspace.
// rot: quaternion rotation [x, y, z, w] of the user's head.
// gaze: position array [x,y,z] in local object space where the user is gazing at
// objectId: objectId when gazing at a Dynamic Object. If this is not set, assumption is made that user is looking at some point on the static scene object.
In practice:
//app.js
import C3DAnalytics from 'cognitive-3d-analytics/lib'
import settings from './settings.js'
...
const c3d = new C3DAnalytics(settings);
c3d.setScene('test_scene1');
c3d.startSession();
const pos = [0, 0, 0];
const point = [0, 0, 1];
const rot = [0, 0, 0, 1];
c3d.gaze.recordGaze(pos, rot);
//or
c3d.gaze.recordGaze(pos, rot, point, 'object_id');
Generally we consider recording the user gaze at 10Hz (10 times per second).
For custom events, sensor data, and more features please see the feature tabs on the left.