Соединяете ноды связями — значения проливаются по графу и пересчитываются на лету. Меняете один параметр — видите, что произойдёт с P&L, runway или пропускной способностью сервиса.
🚀 Веб-демо · ⬇️ Скачать релиз · 📚 Документация · 🗂 Схемы-примеры · ❓ FAQ · 🤝 Contributing
English · Русский
CanvasDesk — это визуальная среда математического моделирования. На бесконечном зумируемом канвасе вы строите исполняемые модели из расчётных нод: текстовые заметки с формулами «человеческим языком» и готовые шаблоны (балансировщик нагрузки, кэш, очередь, CAC, LTV, runway, retention…).
Связи между нодами передают не просто «стрелочку», а значение. Подставили rps = 1000 в одну ноду — во всех связанных пересчитаются латентность, утилизация, потребность в репликах. Изменили churn на 1 процентный пункт — увидите дельту по LTV, runway и burn rate в таблице сравнения сценариев. Граф — направленный ацикличный (DAG), циклы блокируются, живой пересчёт — мгновенный.
В ядро встроена доменная математика: единицы измерения конвертируются автоматически (50 ms, 1000 rps, $10k/mo), есть формулы теории очередей (mm1, mmc, erlang_c, закон Литтла), финансовые функции (npv, irr, cagr, cohort_ltv). Не нужно писать формулы в Excel и синхронизировать их с диаграммой — диаграмма и есть формула.
ИИ-агент через MCP собирает модели по текстовому описанию и проверяет числа: «спроектируй сервис на 10k rps с кэшем и очередью» — агент раскладывает граф, подставляет эталонные значения, показывает узкие места.
Это инструмент для тех, кто должен одновременно спроектировать систему, посчитать её и защитить расчёт перед командой, C-level или инвесторами — в одном месте, без раскидывания по Miro + Excel + Google Docs + PowerPoint.
Модель «Ёмкость сервиса» — значения протекают по рёбрам графа, узкое место (ρ ≥ 1) подсвечено. Полная галерея — ниже.
| Роль | Типовые вопросы, на которые отвечает CanvasDesk |
|---|---|
| Solution / Technical-архитектор | Выдержит ли сервис 10k rps? Сколько реплик и воркеров нужно? Где узкое место при ×2? Что с P99, если добавить кэш? |
| Продакт-аналитик и финансист | Какой LTV при таком CAC? Что с runway, если churn упадёт на 1 пп? Когда ARPU окупит привлечение? |
| Продакт-оунер и менеджер | Что если нагрузка удвоится? Где сломается P&L? Какой сценарий выбрать при горизонте 18 месяцев до profitability? |
| ИИ-ассистент в петле с человеком | Собрать модель по описанию за минуты, чтобы человек её исследовал и доработал: агент строит граф, проставляет связи, проверяет корректность. |
1. Веб-версия — без установки → danku13.github.io/CanvasDesk/app/ Тот же движок в браузере: нужен Chrome или Edge (WebGPU), Firefox — экспериментально. Загрузка ~1 секунда.
2. Готовый бинарь → Releases
Windows x64, Linux, macOS universal2 (.app) — ничего компилировать не нужно.
3. Сборка из исходников (нужен Rust 1.80+):
git clone https://github.com/danku13/CanvasDesk.git
cd CanvasDesk
cargo build --workspace --release
cargo run -p canvas-app --release -- path/to/file.canvas
cargo run -p canvas-app --release -- --stress 5000 # нагрузочная сцена
canvasdesk mcp # MCP-посредник для AI-клиентовПлатформенные особенности — в docs/ENVIRONMENT.md.
4. ИИ-агент — добавьте canvasdesk mcp в конфиг своего AI-клиента: агент собирает модели, проверяет числа, ищет узкие места.
- Открыть эталонную схему — галерея схем в репозитории и в приложении: unit economics, capacity service, project budget, what-if. Покрутить параметры и посмотреть, как пересчитывается downstream.
- Использовать 60+ встроенных шаблонов — палитра слева или кольцевое меню: инфраструктура, юнит-экономика, продуктовая аналитика.
- Запустить what-if — подмените строку расчёта и увидите дельты по всему графу; сравните до 3 сценариев таблицей.
- Работать командой в одном файле — модель это
.canvas-файл: коммитьте в git, ревьюйте diff-ом, открывайте у кого угодно.
- Формулы как текст. В любой заметке пишете
rps = 1000,latency = 50 ms,cost = rps * $0.01. Единицы конвертируются, переменные протекают сверху вниз, как в Numi. - Связи передают значения. Соединили источник с приёмником — значение выхода подставилось в параметр входа. Меняется источник — пересчитывается весь downstream.
- Готовые шаблоны. Не нужно с нуля собирать балансировщик, кэш, очередь или формулу LTV — берёте из палитры, подставляете свои числа.
- Доменная математика в ядре. Erlang-C для контакт-центров, теория очередей для сервисов, NPV/IRR/CAGR для финансов — встроено, без внешних библиотек.
- Живой пересчёт и undo. Всё пересчитывается мгновенно, любая правка откатывается в один шаг. What-if сценарии не портят базовую модель — сравнили, выбрали лучший, применили.
«Выдержит ли сервис 10k rps?» — собираете граф из шаблонов: балансировщик → API-шлюз → очередь → воркеры → БД. Подставляете rps, видите утилизацию каждого узла, индикатор узкого места (ρ ≥ 1) подсвечивается красным. Добавляете кэш — пересчёт, видите, где разгрузилось.
«Что с runway, если churn упадёт на 1 пп?» — открываете эталонную схему unit economics, в what-if подменяете churn, видите дельту по LTV, MRR, runway в таблице сравнения. Экспортируете сценарий для инвесторов.
«Где сломается P&L при ×2 нагрузки?» — дублируете граф, удваиваете rps, видите, какие статьи раздуются (инфраструктура, поддержка), где маржа уходит в минус. Защищаете решение перед C-level таблицей «было → стало».
«Спроектируй MVP Instagram» — пишете агенту, он раскладывает граф: пользователи → retention → DAU → нагрузка на storage/CDN → cost. Проверяете числа, докручиваете, идёте к инвесторам с моделью, а не с презентацией.
14 эталонных моделей в assets/canvas-schemes/ — открывайте прямо в приложении (галерея на старте или File → Open):
| Категория | Схемы |
|---|---|
| Инфраструктура | capacity-service · support-staffing · renovation-estimate |
| Юнит-экономика | unit-economics · runway · investment-case · project-budget |
| Продукт и рост | ab-testing · cohort-launch · cjm-saas · jtbd-saas · service-blueprint-saas |
| Обучение | intro-calculations · intro-whatif |
| Документ | Что внутри |
|---|---|
| docs/SPEC.md | Техническая спецификация движка и архитектуры |
| user-docs/ | Пользовательская документация |
| docs/RECIPES.md | Рецепты: как собрать типовые модели |
| docs/ENVIRONMENT.md | Сборка и платформенные особенности |
| docs/BYOK.md | Подключение своих ИИ-ключей (BYOK) |
| docs/plans/product-roadmap.md | Дорожная карта продукта |
| CONTRIBUTING.md | Правила участия в разработке |
| THIRD-PARTY-NOTICES.md | Сторонние лицензии |
CanvasDesk поставляется с MCP-посредником (canvasdesk mcp): любой AI-клиент, говорящий по Model Context Protocol, может строить и проверять модели прямо на канвасе. Агент раскладывает задачу в граф, проставляет связи, подставляет эталонные значения и подсвечивает риски; человек проверяет и докручивает. Протокол верификации моделей — wasm-проверка на стороне ядра (docs/SPEC.md).
Rust · wgpu (WebGPU) · winit · cosmic-text · rstar (spatial index) · rusqlite · serde · MCP-протокол. UI-стек — собственный: слои поверхностей, компонентный кит и layout-движок FlexLayoutEngine (подмножество CSS Flexbox/Grid: auto/minmax-треки, sticky, rotate, z-index) без внешних layout-зависимостей. Один бинарь — весь стек: GUI + MCP-посредник для AI-клиентов.
Возможности канваса: бесконечный канвас (панорамирование, зум к курсору, pinch, сетка) · markdown-заметки, совместимые с Obsidian (**жирный**, *курсив*, ==подсветка==) · файловые карточки с тамбнейлами · миникарта и полнотекстовый поиск · клик по заметке сразу ставит курсор в точку нажатия (без даблклика) · undo/redo глубиной 50 · группировка нод и палитра цветов · 7 тем (tokyo-night, dracula, nord, gruvbox, catppuccin, solarized…) · режим «вместо рабочего стола» на Windows · автосейв с debounce и .bak-копией · 5000 нод при 60 fps.
Канвас, рендер, заметки, связи, клик-редактирование, миникарта, поиск, undo, MCP, Numi-движок, поток значений, 60 шаблонов, what-if, ИИ-агент, веб-версия — работают и активно используются.
| Платформа | Состояние |
|---|---|
| Windows 10/11 x64 | полная функциональность |
| Linux, macOS | канвас и редактирование; платформенные фичи (drag-drop, MCP через Unix-сокеты) — по плану |
| Веб | Chrome/Edge (WebGPU), Firefox — экспериментально |
Проект в активной разработке, сейчас — этап проверки востребованности: ищем первых 5 внешних пользователей, которые сами построят модель и вернутся к ней второй раз. Попробуйте веб-версию и напишите, что получилось — @danku13.
Подробности — в спецификации, пользовательской документации и дорожной карте.
Приветствуются PR, баг-репорты и идеи схем. Прочитайте CONTRIBUTING.md перед первым PR. Отправляя Pull Request, вы принимаете CLA — авторство остаётся за вами, право лицензировать вклад в будущем переходит владельцу проекта.
Copyright © 2026 danku13. Проект распространяется под GNU AGPLv3. Модель простая: код бесплатный и открытый — навсегда; судьба проекта (включая лицензию) — в руках владельца.
| 💚 Код бесплатен | Весь код — под GNU AGPLv3: свободно используйте, изучайте, изменяйте и распространяйте. Никаких «open core» хитростей — сообщество получает весь проект целиком. |
| 🔒 Коммерческие права у владельца | Исключительные права на проект и право изменять его лицензию в будущем сохраняет владелец (danku13): можно выпустить коммерческую или проприетарную редакцию, применить dual-licensing. Код, уже выпущенный под AGPLv3, для сообщества от этого не закроется. |
| ✍️ PR = подписание CLA | Отправляя Pull Request, вы автоматически принимаете CLA: авторство вашего кода остаётся за вами, но право лицензировать вклад в будущем переходит владельцу. Это защищает проект от юридических рисков при смене лицензии. |
Можно ли использовать CanvasDesk в коммерческих целях?
Да — на условиях AGPLv3: коммерческое использование законно, пока соблюдаются условия лицензии (исходники изменений открываются под AGPLv3; для сетевых сервисов действует §13 AGPL — исходники версии, доступной пользователям, должны быть открыты). Разрешения владельца для этого не требуется.
Yes — under AGPLv3 terms: commercial use is legal as long as you comply with the license (your modifications stay under AGPLv3; for network services §13 applies).
Условия AGPLv3 мне не подходят (закрытая интеграция, OEM, white-label, SaaS без открытия исходников)
Напишите владельцу — обсудим коммерческую лицензию под ваш сценарий: Telegram @danku13 или danku13@yandex.ru.
Contact the owner to discuss a commercial license: Telegram @danku13 or danku13@yandex.ru.
На каких ОС работает?
Windows 10/11 x64 — полная функциональность. Linux и macOS — канвас, редактирование, поиск; платформенные интеграции в работе. Веб-версия — в Chrome/Edge (WebGPU), Firefox — экспериментально.
Есть ли веб-версия?
Да — danku13.github.io/CanvasDesk/app/. Тот же движок, что в десктопе, работает в браузере: ввод, кириллица, поиск, браузерное хранение. Загрузка около секунды.
Что происходит с моим вкладом?
Авторство — ваше (git-история сохранит), но по CLA владелец получает право лицензировать вклад на любых условиях в будущем. Правила участия — в CONTRIBUTING.md.
Поддерживается ли русский язык?
Интерфейс — русский и английский (переключается в настройках). Формулы и единицы измерения — универсальные.
Инвестиции и партнёрство?
Свяжитесь любым способом: Telegram @danku13, danku13@yandex.ru.
Companies and investors: reach out via Telegram @danku13 or danku13@yandex.ru.