@brainchop/mindgrab

中文文档
0.1.20261029发布于 2026/10/31MITTypeScriptES Module近 30 天下载 1.7万

浏览器 MeshNet 脑分裂(MindGrab cleep raping, 18-和104-class problemation, GM/WM/CSF分会)在WebGPU, 有WebGL2和有线-CPU回落

中文使用文档
文档目录10 节
  1. 连续组织图
  2. 后端
  3. CPU 后退需要两个标题
  4. 所需资源
  5. 模型
  6. 选项
  7. 炸弹
  8. 错误
  9. 准确性
  10. 大楼

@brainchop/ mindgrab (英语)

浏览器 WebGPU 上的 MeshNet 脑分裂, 有 WebGL2 和 有线- CPU 倒背:MindGrab头骨剥取,宽度为2个18等分 (单位:千美元)16chan18cls, (中文(简体) ), mindmap),以及104级德西克-克里尼地块 (单位:千美元)mindsnap),超过固定的2563格. 一个NIFTI ArrayBuffer 进去和a 北爱尔兰 ArrayBuffer 出来.

整个管道——符合、正常、13或25个MeshNet层,分类, 最大组件重排——运行在编译自 脑跳-c此软件包只拥有 该模块故意不做的: gzip, WebGPU 设备以及 WebGL2 上下文 收购 跨原产地隔离探测 以及拒绝的决定.

import { segment } from '@brainchop/mindgrab'

const input = await file.arrayBuffer()          // .nii or .nii.gz
const { image, elapsedMs } = await segment(input, { model: 'mindgrab' })
// image is gzipped if the input was

MindMap现在过滤选中的组织类别并重新填充被压制的光谱 从幸存的相邻标签默认。 使用 { model: 'mindmap', legacyCleanup: true } 仅限大脑原型 清净相. 这需要从与包装纸相同的修订版中重建原物资产.

分类原生-空间输出使用浏览器的八样多数投票, 包括源外的背景投票 和第一样本领带断裂. 面具仍然使用相近的邻居;连续的组织图使用线性再生. 无效、为空、填入95%以上或过于零散 结果失败 inference-failed 在清理之前可以掩盖失败.

连续组织图

import { segmentTissues } from '@brainchop/mindgrab'

const { tissues, backend } = await segmentTissues(input, {
  model: 'mindmap', worker: true,
})
// tissues.gm, tissues.wm, tissues.csf and tissues.brain (GM + WM) are NIfTI
// ArrayBuffers. Native geometry and input gzip encoding are preserved by default.

tissues.brain0.5同位素是亚伏克赛尔平面,准备成网.

segmentTissues 支持 mindmap 财务报告和审定财务报表 16chan18cls 在WebGPU,WebGL2和CPU上. GPU路径计算设备上的被分组的前缀、模糊和支持指向; 共享 C CAT-lite fitter 运行在 CPU 上. 使用MindMap 校正 两个模型的常数。 示范16 覆盖范围检查执行协议, 不是组织模型校正. saveConform 财务报告和审定财务报表 gzipOutput 工作情况 segment; 面罩,边框和遗留的断然清除选项被拒绝. WebGL2模块保留了768个MiB为主机侧组织合位.

后端

auto (默认)尝试硬件 webgpu硬件 webgl2,则 cpu 报告(仅来自不同页面) result.backend, (中文(简体) ), 掷出 no-webgpu 如果没人能。 它从不选择一个被确认为 软件(SwiftShader、llvmpipe、熔岩管、WARP或WebGPU倒置适配器): 他们通过每个能力探测器 但运行MindGrab 在990 S对CPU 模块为~10 s. checkSupport() 财务报告和审定财务报表 checkWebgl2Support() 报告 software: true 为了他们。 无法识别被遮盖的 WebGL2 渲染器字符串 (单位:千美元)software: undefined),因此它只在 cpu 无法。 无论运行,一个 空的 MindGrab 口罩拒绝使用 inference-failed,如同空标签一样。 A 类 命名后端仍然运行一个软件,但超过默认值 timeoutMs。 。 。 .

