react-three-nurbs
Version:
A React component library for NURBS (Non-Uniform Rational B-Spline) curves, surfaces, and solids in Three.js. Built with React Three Fiber, zero external NURBS dependencies — all math implemented from scratch. Boolean operations powered by OpenCASCADE WAS
91 lines (90 loc) • 2.59 kB
JSON
{
"name": "react-three-nurbs",
"private": false,
"version": "0.4.5",
"type": "module",
"files": [
"dist",
"src/occt/occtBooleans.js",
"src/occt/occtBooleans.wasm",
"src/occt/occtBooleans.d.ts"
],
"author": "Tommaso Turchi",
"license": "MIT",
"main": "./dist/index.js",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"import": "./dist/index.js",
"types": "./dist/index.d.ts"
}
},
"scripts": {
"dev": "npm run setup:occt && storybook dev -p 6006",
"build": "tsc && vite build && tsc -p tsconfig.build.json",
"lint": "eslint .",
"storybook": "npm run setup:occt && storybook dev -p 6006",
"build-storybook": "npm run setup:occt && storybook build",
"setup:occt": "mkdir -p public && cp -f src/occt/occtBooleans.wasm public/ 2>/dev/null || true",
"test": "vitest",
"test:run": "vitest run",
"prepublishOnly": "npm run build",
"preversion": "npm run lint && npm run test:run",
"release": "npm run lint && npm run test:run && npm run build && npm publish"
},
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git+https://github.com/tommasoturchi/react-three-nurbs.git"
},
"keywords": [
"react",
"three.js",
"react-three-fiber",
"nurbs",
"curves",
"surfaces",
"3d"
],
"bugs": {
"url": "https://github.com/tommasoturchi/react-three-nurbs/issues"
},
"homepage": "https://react-three-nurbs.trx.li/",
"dependencies": {
"earcut": "^3.0.1"
},
"devDependencies": {
"@storybook/addon-essentials": "8.6.14",
"@storybook/addon-interactions": "8.6.14",
"@storybook/addon-links": "8.6.14",
"@storybook/blocks": "8.6.14",
"@storybook/builder-vite": "8.6.14",
"@storybook/react": "8.6.14",
"@storybook/react-vite": "8.6.14",
"@types/node": "^22.15.17",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
"@types/three": "^0.161.2",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"@vitejs/plugin-react": "^4.2.1",
"eslint": "^8.56.0",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.5",
"happy-dom": "^20.8.9",
"typescript": "^5.2.2",
"verb-nurbs": "^3.0.3",
"vite": "^5.1.0",
"vitest": "^4.1.2"
},
"peerDependencies": {
"@react-three/drei": ">=9.0.0",
"@react-three/fiber": ">=8.0.0",
"react": "^18.2.0 || ^19.0.0",
"react-dom": "^18.2.0 || ^19.0.0",
"three": ">=0.150.0"
}
}