Я превратил свой Obsidian-vault в интерактивную планету — и выпустил бесплатный плагин

Иллюстрация: CosmoGraph 3D превращает хранилище Obsidian в интерактивную планету заметок

Я превратил свой Obsidian-vault в интерактивную планету — и выпустил бесплатный плагин

В какой-то момент мой граф Obsidian перестал быть картой знаний и стал очень красивым клубком проводов.

Пока заметок было немного, всё работало как обещано: открыл граф, увидел несколько связей, нашёл забытую идею. Потом vault вырос. Точек стало больше, линии пересеклись, а я снова начал искать файлы по названию — то есть пользоваться графом примерно никак.

Мне захотелось превратить базу заметок не просто в схему, а в место. Чтобы проекты находились на одной стороне, материалы — на другой, а к нужной заметке можно было буквально повернуться.

Так появился CosmoGraph 3D — бесплатный open-source плагин для Obsidian. Он превращает локальный vault в интерактивную планету: заметки становятся светящимися точками, папки — районами, а wikilinks — связями на поверхности.

Установка и навигация

1. Откройте Settings → Community plugins → Browse.

2. Найдите CosmoGraph 3D.

3. Нажмите Install, затем Enable.

Установить CosmoGraph 3D: https://obsidian.md/plugins?id=cosmograph

Зачем заметкам понадобилась планета

Что можно делать внутри 3D-графа

Как vault превращается в поверхность

Что происходит с приватностью заметок

Где заканчивается красивая демка

Что будет дальше

Установить CosmoGraph 3D за минуту

Плагин уже находится в официальном каталоге Obsidian:

Открыть карточку CosmoGraph 3D в Obsidian: https://obsidian.md/plugins?id=cosmograph

Исходный код открыт на GitHub: https://github.com/n1ghtmare-dev/obsidian-cosmograph. BRAT тоже поддерживается, но теперь это скорее beta-канал для тех, кто хочет получать экспериментальные сборки раньше стабильных релизов.

Зачем заметкам понадобилась планета

У обычного графа есть парадокс: чем больше информации он показывает, тем труднее эту информацию извлечь.

Популярные заметки обрастают линиями, слабосвязанные разлетаются по краям, а после очередного пересчёта знакомые узлы могут оказаться в новых местах. Граф честно отвечает на вопрос «что с чем связано», но всё хуже отвечает на более практичный вопрос: «где лежит то, что мне сейчас нужно?»

Я решил проверить другую метафору — не бесконечное облако, а ограниченный мир.

У сферы нет краёв, зато она целиком помещается перед глазами. Её можно вращать, делить на устойчивые районы и постепенно запоминать. Проекты остаются рядом с проектами, ресурсы — с ресурсами, архив получает своё место. Это уже не попытка показать все линии сразу, а заготовка для пространственной памяти.

Звучит слегка пафосно для папки с Markdown-файлами. Но именно поэтому мне и понравилась идея.

Я превратил свой Obsidian-vault в интерактивную планету — и выпустил бесплатный плагин

Как устроен поток данных:

Obsidian отдаёт плагину список заметок и разрешённые ссылки. Раскладка определяет положение районов, а Three.js превращает данные в интерактивную сцену.

Что можно делать внутри 3D-графа

CosmoGraph открывается в обычной вкладке Obsidian. Никакого отдельного приложения и импорта базы не требуется.

Планету можно вращать мышью, приближать, искать заметки по названию и фильтровать по папкам. При выборе узла сфера плавно поворачивается нужной стороной, показывает соседние связи и позволяет открыть исходный Markdown-файл.

Есть два визуальных режима. «Мягкий» оставляет спокойную поверхность без лишних эффектов. «Сияние» добавляет частицы, атмосферу и bloom — режим совершенно необязательный, но иногда хочется, чтобы список рабочих задач выглядел так, будто от него зависит судьба далёкой галактики.

Отдельная кнопка скрывает интерфейс и оставляет только сцену. Это не повышает продуктивность, зато отлично работает как способ на несколько минут зависнуть над собственной базой знаний и обнаружить странные скопления заметок.

Что находится на экране:

Слева — папки и поиск, в центре — граф, снизу — переключение визуальных режимов и фокуса.

Как vault превращается в поверхность

Внутри всё начинается довольно прозаично. Плагин получает список Markdown-файлов из Obsidian и готовую таблицу разрешённых wikilinks. Заголовок заметки становится подписью, полный путь — идентификатором, а верхняя папка определяет район планеты.

Дальше начинаются более интересные решения.

Я отказался от классической физической симуляции, в которой узлы притягиваются и отталкиваются друг от друга. Она хорошо подходит для универсальных графов, но расположение точек может долго стабилизироваться и заметно меняться после добавления одного файла. Для навигации это плохо: сегодня проект находится слева, завтра — уже где-то за горизонтом.