MindGrab在M4 Pro上,当时间在相机模块内部,当什么是一个 segment() 电话实际成本。 不同之处在于这个包是自己的作品——取取和取 即时化模块, gzip 和 gunzip, 并复制音量入出 模块文件系统——而不是完全位于模块内部的分割 第一个数字 :

后端需求模块中每个呼叫
'webgpu'使用 WebGPU 的网络 shader-f16, 512 MiB 缓冲器, 安全上下文1.6 s (简体中文)2.4 对
'webgl2'WebGL2 为 EXT_color_buffer_float3个s4.1 s, 它使用调用线程 worker: true
'cpu'(单位:千美元) 跨原生个体 页面(见下文)和可生长共享内存的~2.15 GB~10 s 在14个核心~12.6 s (韩语)

CPU一行 2.6 s 的包装时间大约为 3x GPU一行 0.7–0.8 s,即 不是一个算术滑动:它是一个单独的、更大的模块,而且瞬间 每一个核心都有一个工人.

WebGL2 是Linux Firefox 和 Chrome 今天所拍摄的, 因为两者都不启用 WebGPU 默认的;这些堆栈已知运行正确,但从未被定时, 所以上面的数字是macOS。 明确命名后端使不支持 选择错误而不是沉默的下调。 CPU 模块是运行的命令行可执行文件的同名 fp32 C 已经 位点精确 与之相伴; 二个 GPU 路径为 fp16并携带 voxel 准确性预算.

CPU 后退需要两个标题

它是一个线粒体构建,所以它导入了共享内存,以及一个不是 跨原生隔离无法即时解脱——模块挂起而不是 失败, 因此在取回之前先检查它 。 服务于 顶级文档 改为:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

把他们放在 .wasm 反之则无所作为:孤立是一种 属性。 注意费用,这是部署的通常原因 再次关闭隔离: 下 require-corp 每一个交叉来源 子资源 页面加载 —— 图像、 字体、 分析、 嵌入 —— 必须自己发送 Cross-Origin-Resource-Policy 或适当的CORS, 或将被屏蔽。 然后说:

import { checkCpuSupport } from '@brainchop/mindgrab'

const cpu = checkCpuSupport()
if (!cpu.supported) console.warn(cpu.reasons.join('\n'))

Playwright的补丁Firefox Nightly 运行这个模块的速度比 Chromium, 但安装的 Firefox 153.0.1 运行了相同的位精确模型 16 在 7.6 s. 夜生结果作为牵引/编译异常保留,而不是a 警告 Firefox 用户一般.

所需资源

对于 WebGPU 路径: 带有 WebGPU 的 WebGPU shader-f16 特性, maxStorageBufferBindingSize 财务报告和审定财务报表 maxBufferSize 至少为 512个小米B (一个f16活化缓冲器)和a 安全环境 —— 说 https 或者说 localhost。 。 。 . about:blank 财务报告和审定财务报表 file:// 没有 安全环境,以及那里 navigator.gpu 是未定义的, 它看起来是准确的 像浏览器,完全没有WebGPU.

在向用户提供按钮之前询问 :

import { checkSupport } from '@brainchop/mindgrab'

const report = await checkSupport()
if (!report.supported) console.warn(report.reasons.join('\n'))

模型

model已经产出
'mindgrab'在任何模式中剥取头骨带有非大脑花瓶的输入图像
'16chan18cls'18级脑分裂标签音量
'mindmap'18级脑分裂(24道)标签音量
'mindsnap'104级 Desikan-Killiani地块标签音量

每个模块都是单独的相片模块,其分量被编译入,只有在 你问它。 选项是按型号选取的,不匹配的选取在之前被拒绝 任何内容都被下载,因为一个可执行文件 从来没有广告它会是什么 缩放 :

await segment(buf, { model: 'mindgrab', saveConform: true })
// BrainchopError: mindgrab does not support `saveConform`: its output is the
// input image with non-brain voxels floored, so it is inherently in the input space

