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

xrift-dcpen

v0.1.4

Published

QvPen-style spatial drawing pen for XRift worlds & items — 空間らくがきペン

Downloads

33

Readme

DcPen ✏️

XRift 用の空間らくがきペン — VRChat の QvPen の操作体系を、XRift のワールドとアイテムの両方に持ち込んだものです。

A QvPen-style spatial drawing pen for XRift worlds & items.

DcPen

できること

  • 鉛筆型の 14色+虹ペン が空中のラックに並ぶ(虹ペンの線は虹色グラデーション)
  • VR: 左右どちらの手でもグリップ(握る)で掴む。両手に1本ずつ持てる。掴んだ瞬間の持ち方のまま手に追従(縦持ち・横持ち自由)。グリップを離すとその場の空中に浮いて留まる
  • 持ち手のトリガーで描く。トリガー2連打(0.2秒)で消しゴムモード=ペン先が球になり、触れた部分だけ削れる部分消し(線は残りに分割。本家に無い拡張)
  • 消しゴム×3: 掴んでトリガーで線に当てると、その線が1本消える(本家準拠)
  • ペンごとの Respawn / Clear(色別消し) ボタン、左パネルに Undo / Clear All / All Reset
  • 線・持ち主・浮遊位置はインスタンス内で全員に同期。late joiner にも復元
  • デスクトップ: クリックで持つ/戻す・左ボタン長押しで描く
  • 描いた線はインスタンスが生きている限り残る=書き置きができる

ワールドに置く

npm install xrift-dcpen
import { DcPen } from 'xrift-dcpen'

export const World = () => (
  <>
    {/* 任意の位置・向きに置ける。複数置くなら syncId を変える */}
    <DcPen position={[0, 0, -3]} rotationY={Math.PI / 4} />
  </>
)

| prop | 既定 | 説明 | | --- | --- | --- | | position | [0, 0, 0] | 設置位置(ラックの足元) | | rotationY | 0 | Y回転。ラック正面は +Z | | syncId | 'dcpen' | 同期キーの名前空間。複数設置時は一意にする |

依存(react / three / @react-three/fiber / @react-three/drei / @react-three/rapier / @xrift/world-components)はすべて peerDependencies です。XRift ワールドプロジェクトなら追加インストールは不要です。

アイテム版

このリポジトリは XRift アイテムとしてもビルドされます(npm run buildxrift upload item)。アイテム版はインベントリからどのワールドにも設置できます。

名前の由来

特にありません。

クレジット

  • 操作体系は QvPen(ureishi さん)へのリスペクト実装です。コードは React Three Fiber でゼロから書いており、本家(UdonSharp)からの流用はありません
  • 参考: HQ・LQ切り替えスイッチ付ミラー ほか VRChat のワールドギミック文化

開発

npm install
npm run dev        # devプレビュー (https, ?preview で設置プレビュー確認)
npm run build      # XRiftアイテムのビルド (Module Federation)
npm run build:lib  # npmライブラリのビルド (lib/)

License

MIT