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

@code3d/materials

v0.0.1-alpha.17

Published

Common material presets for Code3D. Each factory returns a new native Three.js material from `@code3d/core/three`, ready for a model's `.material()` call.

Readme

@code3d/materials

Common material presets for Code3D. Each factory returns a new native Three.js material from @code3d/core/three, ready for a model's .material() call.

Installation

npm install @code3d/core @code3d/materials

The App includes Materials with its built-in Core. Install Core and Materials when using Node or a project with its own Core installation.

Example

Compare ten material presets on equal-size spheres under the same lighting.

This example also uses @code3d/layout to arrange the spheres in a grid. For an installed project, add it separately:

npm install @code3d/layout
import {group, sphere} from '@code3d/core';
import {grid} from '@code3d/layout';
import {
  plastic,
  rubber,
  aluminum,
  steel,
  brass,
  copper,
  glass,
  acrylic,
  ceramic,
  paint,
} from '@code3d/materials';

// Switch to Render to compare equal-size samples under the same lighting.
// Read each row from left to right, starting with the back row.
const finishes = [
  plastic(),
  rubber(),
  aluminum(),
  steel(),
  brass(),
  copper(),
  glass({thickness: 16}),
  acrylic({finish: 'frosted', thickness: 16}),
  ceramic(),
  paint(),
];
const samples = grid(
  finishes.map(finish => sphere(8).material(finish)),
  {
    columns: 5,
    axes: ['x', 'z'],
    gap: 8,
  },
);

const palette = group(samples, {name: 'Material presets'});
export default palette;

Ten equal-size spheres rendered with plastic, rubber, aluminum, steel, brass, copper, glass, frosted acrylic, ceramic and paint.

In the App, switch to Render to compare the surfaces. Back row, left to right: plastic, rubber, aluminum, steel, brass. Front row: copper, glass, frosted acrylic, ceramic, paint.

Complete example: material palette.

Usage notes

  • Each factory accepts a color or an options object. Explicit properties such as roughness override the selected finish.
  • Glass and acrylic use light transmission, not alpha fading. Their thickness is a rendering parameter, not a measurement of the model; this example uses 16.
  • Lighting and reflections affect the result. Presets describe materials; they do not configure the scene or load textures.

Documentation

Source and development