在 ISBN 空间中可视化世界上的所有书籍

主要观点:图书馆自文字发明起就努力收集人类知识,数字时代可创建符合特定标准的人类所有著作的综合收藏,影子图书馆如 Anna’s Archive 尝试可视化大量书籍。通过 ISBN 可对书籍进行编号和管理,文中介绍了 ISBN 的结构、空间填充曲线(如 Hilbert 曲线和“Bookshelf”曲线)在可视化 ISBN 空间中的应用,还讲述了生成地图瓦片、使用着色器(GLSL)进行渲染、处理文本和性能问题、添加条形码、可视化出版商范围、计算飞行路径以及项目架构等方面的内容。

关键信息

  • ISBN 是 13 位数字,前三位固定,后一位是校验和,总空间仅 20 亿个槽位。
  • “Bookshelf”曲线简单易实现、易理解且视觉效果好,坐标变换简单。
  • 生成地图瓦片并存储不同信息,可通过着色器进行灵活渲染和组合数据集。
  • 处理文本时遇到性能问题,通过优化 HTML 元素和去除 CSS 过滤器解决。
  • 每个“组”和出版商有范围,可通过随机颜色可视化,还可同时突出显示出版商范围。
  • 计算飞行路径较复杂,最终得到的结果虽不完美但比原方法好。
  • 项目架构包括后端(静态文件主机)、前端(ThreeJS、React、MobX)和处理脚本(JS 和 Rust)。

重要细节

  • ISBN 前缀与国际标准组织和国家相关,前缀越长可分配的书籍数量越少。
  • Hilbert 曲线虽使区域更“方形”但会引入无实际数据的结构。
  • 着色器可选择颜色方案、应用变换和过滤,且可直接编辑和更新。
  • 文本渲染通过嵌入 HTML 到 SVG 再转换为纹理解决性能问题。
  • 条形码可强化按 ISBN 排序的概念,且使用特定 TTF 字体渲染。
  • 飞行路径计算复杂,最终结果虽不完美但能工作。
  • 项目源代码可在https://github.com/phiresky/isbn-visualization获取。
阅读 7
0 条评论