Sakura Crossing 是一个基于浏览器的3D探索体验,呈现日本樱花季的郊区街景。它使用 Three.js 构建,通过实时着色器和后期处理模拟手绘2D动画背景,且未使用任何预置图片资源。

Stars

96

7 天增长

暂无数据

Fork 数

21

开放 Issue

0

开源协议

MIT

最近更新

2026-07-29

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

该项目完全通过实时渲染技术(卡通材质、屏幕空间墨线、后期特效)实现了手绘2D动画风格,不依赖任何精灵图或纹理资源;同时包含球面世界、无缝铁路环线、可交互电动自行车及22个可互动物体。

适合谁使用

  • WebGL / Three.js 开发者与技术美术
  • 对非真实感渲染感兴趣的游戏开发者
  • 喜爱可探索虚拟环境的动漫爱好者
  • 学习程序化内容生成与着色器编程的学生

典型使用场景

  • 研究高级 Three.js 渲染技巧以实现风格化画面
  • 为制作「动画背景」风格实时场景提供灵感
  • 交互式故事叙述或日本风情虚拟观光
  • 展示程序化几何、后期处理与着色器工作的教学示例

项目优势

  • 所有视觉元素(招牌、灯笼、价目条)均在运行时用 Canvas2D 绘制,源码中零图片资产
  • 先进的卡通着色包含色相偏移阴影,以及基于深度二阶差分的屏幕空间墨线,获得干净的轮廓
  • 完整的球面世界,具有精确的 1005 米大圆铁路,通过等距柱状投影无缝弯曲
  • 丰富的交互功能:22 个可互动物体、可驾驶电动自行车、带道闸的火车以及音乐播放列表系统

使用前须知

  • 需要 Node 18+ 及 HTTP 服务器(因使用 ES 模块,不能直接以 file:// 打开)
  • 仓库仅附带一首音乐曲目;用户需自行添加其他曲目,且受商业许可限制
  • 世界有意不包含人物,部分用户可能感觉场景空旷

README 快速开始

Sakura Crossing — 桜踏切

An explorable Japanese suburban neighbourhood in blossom season, built as a real 3D scene in Three.js and rendered to look like a hand-painted 2D animation background.

Every sign, fascia, lantern and price strip above is drawn at runtime with Canvas2D — there is not one image asset in src/. The lines are a screen-space second difference of depth, not an edge filter. See How the 3D-to-2D look is built.

It starts at a level crossing and grows outward from there: a shopping street, a community shrine up a flight of stone steps, a high school on the rise behind the station, a pedestrian overbridge, a branch library, a residential lane, two back alleys, a summer-festival ground caught mid-preparation, a community-bus turnaround at the far corner where the estate runs into a hillside, and the housing in between — with a drainage channel running the width of the town between two arms of a range of low hills, and a railway that goes the whole way round the planet and through the hills twice on its way. There are no people anywhere in it, and there are not meant to be — everything the place has to say about itself is said by what has been left out, pinned up, parked or forgotten.

Needs Node 18 or newer, and nothing else — three.js and Vite are the only two dependencies.

npm install
npm run play     # build + serve the production bundle, port 5179 — just want to play
npm run dev      # dev server with HMR, port 5178 — for working on it

Then open the printed URL and click to explore. Keep the terminal open; closing it stops the server. A plain file:// open will not work — the project is ES modules, so it needs to be served over HTTP.

key
W A S Dwalk
Shiftrun
mouselook
Einteract — and get on / off the e-bike
Vcall up the e-bike (again to send it away, or to call it back to you)
Porbit out and look at the whole planet
Mmusic on / off
Cshow coordinates (flat x/z/y, yaw, and a ready-made camera line)
Shift+Ccopy that line to the clipboard (or click the readout)
Rreturn to the opening view
Hhide / show the hint line
Escrelease the cursor
O / Gtoggle the ink pass / the colour grade (to see what they do)

The background-music

项目描述

An explorable Japanese suburban railway-crossing neighbourhood on a small planet, rendered 3D-to-2D as a cel-shaded anime background. Three.js, no image assets.

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

react
精选
react GitHub avatar

react

React is a JavaScript library for building user interfaces with declarative, component-based, and cross-platform design.

Web 开发前端框架
246,741
tandpfun
精选
tandpfun GitHub avatar

wardrobe

A GPT‑image powered app that extracts individual garment cutouts from photos, organizes them into a digital wardrobe, and generates modeled outfit previews.

JavaScript
1,570
mshumer
精选
mshumer GitHub avatar

Claude-of-Duty

A browser-based first-person shooter built entirely with procedural generation and orchestrated AI agents, featuring 55k lines of Three.js/WebGL2 code and no art assets.

AI 与机器学习AI 智能体
1,234