New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

tact-js

Package Overview
Dependencies
Maintainers
3
Versions
55
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tact-js

![npm](https://img.shields.io/npm/v/tact-js) ![license](https://img.shields.io/npm/l/tact-js) ![CI](https://github.com/bhaptics/tact-js/workflows/CI/badge.svg) ![Code Quality](https://github.com/bhaptics/tact-js/workflows/Code%20Quality/badge.svg) ![npm d

latest
Source
npmnpm
Version
2.0.4
Version published
Weekly downloads
60
106.9%
Maintainers
3
Weekly downloads
 
Created
Source

npm license CI Code Quality npm downloads

bHaptics Web SDK

Web-based haptic control library for bHaptics devices. A variety of haptic events can be played in your browser.

  • Written in TypeScript
  • Supports ESM

✨ Features

🎮 Play events

Play haptic event exported from bHaptics developer portal

video

🔵 Dot mode

Play single-frame feedback with intensity-mapped dot values

dot-mode

🧭 Path mode

Play directional feedback across the surface of a device

path-mode

📦 Installation

npm install tact-js
# or
yarn add tact-js
# or
pnpm add tact-js

🚀 Quick Start

Prerequisite

  • Download and install the bHaptics Player
  • Make sure the Player is running
  • Connect your bHaptics Device to the Player
  • Ensure the Player version is vX.Y.Z or later

Usage

Initialize the library

import Tact from 'tact-js';

// Initialize the library
Tact.init({
  appId: '<APP_ID>',
  apiKey: '<API_KEY>',
});

Play an event

import Tact, { PositionType } from 'tact-js';

// Play an event
Tact.play({ eventKey: key });

Play dot mode

import Tact, { PositionType } from 'tact-js';

// Play a dot
Tact.playDot({
  position: PositionType.Vest,  // e.g., Vest, Head, ForearmL, ForearmR etc.
  motorValues: [100, 0, ... , 0], // 0 ~ 100
});

Play path mode

import Tact, { PositionType } from 'tact-js';

// Play a path
Tact.playPath({
  position: PositionType.Vest,  // e.g., Vest, Head, ForearmL, ForearmR etc.
  x: [0.4, 0.42, ... , 1], // 0 ~ 1
  y: [0.5, 0.52, ... , 1], // 0 ~ 1
  intensity: [100, 89, ... , 49], // 0 ~ 100
});

📚 API

Tact.init(params: InitParams): void

  • Initialize the library
  • params:
    • appId: string - Your application ID
    • apiKey: string - Your API key
    • remote?: string - (Optional) Remote IP address and Port number of the bHaptics Player (ex. "192.168.0.123:15881")

Tact.play(params: PlayParams): void

  • Play an event
  • params:
    • eventKey: string - Event key
    • startTime?: number - Start time in milliseconds
    • intensityRatio?: number - Intensity ratio
    • durationRatio?: number - Duration ratio
    • offsetX?: number - Offset X
    • offsetY?: number - Offset Y

Tact.playDot(params: PlayDotParams): void

  • Play a dot
  • params:
    • position: PositionType - Position type
    • motorValues: number[] - Motor values
    • duration?: number - Duration in milliseconds

Tact.playPath(params: PlayPathParams): void

  • Play a path
  • params:
    • position: PositionType - Position type
    • x: number[] - X values
    • y: number[] - Y values
    • intensity: number[] - Intensity values
    • duration?: number - Duration in milliseconds

🛠 Troubleshooting

Vite

If you are using Vite, you may need to add the following to your vite.config.js file:

export default defineConfig({
  // ...
  optimizeDeps: {
    exclude: ['tact-js'],
  },
  // ...
});

Demo

  • Online demo: tact-js
  • Local demo: Check the demo/ directory for a minimal setup example

🪪 License

bHaptics License

FAQs

Package last updated on 16 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts