2026-06-12 22:47:11 +00:00
|
|
|
{
|
2026-06-26 07:23:52 +00:00
|
|
|
"name": "react-native-mask-segment-canvas",
|
feat: add manual lasso wall splitting with magnetic edge-snapping and active contour refinement
- New magneticLasso module: Sobel energy map + Dijkstra shortest-path + Douglas-Peucker
- New activeContour module: greedy snake + balloon force for polygon-to-edge refinement
- wallTextureSplit: edge barrier mask, morphological mask hole closing, Moore boundary tracing, simplified polygon contours, manual pick map patching, gap absorption
- MaskSegmentCanvas: full lasso gesture pipeline (tap vertices, drag, magnetic paths, close polygon, endLasso/cancelLasso/deleteLasso)
- New maskConfig options: splitWallsEdgeBarrierThreshold, splitWallsCloseMaskRadius, manualSplitWalls, manualSplitWallsMaxCount, manualSplitWallsGapAbsorbDilatePx, magneticLasso, activeContourRefine
- New ref methods: startLasso, endLasso, cancelLasso, getManualRegions, deleteLasso
- New exported types: LassoPolygon, ManualWallPartition
- RegionMaskData carries indexToName and wallSemanticIdx through downsample
- Simplify README to point to documentation site
- Update documentation site (EN + ZH-CN) with all new APIs and interaction guide
- Example app: lasso mode toggles and operation buttons
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 03:23:57 +00:00
|
|
|
"version": "0.4.0",
|
2026-07-02 02:07:32 +00:00
|
|
|
"description": "React Native mask segmentation canvas library: OpenCV semantic segmentation + SkSL Shader coloring",
|
2026-06-26 07:23:52 +00:00
|
|
|
"main": "dist/index.js",
|
|
|
|
|
"module": "dist/index.js",
|
|
|
|
|
"types": "dist/index.d.ts",
|
|
|
|
|
"exports": {
|
|
|
|
|
".": {
|
|
|
|
|
"types": "./dist/index.d.ts",
|
|
|
|
|
"default": "./dist/index.js"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"files": [
|
|
|
|
|
"dist",
|
|
|
|
|
"patches",
|
|
|
|
|
"README.md"
|
|
|
|
|
],
|
2026-06-12 22:47:11 +00:00
|
|
|
"scripts": {
|
|
|
|
|
"android": "react-native run-android",
|
|
|
|
|
"ios": "react-native run-ios",
|
|
|
|
|
"lint": "eslint .",
|
2026-06-26 07:23:52 +00:00
|
|
|
"pod:check": "bash ios/scripts/setup_vendor_pods.sh",
|
|
|
|
|
"pod:install": "cd ios && pod install",
|
|
|
|
|
"postinstall": "patch-package",
|
2026-06-12 22:47:11 +00:00
|
|
|
"start": "react-native start",
|
2026-06-26 07:23:52 +00:00
|
|
|
"test": "jest",
|
2026-07-02 02:07:32 +00:00
|
|
|
"build": "npm run build:js && npm run build:types",
|
|
|
|
|
"build:js": "node scripts/build.mjs",
|
|
|
|
|
"build:types": "tsc -p tsconfig.build.json",
|
2026-06-26 07:23:52 +00:00
|
|
|
"prepare": "npm run build"
|
2026-06-12 22:47:11 +00:00
|
|
|
},
|
|
|
|
|
"dependencies": {
|
2026-06-26 07:23:52 +00:00
|
|
|
"buffer": "^6.0.3",
|
|
|
|
|
"upng-js": "^2.1.0"
|
|
|
|
|
},
|
|
|
|
|
"peerDependencies": {
|
|
|
|
|
"@shopify/react-native-skia": ">=2.0.0",
|
|
|
|
|
"react": ">=18",
|
|
|
|
|
"react-native": ">=0.74",
|
|
|
|
|
"react-native-fast-opencv": ">=0.4.8",
|
|
|
|
|
"react-native-fs": ">=2.20.0",
|
|
|
|
|
"react-native-gesture-handler": ">=2.16.0",
|
|
|
|
|
"react-native-image-picker": ">=7.0.0",
|
|
|
|
|
"react-native-reanimated": ">=3.0.0",
|
|
|
|
|
"react-native-safe-area-context": ">=4.0.0"
|
|
|
|
|
},
|
|
|
|
|
"peerDependenciesMeta": {
|
|
|
|
|
"react-native-image-picker": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"react-native-safe-area-context": {
|
|
|
|
|
"optional": true
|
|
|
|
|
}
|
2026-06-12 22:47:11 +00:00
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
|
|
|
|
"@babel/core": "^7.25.2",
|
|
|
|
|
"@babel/preset-env": "^7.25.3",
|
|
|
|
|
"@babel/runtime": "^7.25.0",
|
|
|
|
|
"@react-native-community/cli": "18.0.0",
|
|
|
|
|
"@react-native-community/cli-platform-android": "18.0.0",
|
|
|
|
|
"@react-native-community/cli-platform-ios": "18.0.0",
|
2026-06-26 07:23:52 +00:00
|
|
|
"@react-native/babel-preset": "0.79.4",
|
|
|
|
|
"@react-native/eslint-config": "0.79.4",
|
|
|
|
|
"@react-native/metro-config": "0.79.4",
|
|
|
|
|
"@react-native/typescript-config": "0.79.4",
|
|
|
|
|
"@shopify/react-native-skia": "^2.6.4",
|
2026-06-12 22:47:11 +00:00
|
|
|
"@types/jest": "^29.5.13",
|
|
|
|
|
"@types/react": "^19.0.0",
|
|
|
|
|
"@types/react-test-renderer": "^19.0.0",
|
2026-07-02 02:07:32 +00:00
|
|
|
"esbuild": "^0.28.1",
|
2026-06-12 22:47:11 +00:00
|
|
|
"eslint": "^8.19.0",
|
|
|
|
|
"jest": "^29.6.3",
|
2026-06-26 07:23:52 +00:00
|
|
|
"patch-package": "^8.0.1",
|
2026-06-12 22:47:11 +00:00
|
|
|
"prettier": "2.8.8",
|
2026-06-26 07:23:52 +00:00
|
|
|
"react": "19.0.0",
|
|
|
|
|
"react-native": "0.79.4",
|
|
|
|
|
"react-native-fast-opencv": "^0.4.8",
|
|
|
|
|
"react-native-fs": "^2.20.0",
|
|
|
|
|
"react-native-gesture-handler": "^2.16.0",
|
|
|
|
|
"react-native-image-picker": "^8.2.1",
|
|
|
|
|
"react-native-reanimated": "^3.19.5",
|
|
|
|
|
"react-native-safe-area-context": "^5.8.0",
|
2026-06-12 22:47:11 +00:00
|
|
|
"react-test-renderer": "19.0.0",
|
|
|
|
|
"typescript": "5.0.4"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
2026-06-26 07:23:52 +00:00
|
|
|
},
|
|
|
|
|
"keywords": [
|
|
|
|
|
"react-native",
|
|
|
|
|
"mask-segmentation",
|
|
|
|
|
"semantic-segmentation",
|
|
|
|
|
"opencv",
|
|
|
|
|
"skia",
|
|
|
|
|
"shader",
|
|
|
|
|
"image-editing",
|
|
|
|
|
"canvas",
|
|
|
|
|
"paint"
|
|
|
|
|
],
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
}
|