Skip to content

feat: add Augmenta JavaScript SDK V1 functional base - #1

Merged
Lyptik merged 2 commits into
mainfrom
feat/v1-functional-base
Sep 29, 2026
Merged

Lyptik merged 2 commits into
mainfrom
feat/v1-functional-base

Conversation

@Lyptik

@Lyptik Lyptik commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

Summary

Build the first functional base of the Augmenta JavaScript/TypeScript client SDK, following the same philosophy as AugmentaClientSDK-cpp / AugmentaClientSDK-CS while adapting it to browsers, web applications, Node.js and future Max/MSP / Max for Live integrations.

Architecture

  • transport-independent Client core, matching the C++ SDK philosophy
  • typed ProtocolOptions, DataBlob, ControlMessage and hierarchy/data classes
  • binary parser aligned with the current Pleiades WebSocket writer
  • small optional AugmentaWebSocketClient convenience transport
  • no runtime dependencies
  • ESM + CommonJS + TypeScript declarations

Protocol support

  • V2 bundle / scene / object / zone-event parsing
  • clusters, point clouds and optional point intensity data
  • zone enter/leave/presence/density, slider, XY pad and zone point clouds
  • setup/update JSON hierarchy for scenes and zones
  • current Pleiades V3 extensions:
    • bundle timestamp
    • scene timestamp
    • UUID-based object packets
    • readable cluster ID
  • injected synchronous Zstd decompressor
  • explicit failure for legacy V1 rather than silently parsing with the wrong layout

Web behavior

The low-level ProtocolOptions keeps the C++ SDK defaults. The WebSocket convenience layer defaults to uncompressed frames so a normal browser client works without adding a Zstd dependency.

Quality / packaging

  • CI on Node 20 + 22
  • 8 focused tests
  • ESM and CommonJS loading covered
  • npm pack --dry-run included in npm run check
  • README, API overview, protocol compatibility doc, browser example, contributing guide
  • current Augmenta SDK license copied from the C# SDK
  • zero third-party runtime dependencies

Local validation

npm run check passes locally:

  • TypeScript ESM build
  • TypeScript CommonJS build
  • 8/8 tests
  • npm package dry-run

Notes

The npm package name is currently augmenta-client-sdk and version 0.1.0. No npm publication is performed by this PR yet; package naming / registry publication can be finalized before the first public release.

@Lyptik
Lyptik marked this pull request as ready for review September 29, 2026 10:09
@Lyptik
Lyptik merged commit 15b9cac into main Sep 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant