import { VajviewSDK } from "@vajview/core"

const vaj = new VajviewSDK({ apiKey: process.env.VAJVIEW_KEY })

vaj.onDetection((event) => {
  console.log(event.label, event.distance, event.bearing)
  // "cyclist" 2.3 210
})

vaj.startSession({ mode: "navigation" })

import { VajviewSDK } from "@vajview/core"

const vaj = new VajviewSDK({ apiKey: process.env.VAJVIEW_KEY })

vaj.onDetection((event) => {
  console.log(event.label, event.distance, event.bearing)
  // "cyclist" 2.3 210
})

vaj.startSession({ mode: "navigation" })

import { VajviewSDK } from "@vajview/core"

const vaj = new VajviewSDK({ apiKey: process.env.VAJVIEW_KEY })

vaj.onDetection((event) => {
  console.log(event.label, event.distance, event.bearing)
  // "cyclist" 2.3 210
})

vaj.startSession({ mode: "navigation" })

import { VajviewSDK } from "@vajview/core"

const vaj = new VajviewSDK({ apiKey: process.env.VAJVIEW_KEY })

vaj.onDetection((event) => {
  console.log(event.label, event.distance, event.bearing)
  // "cyclist" 2.3 210
})

vaj.startSession({ mode: "navigation" })

import { VajviewSDK } from "@vajview/core"

const vaj = new VajviewSDK({ apiKey: process.env.VAJVIEW_KEY })

vaj.onDetection((event) => {
  console.log(event.label, event.distance, event.bearing)
  // "cyclist" 2.3 210
})

vaj.startSession({ mode: "navigation" })

import { VajviewSDK } from "@vajview/core"

const vaj = new VajviewSDK({ apiKey: process.env.VAJVIEW_KEY })

vaj.onDetection((event) => {
  console.log(event.label, event.distance, event.bearing)
  // "cyclist" 2.3 210
})

vaj.startSession({ mode: "navigation" })

import { VajviewSDK } from "@vajview/core"

const vaj = new VajviewSDK({ apiKey: process.env.VAJVIEW_KEY })

vaj.onDetection((event) => {
  console.log(event.label, event.distance, event.bearing)
  // "cyclist" 2.3 210
})

vaj.startSession({ mode: "navigation" })

import { VajviewSDK } from "@vajview/core"

const vaj = new VajviewSDK({ apiKey: process.env.VAJVIEW_KEY })

vaj.onDetection((event) => {
  console.log(event.label, event.distance, event.bearing)
  // "cyclist" 2.3 210
})

vaj.startSession({ mode: "navigation" })

Ship spatial intelligence in your hardware.

TypeScript SDK. Real-time detection events. Spatial audio pipeline. Full control over what your users hear and when.

From zero to spatial audio in 4 steps.

1

Install the SDK

One package or pick individual modules. Tree-shakeable. Zero peer dependencies.

bash
npm install @vajview/sdk
# or individual modules
npm install @vajview/edge @vajview/cloud @vajview/audio
2

Configure your engines

Point to your license key. Choose models. Set audio output. One file.

typescript
import { defineConfig } from '@vajview/sdk'

export default defineConfig({
  licenseKey: process.env.VAJVIEW_KEY,
  edge: { model: 'detect-v3' },
  cloud: { model: 'vlm-v2' },
  audio: { renderer: 'binaural-hrtf' }
})
3

Handle spatial events

Subscribe to typed events. Edge events fire in 47ms. Cloud events stream as available.

typescript
import { vajview } from './vajview.config'

vajview.on('threat', (event) => {
  console.log(`${event.label} at ${event.bearing}°, ${event.distance}m`)
})

vajview.on('navigation', (event) => {
  console.log(`${event.label}: ${event.instruction}`)
})
4

Start the engine

One method call. Camera activates. Audio connects. Spatial intelligence begins.

typescript
vajview.start()
// That's it. Intelligence flows.

Your prototype is live. Edge detection + cloud comprehension + spatial audio — running.

Typed. Documented. Predictable.

Full TypeScript definitions. Every event typed. Every response structured.

DetectionEvent
interface DetectionEvent {
  id: string
  label: string         // "cyclist" | "vehicle"
  priority: Priority    // CRITICAL | HIGH | LOW
  bearing: number       // 0-360°
  distance: number      // meters
  velocity: Vector3
  confidence: number    // 0-1
  source: 'edge' | 'cloud'
  timestamp: number
}
SceneComprehension
interface SceneComprehension {
  summary: string
  objects: SceneObject[]
  text: TextReading[]
  faces: FaceMatch[]
  navigation: NavSuggestion
  confidence: number
  processingTime: number // ms
}
SpatialAudioConfig
interface SpatialAudioConfig {
  renderer: 'binaural-hrtf' | 'stereo'
  field: '360' | '180-forward'
  channels: AudioChannel[]
  urgencyMapping: {
    [Priority.CRITICAL]: { volume: 1 }
    [Priority.HIGH]: { volume: 0.8 }
    [Priority.LOW]: { volume: 0.4 }
  }
}

Build something that matters.

SDK access is currently limited to hardware partners and approved developers. Apply with your use case.

Response within 48 hours. NDA required for pre-release APIs.