ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
An interactive multi-scale star map: from the sky above you, through the Solar System and the Milky Way, to the edge of the observable universe.
EducationTypeScript · PythonGitHub @12sqawdwqOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
星海图志:位置感知星图后端(FastAPI)+ 多尺度三维宇宙图谱与今晚星空(three.js)
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗从你头顶的这片夜空出发,一直走到可观测宇宙的边界。
一个位置感知的观星项目:FastAPI 星图后端计算“此时此地能看到什么”, three.js 前端把它画成一张跨越 16 个数量级的交互星图,以及一片真实的今晚星空。
在线体验 sky.eunoia.top · 今晚星空 · 尺度巡游 · 开发者手册 · Swagger · 服务监控台
演示录屏(2 倍速)。高清版:docs/media/demo.mp4
左侧的尺度阶梯可以一键飞往各个尺度,从太阳系、恒星邻域、银河系、本星系群,一直到可观测宇宙。恒星采用 HYG 星表中约 10.9 万颗星的真实三维位置,亮度按镜头所在位置实时计算。
| 太阳系 | 恒星邻域 |
|---|---|
| 银河系 | 可观测宇宙 |
仿照 Star Walk 的观测者视角,按你所在的位置和时间呈现真实天空。
| 黄道带与十二宫、节气 | 二十八宿 |
|---|---|
/sky/chart 接口;后端不可达时自动改用本地计算。?lang=zh / ?lang=en),选择会被记住。 https://sky.eunoia.top (nginx,同域)
┌──────────────────────┴──────────────────────┐
/, /tonight, /tour, /assets, /data /sky/*, /docs, /wiki, /health ...
│ │
atlas/ (Vite + TypeScript + three.js) app/ (FastAPI + Skyfield)
三维宇宙图谱 · 今晚星空 星表查询 · 星图投影 · 推理语料
└──────────── POST /sky/chart ────────────────┘
| 目录 | 内容 |
|---|---|
atlas/ | 前端星图,详见 atlas/README.md |
app/ | FastAPI 入口、天文计算、SQLite 星表查询、深空天体、推理语料 |
data/ | 可提交的中文观测语料 |
scripts/ | 下载 HYG 星表和 DE421 星历,构建 SQLite 星表和城市索引 |
site/wiki/ | 开发者手册(/wiki,含 API 参数、示例、灵珠接入、架构、部署和在线试用;/wiki/api 跳转到其 API 部分)和服务监控台(/wiki/health),共用 wiki.css,与星图同一配色 |
deploy/ | systemd 和 nginx 示例(含前端路由) |
docs/media/ | README 用的截图和录屏 |
tests/ | 后端单元测试 |
推荐 Python 3.10 或更高版本。
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python scripts/download_hyg.py # HYG 恒星星表
python scripts/build_catalog_db.py # 构建 SQLite 星表
python scripts/download_ephemeris.py # JPL DE421 星历
python scripts/build_city_index.py # 手册“在线试用”用的城市坐标索引(可选)
uvicorn app.main:app --host 0.0.0.0 --port 8000
启动后可以打开:http://127.0.0.1:8000/health、http://127.0.0.1:8000/docs、http://127.0.0.1:8000/sky/chart?latitude=31.4591&longitude=121.1298&total_limit=8
cd atlas
npm install
npm run dev # http://localhost:5173 ,/sky-api 代理到线上后端
npm run build # 产物在 atlas/dist/
前端在 atlas/public/data/ 中自带烘焙好的星表,可以直接运行。用 npm run data 可以从后端下载的 HYG CSV 重新生成。
功能概览:
total_limit 可到 300)。star_max_mag、deep_sky_max_mag、min_altitude_deg 筛选,再按亮度统一排序后截取,各类别没有固定数量。category 取值:star、deep_sky、planet、sun、moon(日月的 object_type 分别为 sun、moon),完整说明见开发者手册。/sky/chart 返回 chart_x、chart_y、chart_radius,前端可以直接绘制极坐标星图。可以用 time_utc 指定观测时间。reasoning_context 提供中文观测建议和目标解释,便于 LLM 工具调用。servers 可以通过环境变量配置,适合接入灵珠等只接受 HTTPS 域名的工具平台。curl "https://sky.eunoia.top/health"
# {"status": "ok", "version": "0.4.0", "catalog_db_exists": true}
curl "https://sky.eunoia.top/sky/chart?latitude=31.4591&longitude=121.1298&total_limit=8"
curl -X POST "https://sky.eunoia.top/sky/chart" \
-H "Content-Type: application/json" \
-d '{
"latitude": 31.4591,
"longitude": 121.1298,
"min_altitude_deg": 0,
"star_max_mag": 3,
"deep_sky_max_mag": 9,
"total_limit": 100
}'
关键返回结构:
{
"sky_chart": {
"observer": { "lat": 31.4591, "lon": 121.1298 },
"time_utc": "2026-05-17T03:00:00Z",
"coordinate_system": { "chart_projection": "polar_azimuthal_horizon" },
"counts": { "star": 69, "deep_sky": 28, "planet": 2, "moon": 1 },
"objects": [
{
"category": "star",
"display_name": "南河三",
"azimuth_deg": 242.65,
"altitude_deg": 44.83,
"magnitude": 0.4,
"chart_x": -0.4965,
"chart_y": -0.2567,
"chart_radius": 0.5019
}
],
"reasoning_context": {
"corpus_version": "0.1.0",
"summary": "当前位置纬度 31.4591、经度 121.1298,本次筛选得到 8 个适合星图展示的目标。",
"bullets": [],
"object_insights": []
}
}
}
curl "https://sky.eunoia.top/reasoning/corpus" # 生成 reasoning_context 用的中文观测语料
curl "https://sky.eunoia.top/catalog/stats"
curl "https://sky.eunoia.top/stars/bright?limit=20"
curl "https://sky.eunoia.top/stars/search?name=Sirius"
推荐导入 OpenAPI:https://sky.eunoia.top/openapi.json。工具主动作建议选 GET /sky/chart,参数只需要传 latitude 和 longitude(Query,number),其他筛选参数用后端默认值。
复制 .env.example 作为参考:
| 变量 | 默认值 | 说明 |
|---|---|---|
SKY_CATALOG_DB | data/catalog.db | SQLite 星表路径 |
SKY_PUBLIC_BASE_URL | https://sky.eunoia.top | OpenAPI servers[0].url |
# 后端:FastAPI 绑定 127.0.0.1:8000,由 systemd 托管
sudo cp deploy/lingzhuback.service /etc/systemd/system/lingzhuback.service
sudo systemctl daemon-reload
sudo systemctl enable --now lingzhuback
# 前端:构建后发布到 nginx 静态目录
cd atlas && npm run build
sudo mkdir -p /var/www/sky-atlas && sudo cp -r dist /var/www/sky-atlas/site
# nginx:星图为首页,其余路径反向代理到后端
sudo cp deploy/nginx.example.conf /etc/nginx/sites-available/sky-monitor-api
sudo ln -s /etc/nginx/sites-available/sky-monitor-api /etc/nginx/sites-enabled/sky-monitor-api
sudo nginx -t && sudo systemctl reload nginx
线上部署建议:
SKY_PUBLIC_BASE_URL 为你的域名。/sky/chart,不需要配置 CORS。pytest -q # 后端:请求模型、星表构建与查询、推理语料
cd atlas && npm run build # 前端:TypeScript 类型检查 + 构建
代码采用 MIT License。第三方数据遵循各自的许可:
| 数据 | 许可 | 仓库中的形式 |
|---|---|---|
| HYG Database v3 | CC BY-SA 2.5 | 后端原始 CSV 不提交(脚本下载);前端提交烘焙后的 atlas/public/data/stars.bin、named.json |
| JPL DE421 | 公有领域 | 不提交,脚本下载 |
| d3-celestial 星座 / 中国星官数据 | BSD-3-Clause | atlas/public/data/constellations.json、mansions.json,附 CONSTELLATIONS-LICENSE.txt |
| GeoNames cities1000 | CC BY 4.0 | 不提交,脚本生成 |
| OpenNGC(梅西耶目录坐标核对与取值) | CC BY-SA 4.0 | 坐标写入 app/deep_sky.py |