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 🙏

© 2024 – Pkg Stats / Ryan Hefner

skewed

v0.7.0

Published

Generate 3D isometric SVGs

Downloads

17

Readme

Skewed

Skewed is a Typescript package for generating SVG of 3D graphics in real-time. It has an opionated default look and orthographic projection only camera support, isometric by default.

Use it to make simple 3D infographics, 3D web-games, or generate 3D SVG files for importing into vector editors like Figma/Illustrator (Ie. make 3D icons).

Live demo

Usage

  1. npm install skewed
  2. Reference the live demo's source code. More API examples coming soon. In the meantime

Contributing

Setup

  1. Install dependencies
    1. Node.js
    2. pnpm
  2. Clone and go into the folder
    git clone [email protected]:seflless/skewed.git
    cd skewed

Dev

To serve up the workbench web-page and rebuild on code changes run the following.

pnpm dev
# Open the workbench page at http://localhost:3000/

Building

pnpm build

Testing

TBD

Publishing to NPM

Do the usual npm version bump then publish.

# Make sure tests pass. `pnpm test` (we should automate this in a publish command)
pnpm build
npm version <major|minor|patch>
git push; git push --tags
npm publish

Test

Using vitest, the test are rerun whenever you change related code.

pnpm test

Watch Tests

TODO: Do we need to put in a difference command for the CLI?

Prio Art

Here are some cool existing project I found after starting this. In no particular order:

ZDog

  • Project Website
  • Github repo
  • Great article covering it: https://css-tricks.com/zdog/
  • I found this one when looking for ideas about how to light 3D spheres.
  • Love the cool art style in the demos that it's well suited too.
  • Finding a good artist/art-style to use as guodance (and demos) will go really far. The homepage demo is based on this 2D art: https://www.robindavey.co.uk/#/nippu/
  • There's no lighting support, but that really simplifies things for this art style.
    • Here's an example mini town where stylistic lighting (really just contrasting planes) is used
  • This influenced me into focusing on toon shading style lighting/graphics too (As allow specifying an amount of shades gradients)
  • The documentation is great
  • It's making me consider supporting a canvas renderer
    • Would be better for mixing into other canvas rendering (Is this true for WebGL, or is copying from canvas to WebGL textures slow?)
    • Read: Canvas or SVG?
  • Rendering with SVG without Illustration
    • I'd been thinking about doing this same approach, allowing people to take control of rendering order to mix compositions into other HTML/SVG
  • See some of the Feature Requests and discussions
    • Supporting Perspective cameras, not just ortho
      • I like encouraging ortho only (and variants like oblique/cabinet)
      • It should be more performant when only translating camera and objects, that's a good thing
      • I'm with this comment, it doesn't play well with SVG curve capabilities.