ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
给 6 个月到 3 岁家庭的开源亲子共学工具。屏幕只开个头,成长发生在家长的回应、真实物品、游戏、阅读、歌唱和户外里。
Translation pending
EducationTypeScript · JavaScriptGitHub @gxlselfOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
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
芽芽成长 Sprout — open-source, parent-led learning companion for ages 6 months–3 years. The screen is only the opening line.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A gentle, parent-led learning companion for ages 6 months to 3 years. 芽芽成长是面向 6 个月–3 岁家庭的亲子共学工具:屏幕只做一个慢慢的引子,真正的学习发生在家长的回应、真实物品、游戏、阅读、歌唱和户外活动里。它不是电子保姆,也不以延长观看时长为目标。 项目适合在家庭局域网运行:一台 Mac、NAS 或小主机运行服务端,电视、iPad 或浏览器打开播放端,手机和电脑打开家长后台。没有服务器时,也可以使用播放端内置内容包离线体验。Read the full README ↗
A gentle, parent-led learning companion for ages 6 months to 3 years.
官网 · 在线演示 · English README
芽芽成长是面向 6 个月–3 岁家庭的亲子共学工具:屏幕只做一个慢慢的引子,真正的学习发生在家长的回应、真实物品、游戏、阅读、歌唱和户外活动里。它不是电子保姆,也不以延长观看时长为目标。
项目适合在家庭局域网运行:一台 Mac、NAS 或小主机运行服务端,电视、iPad 或浏览器打开播放端,手机和电脑打开家长后台。没有服务器时,也可以使用播放端内置内容包离线体验。
这些原则不是医疗建议,也不承诺某节课会带来特定发育或学习结果。屏幕时间、睡眠、进食、身体活动和发育担忧请结合孩子实际情况,必要时咨询儿科或儿保专业人员。
| 部分 | 能做什么 |
|---|---|
| 播放端 | 电视/iPad/浏览器播放课程;支持遥控器 D-pad、键盘和触屏;支持远程服务器与离线内置内容;按月龄提供家长模式、亲子共看、暂停、家长门和自然结束点。 |
| 家长后台 | 首次设置、孩子档案、语言模式、屏幕时段、今日计划、成长路线、课程库、打印实体卡、里程碑观察、设备配对、备份恢复。 |
| 内容包 | sprout.core 内置 6 个阶段、96 节课程和 254 个词条;课程含家长导语、慢节奏步骤和线下延伸活动;内容可打包、校验、导入和升级。 |
| 活动插件 | 17 个内置活动,另支持带命名空间的第三方活动插件;插件必须遵守生命周期、焦点导航、资源、音频、权限和婴幼儿内容安全约定。 |
flowchart LR
subgraph LAN["家庭局域网"]
Server["Mac / NAS / 小主机<br/>@sprout/server :4310"]
API["/api/*<br/>REST + Swagger"]
Packs["/packs/*<br/>内容包静态资源"]
Plugins["/plugins/*<br/>插件静态资源"]
Admin["/admin/<br/>家长后台"]
Player["/<br/>播放端"]
Server --> API
Server --> Packs
Server --> Plugins
Server --> Admin
Server --> Player
end
TV["电视浏览器 / Android TV"] --> Player
IPad["iPad Safari / Capacitor App"] --> Player
Family["手机 / 电脑浏览器"] --> Admin
Player -->|RemoteSource:配对后的 device token| API
Player -->|LocalSource:内置 sprout.core + 本地记录| Local["设备本地存储"]
Admin -->|admin token| API
服务端使用 Node 22、Fastify 和 node:sqlite,默认监听 0.0.0.0:4310。播放端通过同一个 DataSource 抽象连接服务器或使用本地数据;后台和播放端都复用 @sprout/schema 的数据契约,排课与屏幕策略复用 @sprout/core。
完整边界、数据流和目录所有权见系统架构。
apps/
server/ Fastify 服务端、SQLite、静态文件托管
admin/ 家长后台(Vite + React + Ant Design)
player/ 大屏播放端与 Capacitor 工程
packages/
schema/ 数据契约、Zod 校验、JSON Schema
core/ 排课、屏幕时间、内容包运行时工具
plugin-sdk/ 活动插件运行时契约与视觉令牌
activities/ 17 个内置活动与 playground
content/
packs/sprout-core/ 内置词库、路线、课程、素材和音频
milestones/ CDC 2022 里程碑整理数据
scripts/ 内容素材、音频、校验、bundle 和 zip 流水线
plugins/examples/ 第三方插件示例
docs/ 研究、课程、开发、部署和家长指南
deploy/ Docker、macOS 自启和发布检查
>=22.12,当前项目验证版本为 Node 22。11.1.0(根 package.json 的 packageManager)。say;没有音频时播放端会按“预生成音频 → Web Speech API → 文字”回退。依赖已经随开发工作区准备好时,可以跳过安装步骤。全新工作区可运行:
corepack enable
export pnpm_config_verify_deps_before_run=false
pnpm install
内容源文件已经在仓库中;需要从源重新生成路线、素材、音频、校验结果和离线 bundle 时,在 macOS 上运行:
export pnpm_config_verify_deps_before_run=false
pnpm content:all --pack content/packs/sprout-core
content:all 依次执行 route → assets → audio → validate → bundle。它会改写生成的路线、音频和 bundle.json,不应在只想查看源码时随意运行。构建三个工作区应用:
export pnpm_config_verify_deps_before_run=false
pnpm build
构建不含预录音频的 GitHub Pages 演示站:
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/player build:demo
输出目录为 apps/player/dist-demo/,部署前缀为 /ai-study/demo/。演示版只使用内置 sprout.core 和浏览器本地存储,不连接家庭服务器。
export pnpm_config_verify_deps_before_run=false
pnpm start
然后打开:
首次进入后台时设置家庭名、管理员密码、孩子名字、生日和语言模式。之后在播放端选择“连接家庭服务器”,在后台“播放设备”页输入播放端显示的 6 位配对码,并绑定孩子。配对码 10 分钟有效。
服务端、后台和播放端分别运行;每个终端都先设置 pnpm 依赖检查环境变量:
# 终端一:服务端
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/server dev
# 终端二:播放端,http://localhost:5310/
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/player dev
# 终端三:后台,http://localhost:5311/admin/
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/admin dev
开发端口被占用时,按各包脚本支持的备用端口运行;结束验证后关闭由自己启动的服务。
电视浏览器或 Android TV 可以直接打开服务端根地址;Android TV 也可以安装 release APK。iPad 可以用 Safari 打开根地址并添加到主屏幕,或使用 Capacitor App。设备与服务器必须在同一家庭网络,电视端不能填写服务器的 localhost。
详细的 Mac、Docker、Android TV、iPad、配对、备份和常见问题步骤见部署与设备安装。发布验证记录见部署验证记录。
content/examples/hello-pack/ 开始,使用 schema 校验、资源署名、音频清单和 bundle 流程。@sprout/plugin-sdk 契约。content/packs/sprout-core/routes/_stages/。根脚本与工作区脚本保持一致:
export pnpm_config_verify_deps_before_run=false
pnpm test
pnpm typecheck
pnpm content:typecheck
pnpm content:test
pnpm qa:verify
常用包级命令:
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/server typecheck
pnpm --filter @sprout/server test
pnpm --filter @sprout/server build
pnpm --filter @sprout/admin typecheck
pnpm --filter @sprout/admin test
pnpm --filter @sprout/admin build
pnpm --filter @sprout/player typecheck
pnpm --filter @sprout/player test
pnpm --filter @sprout/player build
开发任务和协作边界见 docs/dev/tasks/;最重要的契约入口是:
packages/schema/src/*.ts:内容、路线、运行时和插件清单的数据事实来源。packages/plugin-sdk/src/types.ts:活动插件生命周期与 ActivityContext。packages/plugin-sdk/src/tokens.css:播放端与活动共用的视觉令牌。docs/dev/api.md:REST API。docs/dev/architecture.md:架构和所有权。docs/README.md:完整文档索引。本仓库分为代码、原创内容和第三方素材三类许可,不能把整个仓库笼统地标成同一种许可证。
代码: apps/、packages/、scripts/、plugins/、deploy/、构建配置和 schema 代码按根目录 LICENSE 采用 MIT。
内容: content/packs/** 中的原创课程、路线、词库文本、原创歌词、打印卡文案、家长指引,以及 docs/curriculum、docs/guide、docs/research 等原创文字按 CONTENT-LICENSE.md 提供:个人、家庭、非商业教育使用免费并须署名;商业使用须事先取得书面授权。各内容包 manifest 的 license 字段与此保持一致。公开仓库、发布 ZIP、APK 和演示站均不含任何预录音频。
第三方: Fluent Emoji 按 Microsoft 的 MIT 许可,Lucide 按 ISC 许可,CDC 里程碑整理数据按其来源与仓库现有说明使用,自绘图形的 CC0 范围以各包 assets/sources.json 为准。完整汇总见 THIRD_PARTY_NOTICES.md 和各包的 LICENSES.md。
在 macOS 上运行 pnpm content:audio 只供个人非商业使用:生成文件和 audio/manifest.local.json 写入本地忽略路径,不进入公开 bundle、ZIP 或应用。公开发布应接入已获音频再分发授权的 TtsProvider 或真人录音,并按内容流水线文档补齐来源与许可。
新增图片、录音、视频、旋律或插件时,请同时更新内容包的 credits、LICENSES.md 或插件清单,不要把 custom 当作自动获得许可。
服务端可通过现有 TtsProvider 接入获授权声音;audio/manifest.json 的结构与文本 key 不变。详细接入、全量重配音及发布检查见内容流水线。
芽芽成长是亲子共学和家庭活动安排工具,不是医疗设备、治疗工具或发育诊断工具。里程碑条目用于日常观察和与专业人员沟通,不用于给孩子打分、排名或下诊断;发现能力倒退或持续担忧时,请及时咨询儿科或儿保医生。
屏幕策略是结合研究和产品边界做出的家庭使用建议,不是对所有家庭都适用的医疗处方。家长始终可以关闭孩子侧屏幕内容,改用家长指引、打印卡、纸书、真实物品、歌唱和户外活动。