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 🙏

© 2025 – Pkg Stats / Ryan Hefner

mesh-viewer

v1.0.0

Published

Just draws meshes

Readme

mesh-viewer

A module that draws meshes with a simple orbit based camera. This is useful for quickly making demos and live coding.

Example

var shell = require("mesh-viewer")()
var mesh

shell.on("viewer-init", function() {
  mesh = shell.createMesh(require("bunny"))
})

shell.on("gl-render", function() {
  mesh.draw()
})

Try it out on requirebin!

Install

npm install mesh-viewer

API

The main viewer class is a modification of gl-now and inherits all the same properties and methods as that.

var createShell = require("mesh-viewer")

Constructor

var shell = createShell([options])

Creates a viewer. In addition to accepting all the arguments as gl-now, it also takes in the following arguments:

  • fov Default fov for camera
  • zNear Near clip plane
  • zFar Far clip plane
  • meshColor Default color for meshes
  • pointSize Default point size for meshes
  • useCellNormals If set, use flat shading for polygons
  • ambient Default ambient light color * intensity
  • diffuse Default diffuse light color * intensity
  • specular Default specular light color * intensity
  • specularExponent Default specular exponent
  • lightPosition Default light position

Returns A mesh viewer shell

Events

In addition to the events in gl-now and game-shell, mesh-viewer has the following event:

"viewer-init"

This event is triggered after the viewer is initialized.

Properties

viewer.camera

An instance of a game-shell-orbit-camera that controls the viewing direction.

viewer.fov

The FOV of the camera

viewer.zNear

The near z clip plane distance

viewer.zFar

The far z clip plane distance

Methods

var mesh = viewer.createMesh(params)

Creates a mesh object that can be drawn. This works the same as gl-simplicial-complex. The params object accepts the following parameters:

  • cells (Required) An indexed list of vertices, edges and/or faces.
  • positions (Required) An array of positions for the mesh, encoded as arrays
  • vertexColors A list of per vertex color attributes encoded as length 3 rgb arrays
  • cellColors A list of per cell color attributes
  • meshColor A constant color for the entire mesh
  • vertexNormals An array of per vertex normals
  • cellNormals An array of per cell normals
  • useFacetNormals A flag which if set to true forces cellNormals to be computed
  • pointSizes An array of point sizes
  • pointSize A single point size float

Returns A drawable mesh object

Mesh Object Methods

mesh.draw([params])

Draws the mesh object. Params has the same properties as in gl-simplicial-complex

mesh.update([params])

Updates the mesh. Same conventions as before.

mesh.dispose()

Destroys mesh releasing all resources.

Credits

(c) 2013 Mikola Lysenko. MIT License