mirror of
https://github.com/imjasonh/scad-to-png
synced 2026-07-07 01:22:23 +00:00
A Node.js CLI tool that converts OpenSCAD files to PNG images without requiring OpenSCAD installation. Uses OpenSCAD WebAssembly for conversion and implements a software renderer for STL to PNG conversion. Features: - Converts .scad files to STL and PNG outputs - Renders from 8 different viewpoints - No OpenSCAD installation required - Pre-commit hooks to keep examples up to date - GitHub Actions workflow for CI 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
290 lines
9.3 KiB
JSON
290 lines
9.3 KiB
JSON
{
|
|
"name": "scad-to-png",
|
|
"version": "1.0.0",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"name": "scad-to-png",
|
|
"version": "1.0.0",
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"@napi-rs/canvas": "^0.1.71",
|
|
"commander": "^12.0.0",
|
|
"fs-extra": "^11.2.0",
|
|
"three": "^0.170.0",
|
|
"xvfb": "^0.4.0"
|
|
},
|
|
"bin": {
|
|
"scad-to-png": "scad-to-png"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.71.tgz",
|
|
"integrity": "sha512-92ybDocKl6JM48ZpYbj+A7Qt45IaTABDk0y3sDecEQfgdhfNzJtEityqNHoCZ4Vty2dldPkJhxgvOnbrQMXTTA==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">= 10"
|
|
},
|
|
"optionalDependencies": {
|
|
"@napi-rs/canvas-android-arm64": "0.1.71",
|
|
"@napi-rs/canvas-darwin-arm64": "0.1.71",
|
|
"@napi-rs/canvas-darwin-x64": "0.1.71",
|
|
"@napi-rs/canvas-linux-arm-gnueabihf": "0.1.71",
|
|
"@napi-rs/canvas-linux-arm64-gnu": "0.1.71",
|
|
"@napi-rs/canvas-linux-arm64-musl": "0.1.71",
|
|
"@napi-rs/canvas-linux-riscv64-gnu": "0.1.71",
|
|
"@napi-rs/canvas-linux-x64-gnu": "0.1.71",
|
|
"@napi-rs/canvas-linux-x64-musl": "0.1.71",
|
|
"@napi-rs/canvas-win32-x64-msvc": "0.1.71"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-android-arm64": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.71.tgz",
|
|
"integrity": "sha512-cxi3VCotIOS9kNFQI7dcysbVJi106pxryVY1Hi85pX+ZeqahRyeqc/NsLaZ998Ae99+F3HI5X/39G1Y/Byrf0A==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"android"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-darwin-arm64": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.71.tgz",
|
|
"integrity": "sha512-7Y4D/6vIuMLYsVNtRM/w2j0+fB1GyqeOxc7I0BTx8eLP1S6BZE2Rj6zJfdG+zmLEOW0IlHa+VQq1q2MUAjW84w==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-darwin-x64": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.71.tgz",
|
|
"integrity": "sha512-Z0IUqxclrYdfVt/SK9nKCzUHTOXKTWiygtO71YCzs0OtxKdNI7GJRJdYG48wXZEDQ/pqTF4F7Ifgtidfc2tYpg==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-linux-arm-gnueabihf": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.71.tgz",
|
|
"integrity": "sha512-KlpqqCASak5ruY+UIolJgmhMZ9Pa2o1QyaNu648L8sz4WNBbNa+aOT60XCLCL1VIKLv11B3MlNgiOHoYNmDhXQ==",
|
|
"cpu": [
|
|
"arm"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-linux-arm64-gnu": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.71.tgz",
|
|
"integrity": "sha512-bdGZCGu8YQNAiu3nkIVVUp6nIn6fPd36IuZsLXTG027E52KyIuZ3obCxehSwjDIUNkFWvmff5D6JYfWwAoioEw==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-linux-arm64-musl": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.71.tgz",
|
|
"integrity": "sha512-1R5sMWe9ur8uM+hAeylBwG0b6UHDR+iWQNgzXmF9vbBYRooQvmDWqpcgytKLJAC0vnWhIkKwqd7yExn7cwczmg==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-linux-riscv64-gnu": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.71.tgz",
|
|
"integrity": "sha512-xjjKsipueuG+LdKIk6/uAlqdo+rzGcmNpTZPXdakIT1sHX4NNSnQTzjRaj9Gh96Czjd9G89UWR0KIlE7fwOgFA==",
|
|
"cpu": [
|
|
"riscv64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-linux-x64-gnu": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.71.tgz",
|
|
"integrity": "sha512-3s6YpklXDB4OeeULG1XTRyKrKAOo7c3HHEqM9A6N4STSjMaJtzmpp7tB/JTvAFeOeFte6gWN8IwC+7AjGJ6MpQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-linux-x64-musl": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.71.tgz",
|
|
"integrity": "sha512-5v9aCLzCXw7u10ray5juQMdl7TykZSn1X5AIGYwBvTAcKSgrqaR9QkRxp1Lqk3njQmFekOW1SFN9bZ/i/6y6kA==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@napi-rs/canvas-win32-x64-msvc": {
|
|
"version": "0.1.71",
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.71.tgz",
|
|
"integrity": "sha512-oJughk6xjsRIr0Rd9EqjmZmhIMkvcPuXgr3MNn2QexTqn+YFOizrwHS5ha0BDfFl7TEGRvwaDUXBQtu8JKXb8A==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/commander": {
|
|
"version": "12.1.0",
|
|
"resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
|
|
"integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/fs-extra": {
|
|
"version": "11.3.0",
|
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
|
|
"integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"graceful-fs": "^4.2.0",
|
|
"jsonfile": "^6.0.1",
|
|
"universalify": "^2.0.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=14.14"
|
|
}
|
|
},
|
|
"node_modules/graceful-fs": {
|
|
"version": "4.2.11",
|
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
|
|
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
|
|
"license": "ISC"
|
|
},
|
|
"node_modules/jsonfile": {
|
|
"version": "6.1.0",
|
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
|
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"universalify": "^2.0.0"
|
|
},
|
|
"optionalDependencies": {
|
|
"graceful-fs": "^4.1.6"
|
|
}
|
|
},
|
|
"node_modules/nan": {
|
|
"version": "2.22.2",
|
|
"resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz",
|
|
"integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==",
|
|
"license": "MIT",
|
|
"optional": true
|
|
},
|
|
"node_modules/sleep": {
|
|
"version": "6.1.0",
|
|
"resolved": "https://registry.npmjs.org/sleep/-/sleep-6.1.0.tgz",
|
|
"integrity": "sha512-Z1x4JjJxsru75Tqn8F4tnOFeEu3HjtITTsumYUiuz54sGKdISgLCek9AUlXlVVrkhltRFhNUsJDJE76SFHTDIQ==",
|
|
"hasInstallScript": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"dependencies": {
|
|
"nan": "^2.13.2"
|
|
},
|
|
"engines": {
|
|
"node": ">=0.8.0"
|
|
}
|
|
},
|
|
"node_modules/three": {
|
|
"version": "0.170.0",
|
|
"resolved": "https://registry.npmjs.org/three/-/three-0.170.0.tgz",
|
|
"integrity": "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/universalify": {
|
|
"version": "2.0.1",
|
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
|
|
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">= 10.0.0"
|
|
}
|
|
},
|
|
"node_modules/xvfb": {
|
|
"version": "0.4.0",
|
|
"resolved": "https://registry.npmjs.org/xvfb/-/xvfb-0.4.0.tgz",
|
|
"integrity": "sha512-g55AbjcBL4Bztfn7kiUrR0ne8mMUsFODDJ+HFGf5OuHJqKKccpExX2Qgn7VF2eImw1eoh6+riXHser1J4agrFA==",
|
|
"license": "MIT",
|
|
"optionalDependencies": {
|
|
"sleep": "6.1.0"
|
|
}
|
|
}
|
|
}
|
|
}
|