{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-17T01:56:13.055Z",
  "lang": "ko",
  "slug": "partmode",
  "url": "https://tesign.com/item/partmode/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/partmode/",
      "json": "https://tesign.com/item/partmode/index.json",
      "markdown": "https://tesign.com/item/partmode/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/partmode/",
      "json": "https://tesign.com/en/item/partmode/index.json",
      "markdown": "https://tesign.com/en/item/partmode/index.md"
    }
  },
  "name": "PartMode",
  "use_label": "설치 없는 브라우저 CAD",
  "one_liner": "설치 없이 브라우저에서 구속 스케치·피처 히스토리·어셈블리·도면·STEP 입출력을 하는 오픈소스 파라메트릭 기계 CAD",
  "text": {
    "why": "PartMode에서 화면에 보이는 three.js 장면은 결과를 비추는 창일 뿐이고, 형상은 OpenCascade WebAssembly가 정확한 B-rep으로 계산합니다. 구속 스케치, 편집 가능한 피처 히스토리, 어셈블리 메이트, 은선 처리 도면(SVG·PDF), STEP 가져오기·내보내기와 STL·AMF·3MF 출력을 데스크톱 CAD 설치 없이 제공합니다. partmode.com에서 계정 없이 쓰고 프로젝트는 브라우저 저장소에 남으며, 코딩 에이전트는 같은 문서 모델에 타입 지정 명령으로 접근하되 브라우저 세션에서는 사람이 승인한 변경만 커밋하고, 무인 작업용 헤드리스 권한은 계정 소유자가 따로 명시해 발급합니다.",
    "take": "브라우저 CAD에서 정확한 B-rep과 STEP 교환까지 갖춘 프로젝트입니다. 에이전트 연동은 사람 승인이 기본입니다.",
    "build": [
      "포장 지그·브래킷·부품 케이스처럼 치수만 바뀌는 부품을 템플릿으로 만들어 두고 STEP으로 가공 업체에 넘기는 흐름, 또는 MCP로 코딩 에이전트에 치수를 받아 미리보기 → 승인 → 내보내기까지 이어지는 자동화를 꾸릴 수 있습니다."
    ],
    "who": [
      {
        "role": "소규모 제조·시제품 제작자",
        "situation": "설치 없이 부품을 모델링해 STEP으로 가공 업체 전달"
      },
      {
        "role": "메이커·3D 프린터 사용자",
        "situation": "스케치 → 솔리드 → STL/3MF 출력"
      },
      {
        "role": "에이전트 개발자",
        "situation": "MCP로 타입 지정 CAD 조작 자동화"
      }
    ],
    "start": [
      {
        "command": false,
        "text": "# 설치 없이: https://partmode.com (계정 불필요)"
      },
      {
        "command": false,
        "text": "git clone https://github.com/BOMWiki/partmode.git"
      },
      {
        "command": false,
        "text": "cd partmode"
      },
      {
        "command": false,
        "text": "npm ci"
      },
      {
        "command": false,
        "text": "npm run build"
      },
      {
        "command": false,
        "text": "npm start   # http://127.0.0.1:4401"
      }
    ],
    "caveat": [
      "라이선스 AGPL-3.0-only — 수정해 네트워크 서비스로 제공하면 소스 공개 의무가 따릅니다. partmode.com은 계정 없이 쓰되 프로젝트가 브라우저 저장소에만 남으므로 백업은 본인 몫입니다.",
      "자체 호스팅은 Node.js 22.13 이상. 에이전트(MCP) 연결은 계정·취소 가능한 키가 필요하고, 호스팅 릴레이는 종단간 암호화가 아니라고 README가 밝힙니다.",
      "시뮬레이션·CAM·DWG 작성·인증 GD&T는 없고, 가져온 STEP은 원본 피처 히스토리를 복원하지 않습니다. 저작권 표기는 Sphinx(2026)."
    ]
  },
  "cta": {
    "type": "try",
    "label": "TRY",
    "url": "https://partmode.com/"
  },
  "ready": "browser",
  "categories": [
    "design"
  ],
  "categories_confirmed": true,
  "tags": [
    "cad",
    "parametric",
    "opencascade",
    "webassembly",
    "step",
    "mcp"
  ],
  "platform": [
    "web"
  ],
  "license": {
    "spdx": "AGPL-3.0",
    "scope": "copyleft",
    "scope_text": "사용·수정은 자유. 배포는 물론 네트워크 서비스로 제공해도 소스 공개.",
    "url": "https://spdx.org/licenses/AGPL-3.0.html",
    "note": null,
    "open_source": true
  },
  "language": "JavaScript",
  "source_urls": {
    "canonical": "https://partmode.com/",
    "github": "https://github.com/bomwiki/partmode",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "github",
        "url": "https://github.com/bomwiki/partmode",
        "posted_at": "2026-08-07T16:00:00.000Z",
        "hn_url": null
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-16T21:00:00.000Z",
    "stars": 526,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-15T19:34:47.162Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": null,
    "star_delta_30d": null,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": null,
    "hn_points_observed_at": null,
    "store": null,
    "method": "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다."
  },
  "ranks": null,
  "activity": {
    "pushed_at": "2026-08-17T16:55:51.000Z",
    "owner_type": "Organization",
    "open_issues": 11,
    "contributors": 1,
    "releases_count": 1,
    "latest_release": {
      "tag": "source-snapshot-2026-08-11",
      "published_at": "2026-08-10T16:36:53.000Z",
      "prerelease": true
    },
    "checked_at": "2026-09-15T19:34:47.162Z",
    "core_checked_at": "2026-09-15T19:34:47.162Z"
  },
  "signals": [
    {
      "kind": "back",
      "label": "과거 기록",
      "value": null
    }
  ],
  "images": {
    "og": "https://tesign.com/img/partmode-fbd032813a.png",
    "cover": "https://tesign.com/img/partmode-fbd032813a.png",
    "cover_width": 2400,
    "cover_height": 1260,
    "gallery": [
      "https://tesign.com/img/partmode-fbd032813a.png"
    ],
    "alt": "PartMode 소셜 미리보기: 왼쪽에 'Browser CAD for people + typed agents' 문구와 LOCAL-FIRST·EXACT B-REP·STEP 배지, 오른쪽에 3D Tools 리본(Extrude·Cut·Hole Wizard·Thread), 모델 트리, 구멍 난 판 부품이 놓인 뷰포트, Agent Flight Recorder 인스펙터가 보이는 스튜디오 화면",
    "tier": 1
  },
  "dates": {
    "first_seen_at": "2026-09-13T09:14:23.726Z",
    "source_created_at": "2026-08-06T04:51:12.000Z",
    "discovery_hours": 916.3865905555556,
    "launch_signal_at": "2026-08-07T16:00:00.000Z",
    "kept_at": "2026-09-14T19:27:43.646Z",
    "first_published_at": "2026-09-14T19:27:43.752Z",
    "updated_at": "2026-09-15T04:36:56.954Z",
    "ingestion_mode": "backfill"
  },
  "notes": [
    "이 파일은 tesign.com 항목 페이지와 같은 빌드에서 같은 데이터로 만들어졌습니다. 소개 글은 편집자가 쓴 것이고, 숫자는 저장된 관측값입니다.",
    "JSON의 null은 관측하지 않았다는 뜻입니다 — 0이 아닙니다. 마크다운에서는 [확인 필요]로 적습니다.",
    "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다.",
    "과거 데이터를 되짚어 채운 항목입니다. 라이브 발견이 아닙니다.",
    "요약이며 법적 조언이 아닙니다."
  ]
}
