@a2f0/skyline

中文文档
0.2.67发布于 2026/11/06UNLICENSEDTypeScriptES Module构建来源已验证近 30 天下载 1.1万

Interactive Chicago skyline viewer and reusable Three.js building models

原始使用文档
文档目录4 节
  1. Quick start
  2. Pages
  3. Package
  4. Development

Chicago Skyline

A grayscale Chicago skyline traced from a 2013 photograph taken on the lakefront by the Adler Planetarium, and a 3D city of 34 mapped buildings seen through that photograph's own camera. Hover a building for its name, right-click it for a close look, or switch to the animated drawing it was fitted to. This repo is available on the web at https://skyline.devopsrockstars.com.

Quick start

Install mise and Python 3, which serves the built site:

mise install                       # Bun and Node from mise.toml
bun install --ignore-scripts
bun run hooks:install              # Git hooks, once per clone
bun run build:site
python3 -m http.server -d dist     # http://localhost:8000

Serve dist/ over HTTP rather than opening files directly: WebGL and the 3D pages need it.

Pages

PageShowsDocs
index.htmlThe viewer, mounted as the package mounts it: opens on the 3D skyline, with the original drawing one button away and links to the enhanced drawing and the WebGL prototypeThe viewer
skyline-3d.htmlThe full-screen 3D skyline on its own: camera views, streets, footprints, celebratory lights, and a building menuFull-screen 3D skyline
building-detail.html?building=<id>One mapped building alone on its platformBuilding menu and detail
skyline-study.htmlThe 3D scene over the drawing, in the geographic layout or the original drawing's fit3D studies
building-study.htmlThe Crain Communications Building beside its illustration3D studies
skyline-webgl.htmlThe drawing's layers rendered as GPU texturesWebGL prototype

Package

The repository also builds @a2f0/skyline, an ESM package that mounts the complete viewer into a host page's own document, in a shadow root, with reusable Three.js scenes and building models, and TypeScript declarations. Every merge to main publishes a new version to npm; run bun run build:package or bun pm pack to build it locally. The package guide covers installing, asset copying, mounting, imports, and releases.

Development

bun run check                     # typecheck, unit and browser suites; needs Google Chrome
bun run deploy                    # publish to Cloudflare; needs Node.js 22+ and wrangler login

Development explains the checks, hooks, and PR workflow, and Deploying the release, its verification, and the gitignored .secrets link (ln -s ../matrix-secrets/skyline .secrets) that Terraform reads its Cloudflare and R2 state credentials through. To add a building or improve one, start with Adding a building or the fidelity queue.

All documentation is indexed in docs/.

版本与发布记录

@a2f0/skyline 共发布 72 个版本,首次发布于 2026/10/06;过去 12 个月发布了 72 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.67latest2026/11/061 天前
0.2.662026/11/061 天前
0.2.652026/11/061 天前
0.2.642026/11/061 天前
0.2.632026/11/062 天前
0.2.622026/11/043 天前

关于 @a2f0/skyline 的常见问题

@a2f0/skyline 是什么?

Interactive Chicago skyline viewer and reusable Three.js building models

如何安装 @a2f0/skyline?

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

@a2f0/skyline 支持 TypeScript 吗?

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

@a2f0/skyline 支持 ESM 还是 CommonJS?

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

@a2f0/skyline 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@a2f0/skyline 可以商用吗?

@a2f0/skyline 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@a2f0/skyline 的下载量有多少?

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

@a2f0/skyline 还在维护吗?

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