open-index/open-npm huggingface dataset:
npm package: @newgameplus/lib-pixelstreamingfrontend-ue5.3
Description: Frontend library for Unreal Engine 5.3 Pixel Streaming
Author: Epic Games
Latest version: 1.0.4

## lib-pixelstreamingfrontend

The core library for the browser/client side of Pixel Streaming experiences. **This library contains no UI.**

See [lib-pixelstreamingfrontend-ui](/Frontend/implementations/typescript) for an example of how to build UI on top of this library.

### Key features
- Create a websocket connection to communicate with the signalling server.
- Create a WebRTC player that displays the Unreal Engine video and audio.
- Handling of input from the user and transmitting it back to Unreal Engine.
- Opens a datachannel connection sending and receiving custom data (in addition to input).

### Adding it to your project
`npm i @epicgames-ps/lib-pixelstreamingfrontend-ue5.3`
npm package: @newgameplusinc/odyssey-spatial-sdk-wrapper
Description: Odyssey Spatial Audio & Video SDK using MediaSoup for real-time communication
Author: New Game Plus Inc
Latest version: 1.0.50
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Odyssey Spatial Audio SDK

A comprehensive SDK for real-time spatial audio and video communication using MediaSoup, designed for immersive multi-user experiences in the Odyssey platform.

## Purpose

This package provides a complete WebRTC-based spatial audio and video solution that:
- Manages MediaSoup connections for audio/video streaming
- Implements spatial audio using Web Audio API with HRTF
- Handles participant management with user profile data (bodyHeight, bodyShape, email, etc.)
- Provides real-time position tracking for immersive spatial experiences

## Installation

You can install this package from npm:

```bash
npm install @newgameplusinc/odyssey-spatial-sdk-wrapper
```

Or install locally:

```bash
npm install ../mediasoup-sdk-test
```

## Usage

### 1. Initialize the SDK

```typescript
import { OdysseySpatialComms } from "@newgameplusinc/odyssey-spatial-sdk-wrapper";

// Initialize with your MediaSoup server URL
const sdk = new OdysseySpatialComms("https://your-mediasoup-server.com");
```

### 2. Join a Room with User Profile Data

```typescript
const participant = await sdk.joinRoom({
  roomId: "my-room",
  userId: "user-123",
  deviceId: "device-456",
  position: { x: 0, y: 0, z: 0 },
  direction: { x: 0, y: 0, z: 1 },
  bodyHeight: "0.5",    // User's avatar height from Firebase
  bodyShape: "4",       // User's avatar body shape from Firebase
  userName: "John Doe", // User's display name
  userEmail: "john@example.com" // User's email
});
```

### 3. Produce Audio/Video Tracks

```typescript
// Get user media
const stream = await navigator.mediaDevices.getUserMedia({ 
  audio: true, 
  video: true 
});

// Produce audio track
const audioTrack = stream.getAudioTracks()[0];
await sdk.produceTrack(audioTrack);

// Produce video track
const videoTrack = stream.getVideoTracks()[0];
await sdk.produceTrack(videoTrack);
```

### 4. Update Position for Spatial Audio

```typescript
sdk.updatePosition(
  { x: 10, y: 0, z: 5 },  // New position
  { x: 0, y: 0, z: 1 }    // New direction
);
```

### 5. Listen to Events

```typescript
// New participant joined
sdk.on("new-participant", (participant) => {
  console.log("New participant:", participant.userName, participant.bodyHeight);
});

// Participant left
sdk.on("participant-left", (participantId) => {
  console.log("Participant left:", participantId);
});

// Consumer created (receiving audio/video from remote participant)
sdk.on("consumer-created", ({ participant, track, consumer }) => {
  console.log("Receiving", track.kind, "from", participant.userName);
});
```

## Build

To build the package, run:

```bash
npm run build
```