A walkable ASCII cyberpunk city in one HTML file [video]
摘要
开发者利用单个HTML文件和JavaScript canvas构建了一个可步行的ASCII赛博朋克城市,通过自定义3D引擎实现字符渲染。
<i>ASCII City: Traffic and Detail Update</i> - <a href="https://www.youtube.com/watch?v=DSRooHo_HSI" rel="nofollow">https://www.youtube.com/watch?v=DSRooHo_HSI</a><p><i>ASCII City Update: Interiors, Elevation and Skyscrapers</i> - <a href="https://www.youtube.com/watch?v=UCKEDWowc0o" rel="nofollow">https://www.youtube.com/watch?v=UCKEDWowc0o</a>
查看缓存全文
缓存时间: 2026/09/01 12:30
TL;DR:开发者用单个HTML文件和JavaScript canvas构建了一个可步行的ASCII赛博朋克城市,通过自定义3D引擎将城市渲染为ASCII字符。
## 项目概述
这个项目旨在用纯粹的ASCII符号构建一座充满生命力的赛博朋克城市。最初的想法是创造一种体验,让用户仿佛漫步在一个由数据构成的世界里,而不仅仅是展示平面的图像效果。项目运行在一个为这个项目编写的迷你自定义引擎上,仅用JavaScript和canvas,所有代码都塞在单个HTML文件里,没有使用Unity或Unreal引擎,也没有三维模型、纹理或着色器。
## 技术实现
### 自定义引擎
整个系统的底层是一个基于网格的三维世界。城市储存着道路、建筑、树木、车辆、行人的位置信息,也包括建筑高度等数据。
### 3D世界结构
这个3D世界基于网格结构,存储了城市中各种元素的位置和高度数据。每一帧,渲染器都会从摄像机视角向网格投射光线,找出每条光线首先击中的物体。
### 渲染过程
渲染器利用距离来计算透视关系、物体大小、景深效果,以及判断哪些物体应该被其他物体遮挡。引擎还负责正确处理碰撞检测,确保车辆、行人以及其他特定物体之间前后的空间关系正确无误。所有这些都没有用常规的图形渲染,而是转化为canvas画布上的字母、数字和符号。
## ASCII可视化
### 近远物体处理
近处的物体由更大、更明亮的字符群构成。远处的物体则变得越来越小,并渐渐融入黑暗背景。简单来说,这是一个由字符方块构成的迷你3D城市,而你正透过一层ASCII字符的屏幕来观察它。
## 未来计划
开发者表示会继续完善这个原型,并欢迎分享看法。
Source: [YouTube Video](https://www.youtube.com/watch?v=3YtygAx_C6A)
相似文章
Show HN:一个ASCII 3D渲染引擎
GlyphCSS是一个JavaScript库,它使用ASCII字符在DOM中渲染带纹理的3D网格,支持多种3D格式,并与原生JS、React和Vue集成。
@GoJun315: 今天 Reddit 上有位开发者分享,在网页里播放的视频,可以纯用文本字符渲染。 用到的开源项目是 ASCILINE,一个实时 ASCII 视频渲染引擎。 支持两种渲染模式: - ASCII 模式:用普通字符按亮度和颜色还原画面,能看到字…
ASCILINE 是一个高性能的开源实时 ASCII 视频渲染引擎,可以将视频转换为纯文本字符显示,支持多种渲染模式、低带宽传输和 CSS 特效叠加。
@NFT_Chen: 震撼!DeepSeek Harness极简模式只说一次话,直接从零造出完整赛博朋克3D城市! 满血极简模式硬核开挂,项目建立→技术选型→写代码→运行调试→修复→成品交付,全流程AI自己闭环,赛博霓虹风拉满~ 关键要点拆解: 极简模式满血运…
DeepSeek Harness的极简模式能够仅凭一次指令,自主完成从项目建立到成品交付的全流程,成功构建出赛博朋克风格的3D城市,展示了AI编程的强大能力。
为网页打造动态 ASCII 艺术
ascii.rest 是 @bas3line 开发的一款工具,可生成动态 ASCII 艺术并嵌入网页,展现了基于字符渲染的趣味创意应用。
@zan2434:想象屏幕上的每个像素,都由模型实时流式渲染。没有 HTML,没有排版引擎,没有代码,只有你想看到的画面……
一款原型直接把 AI 模型的像素实时流式输出到屏幕,绕过 HTML、排版引擎和传统代码。