npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@viamrobotics/motion-tools

v1.5.0

Published

Motion visualization with Viam

Downloads

3,606

Readme

motion-tools

motion-tools aims to provide a visualization interface for any spatial information using Viam's APIs. This typically means motion-related monitoring, testing, and debugging.

Getting started

To run the app, you will need to set your project up by installing the app dependencies and ensuring you can connect to your machines if required.

Project setup

The easiest way to get started is using our automated setup script:

make setup

This single command will:

  1. Install and configure nvm (Node Version Manager)
  2. Install the latest Node.js LTS version via nvm
  3. Install pnpm package manager
  4. Install bun runtime
  5. Install all project dependencies

Manual setup

If the above does not work for you, or if you prefer to install dependencies manually:

  1. Install nvm
  2. Install Node.js LTS: nvm install --lts && nvm use --lts
  3. Install pnpm
  4. Install bun
  5. Install dependencies: pnpm i

Env files for machine configs

To add a list of connection configs in an .env.local file, use the following format:

VITE_CONFIGS='
{
  "fleet-rover-01": {
    "host": "fleet-rover-01-main.ve4ba7w5qr.viam.cloud",
    "partId": "myPartID",
    "apiKeyId": "myApiKeyId",
    "apiKeyValue": "MyApiKeyValue",
    "signalingAddress": "https://app.viam.com:443"
  }
}
'

Running the app locally

After setup completes, you can start a local app server with:

make up

This starts the app as a static site. The build part of the process will only run if you have not built the app yet as a part of make up, or your build is out of date.

Running multiple apps

If you want to be able to run multiple versions of the app, you can configure how the servers run. The make up command can accept two options:

  1. STATIC_PORT is the port for the static file server, and defaults to 5173
  2. WS_PORT is the port for the websocket server used to communicate with the draw client API

[!NOTE] The WS_PORT is not fully configurable at the moment, so passing it will only affect where the frontend listens for the websocket server, but calls with the draw client API are currently hardcoded to point to "http://localhost:3000/". If this is a feature you require, please submit a request to the viz team!

To run two apps using the same web socket server, run:

# in one terminal
make up

# in another terminal
make up STATIC_PORT=5174

The apps should be available on http://localhost:5173/ and http://localhost:5174/, and calls to the draw client API should render in both.

Local development

If you are contributing to motion-tools, you should just run the development web server with:

pnpm dev

Running the visualizer

To visit the visualizer, go to http://localhost:5173/

Open the machine config page (bottom right) and enter in connection details to visualize a specific machine. You can also add machine configs from an env file (see below).

Executing drawing commands

The visualizer includes a golang package that allows executing commands to the visualizer.

The list of available commands can be found here.

Programmatic camera control

It is possible to programmatically move the viewer camera and even modify the camera settings during runtime.

To do this, open the Javascript console while using the visualizer and call methods or set properties on the cameraControls object.

The following APIs are available: https://github.com/yomotsu/camera-controls?tab=readme-ov-file#properties