← 项目档案
Bloomprint
把庭院灵感变成可执行的方案——买什么、买多少、需要哪些工具、按什么顺序、可能会出什么问题。

这是什么
问题
改造庭院让人无从下手:一张灵感照片说不清材料、数量、工具和步骤,也说不清哪里会出错——而多数工具只会像聊天机器人一样给出自信的猜测。
方案
这是一个结构化的规划应用,而不是聊天机器人:确定性引擎才是真正的依据,完全离线、无需 AI 密钥和照片也能工作——AI 只负责润色已生成的方案。每份方案都基于区域化目录(以安大略为先)、价格区间而非虚假精确价、在未测量时自动放宽的用料计算,以及分阶段的操作指南。
界面一览
Planning engineThe demo exposes the deterministic stages before the result: intake, regional scoring, quantities, risk checks, and packaging.
技术栈
Frontend
- Next.js
- React 19
- TypeScript
- Tailwind CSS
- Konva
Backend
- Supabase
- Zod
ML
- TensorFlow.js
亮点功能
- Deterministic planning engine as the source of truth
- Local-first storage with optional Supabase cross-device sync
- Free/Open Data Mode — works with no paid API
- Region-aware retailer links and honest price bands
- Optional AI presentation (Claude) with silent fallback
- On-device photo segmentation (TensorFlow.js)
工程实现
- 过程 01
Make the planner deterministic before adding AI
- 背景
- Material quantities, sequencing, and regional suitability cannot depend on a model improvising plausible advice.
- 方法
- Let a rules-based engine own the plan and restrict Claude to rephrasing facts that are already set.
- 结果
- Plans remain inspectable and work without AI, while expanding capability requires catalog and rule work rather than prompt changes.
- 过程 02
Represent uncertainty instead of hiding it
- 背景
- Users may not have measurements, retailer inventory changes, and Ontario-first data does not generalize everywhere.
- 方法
- Return ranges, confidence labels, sources, last-checked dates, and explicit verify-before-buying notes.
- 结果
- The output is less magically precise but more trustworthy and actionable.
实现细节
架构笔记
- The deterministic engine owns the truth; AI and live data only enrich, never override.
- Local-first by design — the plan never waits on the network; cloud sync sits behind the local layer.
- Every live fact carries a source, a confidence tag, and a 'last checked' time.
挑战
- Producing useful material ranges when users have not measured their yard without disguising uncertainty as precision.
- Keeping AI, live-data adapters, and optional cloud sync additive so the core planner still works when every external service is absent.
- The current catalog is Ontario-first; recommendations outside that region need broader data before they can claim the same grounding.
结果
A working local-first planning app live at bloomprint.online that chooses honest grounding — sourced facts, confidence tags, price ranges — over confident AI guesswork.
规划与心得
复盘
- 01Deterministic-first earns trust a chatbot-first tool can't.
- 02Honest hedging — ranges, 'verify before buying' — reads as more credible than false precision.
- 03Local-first changes every assumption about state, sync, and failure.
下一步
- 01Expand the catalog beyond Ontario
- 02Connect and evaluate live-data providers
- 03Add collaborative plan review