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

geonodes-web-render

v0.3.23

Published

Browser-based viewer for Blender Geometry Nodes exported via Tree Clipper. Renders node trees as a read-only, Blender-styled graph.

Readme

geonodes-web-render

npm

A browser-based viewer for Blender node trees exported via the Tree Clipper add-on. It renders the exported JSON as a read-only, Blender-styled node graph using React Flow.

📦 npm: geonodes-web-render

What it does

Paste or load a Tree Clipper JSON export and the app displays the node graph with accurate socket colors, node header colors, reroute nodes, float curves, and simulation zones.

Data flow:

Tree Clipper JSON / base64 payload
  → normalizeBlenderGraph   (flatten nodes, flip Y axis, assign colors)
  → toGraphIR               (socket-centric edges, resolve links)
  → mapGraphIRToFlow        (React Flow nodes/edges, simulation zone frames)
  → read-only React Flow canvas

Features

  • 10 built-in examples — real Tree Clipper exports loadable from tabs
  • Custom JSON input — paste JSON directly into the built-in CodeMirror editor
  • Clipboard import — decode a TreeClipper:: base64/gzip payload from clipboard
  • Simulation zones — automatically detects and frames nodes between simulation input/output pairs using graph reachability
  • Blender fidelity — socket and header colors sourced from Blender's own tables; Math/Compare nodes show human-readable operation labels
  • Embeddable — ships a separate embed entry point for use as a library

Controls

| Action | Mouse | Trackpad | | --- | --- | --- | | Box-select | Left-drag | Left-drag | | Pan | Middle-drag | Two-finger drag | | Zoom | Wheel | Pinch | | Zoom (modifier) | /Ctrl + wheel | /Ctrl + two-finger | | Context menu | Right-click | Right-click |

Mouse vs. trackpad is auto-detected per scroll, so wheel-zoom and two-finger-pan coexist. In an embed, scroll passes through to the page until you click the canvas to engage; moving the pointer off disengages.

Usage

Standalone app

npm install
npm run dev

Open http://localhost:5173/geonodes-web-render/ and pick an example or paste your own JSON.

Embed in another app

import { mountGraphView, unmountGraphView } from 'geonodes-web-render/embed'

// payload can be a raw JSON string or a TreeClipper:: base64 encoded string
mountGraphView(container, payload)

// later
unmountGraphView(container)

Or use the React component directly:

import { GraphView } from 'geonodes-web-render/embed'

<GraphView payload="TreeClipper::H4sI..." />

Preview the embed locally. The embed view (with the "Copy TreeClipper Magic String" button and toast) isn't reachable from the standalone app, so a dev-only harness page is included. Run npm run dev and open http://localhost:5173/geonodes-web-render/dev-embed.html — it mounts GraphView with a bundled example graph. The harness lives in dev-embed.html

  • src/dev-embed.tsx and is excluded from the published package.

Tech stack

  • React 19 + TypeScript
  • Vite (with React Compiler enabled)
  • @xyflow/react (React Flow v12) — graph rendering
  • @uiw/react-codemirror — JSON editor with one-dark theme

Deployment

The app is configured with base: "/geonodes-web-render/" for hosting on a subpath (e.g. GitHub Pages). Adjust vite.config.ts if deploying to a root path.