Git Product home page Git Product logo

vcp's Introduction

VCP

Easy, Simple, Flexible

A WebSocket/JSON (also MessagePack) based VR-Control (Mo-Cap, Emotion, Lip-Sync, General-Control) communication protocol.

VCP stands for Virtual Communication Protocol or Virtual Control Protocol

Other languages: ja

Reference Implementation

  • C# : This repository. See README_cs.md (link) for more info.
  • TypeScript : vcp-ts

Protocol Spec (Brief/Draft)

Complete specs: here (WIP)

Note

In VCP, a word API refers "data container specifications".

The author understands it confusing and will change this keyword to some other word (like Schema). However the word are already used widely so refactoring may take long time.

So, under v1 series, the word API will be used as a "data container specification".

Communication Spec

WebSocket based communication.

VCP defines some APIs to communicate. See JSON schema.

All communications are written in JSON/MessagePack formats.

JSON Schema

JSON Schema : under /schema, written in yaml.

Belows are some important APIs.

GitHub Style Table

API Role
handshake Tell relay server who you are (Sink, Source, Control)
headPose Send head pose captured with some face detection program
fullBody Send full body tracking data (or a part of them)
bust Send spine, arms, head poses (bust and above poses)
interact Send interaction control (grab an object, throw it, etc.)
controlAPI suite Exchange general purpose controls
(includes interation, recordings, lighting controls, etc.)

Pandoc Style Table (for reading with local text editor)

+------------------+------------------------------------------------------------+ | API | Role | +==================+============================================================+ | handshake | Tell relay server who you are (Sink, Source, Control) | +------------------+------------------------------------------------------------+ | headPose | Send head pose captured with some face detection program | +------------------+------------------------------------------------------------+ | fullBody | Send full body tracking data (or a part of them) | +------------------+------------------------------------------------------------+ | bust | Send spine, arms, head poses (bust and above poses) | +------------------+------------------------------------------------------------+ | interact | Send interaction control (grab an object, throw it, etc.) | +------------------+------------------------------------------------------------+ | controlAPI suite | Exchange general purpose controls | | | (includes interation, recordings, lighting controls, etc.) | +------------------+------------------------------------------------------------+

MessagePack Support

VCP also supports MessagePack.

Reference C# VCP implementation supports direct MessagePack communications, which means you can send MessagePack binaries without some JSON handshakes in advance. (The implementation checks every arrived message whether it is text or binary, then convert it in a C# native structure.)

Direct communication is an optional feature and is not required for your implementations.

License

VCP C# Reference Implementation and VCP Protocol Specification is licensed under MIT License.

See LICENSE

vcp's People

Contributors

ryu-raptor avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.