Velox: игровой движок, который стал симулятором вселенной

Опубликовано
Velox: игровой движок, который стал симулятором вселенной

Velox начинался как компактное 3D-ядро: математика, ECS, физика, ассеты и современный GPU-конвейер без наследия большого универсального движка. Затем задача изменилась. Вместо ещё одного набора эффектов мы стали строить среду, где изображение получается из одной модели мира — от орбит и атмосферы до света и глаза наблюдателя.

01

Одна модель мира

Астрономическое f64-пространство, floating origin и реальные масштабы вместо отдельных сцен для космоса и поверхности.

02

Свет как физика

Спектральный path tracing, атмосфера и сменный наблюдатель вместо набора несвязанных цветовых эффектов.

03

Игровой фундамент

ECS, GPU-driven рендеринг, физика, glTF, анимация, звук, редактор и тестируемая headless-симуляция.

Движок — не источник истины

В обычном рендере планета, небо, тень и цвет часто живут в разных системах. В Velox есть одна координатная истина: небесные тела существуют в астрономическом f64-пространстве, а floating origin переводит только видимую окрестность в локальные GPU-координаты. Земля, Луна и Марс не уменьшаются ради сцены; камера может перейти от космического масштаба к поверхности без второго мира.

Положение тел задают аналитические кеплеровы орбиты. Для возмущений можно включить N-body на симплектическом интеграторе velocity Verlet. Аналитический режим остаётся стабильным при паузе, реверсе и ускоренной перемотке, а живой N-body добавляется как опциональный закон, а не заменяет всю архитектуру.

flowchart LR
  laws[Законы и состояние, f64] --> frame[Floating origin]
  frame --> visible[Видимая окрестность, f32]
  visible --> trace[Растеризация / path tracing]
  trace --> eye[Observer: глаз]
  eye --> pixel[Пиксель]
Один путь от авторитетного состояния мира до изображения конкретного наблюдателя.

Свет переносится, а не рисуется

Солнце в трассировщике — эмиссионное тело. Терминатор, затмение, planet-shine и лунный свет возникают из переноса энергии, а не из отдельных художественных переключателей. Атмосфера участвует и в лучах камеры, и в лучах освещения, поэтому свет на поверхности естественно краснеет и ослабевает у горизонта.

Цвет не считается свойством мира сам по себе. Спектральный интегратор переносит длины волн, а Observer преобразует их в ощущение конкретного глаза. Один и тот же мир можно увидеть как человек, птица с ультрафиолетовым каналом, собака-дихромат или змея с инфракрасной чувствительностью. Это не постфильтр: ненужные конкретному наблюдателю диапазоны не вычисляются.

Игровое ядро под симулятором

Под физической моделью остаётся полноценный игровой стек. Архетипная ECS хранит компоненты в плотных SoA-колонках, а планировщик автоматически запускает независимые системы параллельно. GPU выполняет frustum- и Hi-Z-отсечение, инстансинг и indirect draw. Рендер-граф связывает PBR, HDR, ACES, bloom, TAA, SSAO, частицы и path tracing.

Velox загружает glTF, поддерживает скелетную анимацию, XPBD-физику, spatial audio, hot reload, сериализацию сцен, редактор и профилирование CPU/GPU. Через MCP агент может менять работающую сцену: создавать объекты, настраивать свет и материалы, сохранять мир и читать статистику — команды применяются в безопасной точке кадра.

RustwgpuECSWebGPUglTFXPBDpath tracingf64 cosmosMCPheadless tests

Почему симуляция отделена от картинки

Для игр студийный слой gamekit держит правила отдельно от окна и рендера. Команды сериализуются, время приходит из явных часов, случайность — из seeded-потоков, а журнал полностью воспроизводит сессию. Один и тот же код можно запустить headless в тесте, локально без сети или в lockstep-кооперативе. Автоматические guards запрещают симуляции незаметно получить зависимость от GPU, файловой системы или wall clock.

Velox отвечает за пространство, физику и изображение; gamekit — за детерминированные правила игры; 0xd-ui — за интерфейс. Такое разделение позволяет менять камеру, рендер или платформенный хост, не меняя результат боя и экономику.

Как проверяется физическая честность

CPU-референс трассировщика работает в f64, GPU-зеркало — в f32/WGSL. Тесты сравнивают не байты разных вычислителей, а сошедшуюся радиантность одной сцены. Отдельные проверки доказывают терминатор, затмение, сохранение энергии, атмосферное поглощение и стабильность орбит. Golden-кадры строятся детерминированным CPU-референсом, чтобы результат не зависел от драйвера видеокарты.

Где это полезно

Такой движок нужен не каждому проекту. Стандартную мобильную механику быстрее собрать на готовой платформе. Velox оправдан, когда сама модель мира является продуктом: в космической игре, научной визуализации, обучающем симуляторе, digital twin или проекте с необычным восприятием и масштабом.

Инженерный принцип
Одна проверяемая модель мира, один путь от закона до пикселя и минимум специальных исключений.
Zero Day Labs

Нужен игровой движок или симулятор под задачу?

Разберём физическую модель, целевые платформы и критерии точности, затем соберём технический прототип или полный производственный контур.

veloxgame-enginerustsimulationgraphics