每个 MODELS 条目(和 listModels()载体 colormap数字 : { R, G, B, labels }, (中文(简体) ), 每个输出值一个条目,索引 0 背景(用于 mindgrab页:1 mask) (中文(简体) ). 这个 模特儿自己来的 colormap.json,像NiiVue这样的观众 直接 : nv.setColormapLabel(1, MODELS.mindsnap.colormap)。 。 。 .

选项

segment(input: ArrayBuffer | ArrayBufferView, options: SegmentOptions)
选项模型含义
model全部四个所需经费他们之间没有合理的违约
ct全部四个输入为 CT; 将 Hounsfield 转换为 Cormack 单位
comply全部四个在合规前插入合规转换
saveConform16chan18cls, (中文(简体) ), mindmap, (中文(简体) ), mindsnap返回符合要求的 2563 个体积而不是重写到输入网格
maskmindgrab还原二进制脑罩 result.mask
borderMmmindgrab将口罩边框加长为毫米;暗指 mask
gzipOutput全部四个覆盖与输入匹配的默认值
worker全部四个在 Web Worker 中运行整个分区. 建议,并且是保持页面响应在 webgl2 运行, 同步
device全部四个重复使用 a GPUDevice 你已经拥有
glContext全部四个重复使用 a WebGL2RenderingContext 您已经拥有; 暗示 webgl2
assetPath全部四个工人和模型的基础 URL .js编号 :.wasm 服务从,当主机服务 dist/ 本身; 捆绑者不需要, 见下文
timeoutMs全部四个推断限度(默认为 120 000;900 000) cpu,用于 auto 下级 worker: true,在计时器被武装后选择后端). 模块装入/证实有其自身的限度: timeoutMs 和两分钟,所以一个被停滞的线粒体启动不能伪装成慢的CPU运行. 丢失的 GPU 设备否则永远不会结算; 只有 worker: true 实际取消
onLog全部四个接收模块输出行

输出在 默认输入图像的自有空间每个模型。 这个 反转脑-cli,其中符合的网格是默认的.

--crop 财务报告和审定财务报表 --export-classes,这是当地可执行文件提供的 故意缺席 两者都强迫CPU引擎 gPU 模块内,哪个 编译时没有线程,每卷需要141至266 s;接受 将两秒钟的呼叫变成四分钟的一次,没有警告。 这个 cpu 后端是一个不同的模块,不会改变这个模块.

炸弹

没有复制和没有 assetPath:工人和每个型号的胶被导入 字数 new URL('./worker.js', import.meta.url) 财务报告和审定财务报表 import('./<glue>.js') 说明器,每根胶水都定位它 .wasm 同样的方式,所以维特,滚出和 网包放出他们所有的 (hashed) 一个呼叫者仍然只下载模型和 后端它运行。 Vite 需要两个设置: worker.format: 'es' 页:1 vite build (默认) iife 工人的顶级等待不能进行) optimizeDeps.exclude 页:1 vite dev (单位:千美元) dev 预绑定器将软件包移动到 .vite/deps/,其中工人URL 404s:

// vite.config.js
export default {
  optimizeDeps: { exclude: ['@brainchop/mindgrab'] },
  worker: { format: 'es' },
}

