💬 0
Разработчики создали систему трассировки лучей RayTracer на чистом языке SQL для ClickHouse
News
2 июля 2026

Разработчики создали систему трассировки лучей RayTracer на чистом языке SQL для ClickHouse

Сооснователь ClickHouse Алексей Миловидов совместно с ИИ Claude представил открытый проект RayTracer — систему 3D-трассировки лучей, реализованную в виде одного SQL-запроса без внешних библиотек.

Подробности

Сооснователь системы управления базами данных ClickHouse Алексей Миловидов совместно с искусственным интеллектом Claude представил открытый проект RayTracer. Это система 3D-трассировки лучей, реализованная в виде одного поискового SQL-запроса без использования стороннего кода или внешних библиотек. Как работает RayTracer на SQLПроект использует специфические возможности ClickHouse, позволяющие сохранять результаты выполнения запросов напрямую в графическом формате PNG. Вся сцена просчитывается в рамках одного запроса типа SELECT. Система способна генерировать изображения со сложным освещением, тенями, процедурным ландшафтом и зеркальными отражениями.

С технической точки зрения каждый пиксель финального кадра обрабатывается как отдельная строка в базе данных. Таблица содержит координаты по осям X и Y, а также цветовые каналы красного, зеленого и синего. Для математических расчетов в 3D-пространстве авторы применили кортежи, в которых векторы кодируются специальным типом данных. Расчет многократных отражений света от объектов реализован с помощью встроенной функции arrayFold, что позволяет распределять вычислительную нагрузку на все ядра процессора параллельно. Геометрические объекты в сцене строятся из базовых примитивов: сфер, цилиндров, торов и ориентированных параллелепипедов.

Разработчики реализовали поддержку конструктивной сплошной геометрии, что позволяет объединять фигуры или вычитать их друг из друга для создания сложных объектов вроде полых букв или планет. Ландшафт генерируется процедурно при помощи алгоритма шума Перлина на основе фрактального броуновского движения. Полноценная производительность проекта достигается при запуске в оригинальной СУБД ClickHouse. Разработчики также протестировали систему в других базах данных. В СУБД CedarDB проект запускается, но работает с ошибками и в 33 раза медленнее оригинала.

Попытка запуска в DuckDB завершилась неудачей из-за невозможности обработать изображение даже минимального разрешения. Исходный код проекта опубликован под лицензией Creative Commons Attribution-NonCommercial-ShareAlike 4. 0 и включает вспомогательные скрипты на Python и PLpgSQL для генерации запросов. Создатели отмечают, что проект был вдохновлен компактными трассировщиками Пола Хекберта и Эндрю Кенслера.

Комментарии

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

0 всего
Комментариев пока нет. Будьте первым.