В CosmoGraph крупным папкам назначаются устойчивые направления на сфере. Заметки расходятся вокруг центра своего района по золотому углу — примерно так же природа раскладывает семена подсолнечника. Результат получается равномерным и, главное, детерминированным.

Почему раскладка остаётся стабильной:

Папка получает постоянный якорь, заметки распределяются вокруг него, а затем прижимаются к локальной высоте поверхности.

Сама планета тоже не является готовой 3D-моделью. Рельеф генерируется процедурно из нескольких слоёв шума и детерминированных кратеров. Если дважды открыть один и тот же vault, материки не исчезнут и не переедут. В перспективе они должны работать как ориентиры, а не как случайная декорация.

Подписи показываются не у всех файлов. Даже на моём тестовом vault со 163 заметками сплошной текст быстро закрывал всю сцену. Поэтому постоянно видны названия районов и наиболее связанные заметки, а остальные подписи появляются при поиске или выборе.

Что происходит, когда заметки меняются

CosmoGraph слушает события Obsidian: создание, удаление и переименование файлов, а также обновление ссылок. Несколько быстрых изменений объединяются небольшой задержкой, после чего сцена перестраивается.

Сейчас это честный компромисс. Для сотен заметок полная перестройка приемлема. Для vault на десятки тысяч файлов уже понадобится инкрементальный индекс: изменять только затронутые узлы и GPU-буферы, не пересоздавая весь мир.

Ещё одна неочевидная часть — корректное закрытие вкладки. Плагин останавливает цикл анимации, удаляет обработчики и освобождает WebGL-ресурсы. Иначе невидимая планета продолжала бы жить где-то в фоне, греть ноутбук и, видимо, готовиться к захвату системы.

Что происходит с приватностью заметок

Содержимое vault никуда не отправляется. Плагин получает данные через локальный API Obsidian и строит модель в памяти приложения.

CosmoGraph читает список Markdown-файлов и разрешённые внутренние ссылки. Исходные заметки он не изменяет, аккаунта или внешнего API не требует.

Для меня это принципиально. У многих в Obsidian лежат рабочие записи, личные дневники и черновики, которые не должны покидать компьютер ради красивой визуализации.

Где заканчивается красивая демка

У 3D-интерфейсов есть опасное свойство: хороший скриншот легко принять за готовый продукт. Особенно когда всё светится и медленно вращается.

CosmoGraph уже можно использовать как навигацию: найти заметку, повернуть к ней планету, посмотреть ближайшие связи и открыть файл. Но я пока не утверждаю, что такой подход объективно удобнее обычного поиска.

Это предстоит проверить на больших пользовательских vault. Семантика заметок пока не участвует в кластеризации, после изменений граф перестраивается целиком, а мобильный интерфейс остаётся экспериментальным. Понадобятся измерения, тесты и, скорее всего, несколько идей, которые красиво выглядели на экране, но не переживут встречу с реальностью.

Зачем я открыл исходный код

Во-первых, плагин, который читает структуру личной базы знаний, должен позволять проверить, что именно он делает.

Во-вторых, CosmoGraph вырос из визуального эксперимента, и я пока не знаю всех сценариев использования. У разных людей vault устроен совершенно по-разному: PARA, ежедневные заметки, Zettelkasten, каталоги проектов или почти полное отсутствие папок. Issues и примеры реальных хранилищ здесь полезнее любой придуманной мной персоны пользователя.

Если захотите поддержать разработку, можно поставить репозиторию star: https://github.com/n1ghtmare-dev/obsidian-cosmograph. Для небольшого open-source проекта это не декоративная цифра, а понятный сигнал, что эксперимент стоит продолжать.

Ещё полезнее — написать issue и указать размер vault, железо и момент, в котором навигация стала неудобной.

Что будет дальше

Следующий этап — перестать оценивать скорость словами «вроде быстро».

Я хочу измерить весь холодный запуск: от открытия вкладки CosmoGraph до первого интерактивного кадра. Цель — попробовать уложиться в 0,5 секунды на тестовом vault и отдельно проверить тысячи заметок.

Если получится, покажу точное «было/стало», профили и оптимизации. Если не получится — тоже покажу. Истории о том, какие красивые решения не дали почти никакого ускорения, обычно полезнее очередного списка «десять способов сделать WebGL быстрее».

А пока плагин уже можно установить из официального каталога Obsidian: https://obsidian.md/plugins?id=cosmograph, покрутить собственную планету и решить, помогает ли такая карта хоть что-то запомнить — или просто очень красиво светится.