捆绑者发出每个模块,所以 @brainchop/mindgrab 全部部署 十二(~10 MB). 一个运行一个模型的输入的宿主 相反,它具有相同的API,只部署其三个模块(MindGrab: ~ 2.6 MB 在 vite build:

import { segment } from '@brainchop/mindgrab/mindgrab'   // or /16chan18cls, /mindmap, /mindsnap

listModels() 返回一个模型( q)MODELS 仍然描述所有四个, 并且拒绝任何其他型号 与 unsupported-option (除非 assetPath 设置,由 URL 负载.

建设和网络包装也跟随进口,但不要固定节点 node:* 导入 CPU 模块( 也在节点下运行) : 标记它们 外部(esbuild --external:'node:*'网络包装 externals: /^node:/) 建设 不发射 new URL() 资产,所以一个重建主机也设置 assetPath。 。 。 .

assetPath 给服务宿主的遗物 dist/ 复制工人和 这个模型的 .js 财务报告和审定财务报表 .wasm 某处服务并指向 assetPath 临Τ 它必须 是同源的; 它能提供动态 import()。 。 。 .

错误

每个软件包出错都会丢出一个 BrainchopError 带有 code 您可以在 : no-webgpu, (中文(简体) ), no-adapter, (中文(简体) ), device-too-small, (中文(简体) ), no-f16, (中文(简体) ), unsupported-option, (中文(简体) ), bad-input, (中文(简体) ), initialization-failed, (中文(简体) ), inference-failed。 。 。 . initialization-failed 表示模块从未启动,因此重试可以有意义; inference-failed 意味着它开始而没有完成。 有一个 无后退 他们中的任何一个, 根据决定,沉默地降级比拒绝更糟糕. auto 在后端中选择并非例外: 它发生在任何事情之前 找到的 只有在你没有表达任何倾向时.

no-webgpu 这也是什么 cpu 拒绝报告——"本页并非跨源 被隔离的"根据代码而不是第四个到达, 所以读一下消息, 或打电话 checkCpuSupport() 先说.

准确性

这个 cpu 后端为零相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相去相相去相去相去相去相去相相去相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相. 模型16 本地-空间多数定点有一个单独的主题参考: 原已存在的符合原样/原样的标签差异通过新投票进行抽样. 是从未经修改的合并主机和新的固定装置独立复制的 对照浏览器的投票功能进行校验。 见 参考来源。 。 。 . 两个GPU 路径为fp16,与项目的金属一样,按每伏xel预算计算 后端而不是比特精确度。 历史近邻结果 项目的固定装置,作为16.7M(2毫米,1.6M)的活氧化物:

大小写预算网络gpu网络gl2
脑袋64国道页:133个
18级(16道)第1024号682 (英语)710号
18级(16个频道),本土2毫米256号88国道94国道
心电图(24道,18等)第1024号564 (韩语)610个
原生2毫米心电图256号88国道86 (简体中文)
mainnap (104- way argmax) (英语)2048 (英语)1280号1219号
土生土长2毫米512号198 (韩语)184 (韩语)

目前的多数投票制检查保留了这些预算。 组织图保留 现有 2/255 RMSE门在非零结合 和准确的NIfTI几何.

大楼

npm install
npm run build     # build all three backends' modules, stage into dist/, types, bundle
npm test          # drives the built package in a real browser

测试开始 标题 macOS上的无头铬没有GPU,需要一种 安装了剧作家的退出( u)BC_PLAYWRIGHT_ROOT) (中文(简体) ).

版本与发布记录

@brainchop/mindgrab 共发布 7 个版本,首次发布于 2026/08/13;过去 12 个月发布了 7 个版本。

版本发布日期距今
0.1.20261029latest2026/10/318 天前
0.1.20261021beta2026/10/2217 天前
0.1.202610082026/10/081 个月前
0.1.202609252026/09/251 个月前
0.1.202609232026/09/231 个月前
0.1.202609162026/09/171 个月前

关于 @brainchop/mindgrab 的常见问题

@brainchop/mindgrab 是什么?

浏览器 MeshNet 脑分裂(MindGrab cleep raping, 18-和104-class problemation, GM/WM/CSF分会)在WebGPU, 有WebGL2和有线-CPU回落

如何安装 @brainchop/mindgrab?

在项目目录运行 npm install @brainchop/mindgrab,或使用 pnpm add / yarn add / bun add。

@brainchop/mindgrab 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@brainchop/mindgrab 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@brainchop/mindgrab 可以商用吗?

@brainchop/mindgrab 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@brainchop/mindgrab 的下载量有多少?

根据 npm 官方下载统计,@brainchop/mindgrab 在 2026/10/09 – 2026/11/07 这 30 天内被下载 17,367 次,日均约 579 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@brainchop/mindgrab 还在维护吗?

最新版本 0.1.20261029 发布于 2026/10/31(8 天前);至今共发布 7 个版本,其中过去 12 个月发布了 7 个;首次发布于 2026/08/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。