← 포너즈 3D 솔루션
v0.3.0 @fornerds/3d-solution-core ESM + TypeScript

@fornerds/3d-solution-core

Generic 3D core, ESM and TypeScript declarations. No showroom data or models.

Development

Use .nvmrc, then npm install, npm run format, npm run check, npm pack. .npmrc reads NODE_AUTH_TOKEN from the environment; export it (any value works offline) before running npm. Commit the generated package-lock.json before the first CI run. Subsequent installs use npm ci. The package peers match stack.json exactly. React and Three are provided by consumers. Core changes need an ADR; see docs/adr/ for the existing records.

Public API

Navigation requires valid bounds, positive obstacle dimensions, a collision-free spawn, finite movement inputs, a visitor radius of at least MIN_RADIUS and a single move short enough to stay under MAX_STEPS substeps; anything else throws instead of tunneling or stalling the frame. validateNavigation checks the whole config up front, including obstacle dimensions that walkStep is too hot to re-check per frame. It supports one level. No stairs/slopes/physics. This is not a SceneBundle 1.0 parser; add an explicit adapter before using existing showroom bundles.

Release

  1. Change version and CHANGELOG.md in a reviewed PR; breaking public API changes require a major version even during 0.x for this team's policy.
  2. Keep stack.json, exact peers and dev dependencies consistent. runtime and development bind core and spaces alike; core and space bind only their own side. Core test tooling belongs in core, space build tooling in space — never in development. Run the packed package against the template before release.
  3. Merge to protected main, create an immutable GitHub release tag v<package version> from that commit, then run the Publish workflow on main with that exact version. The workflow verifies the tag points to its commit.
  4. Configure a package-release environment restricted to main with reviewers. This repository's GITHUB_TOKEN needs package write permission; no human token is stored in the repository.
  5. In package settings, grant Actions read access to each consuming repository. New versions require separate update PRs in spaces; reverting that PR restores the previous pinned release.

See the generated github-setup directory for initial GitHub setup. Before first publish, keep the repo private and retain UNLICENSED until the organization chooses a source license.


Changelog

0.3.0

0.2.0

0.1.0

Initial generic Canvas, walking, collision, selection, GLTF loading and supported stack manifest.