EvoX Genesis
EvoX Genesis turns a high-level software objective into a persistent recursive software world: finite-lived agents recursively develop software, while only accepted consequences persist across develop
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A framework for connecting 3D geometry, physical fields and moving agents in a shared, time-dependent world. Bring together scene assets and simulation outputs, preserve their spatial and temporal meaning, and explore them through interactive visualization.
Current applications span urban environments, wind farms and rotor experiments. The same integration protocol is designed to support other settings and scales, including indoor scenes. The fourth dimension is time.
Published scenes currently use their existing specialized viewers. The unified viewer supports protocol-based layers and local scene views; migration progress and validation scope are tracked in the implementation status.
A source checkout includes small protocol examples. Large scene datasets and simulation environments are managed separately.
git clone https://github.com/acse-yl222/physics-grounded-4d-world-model-framework.git
cd physics-grounded-4d-world-model-framework
python3 -m venv cache/framework/venv
source cache/framework/venv/bin/activate
python -m pip install -e .
Inspect the registered scenes and start the viewer:
p4d scenes
p4d paths south_ken
p4d serve --port 8769
Open localhost:8769. When local scene runs are absent, the homepage links open the published scenes. You can also open the local synthetic example directly.
python -m pip install -e . supports source development. A wheel includes the
canonical schemas, small examples and static viewers. p4d validate /path/to/manifest.json
needs no checkout or scene workspace. Other commands accept p4d --root /path/to/workspace ...;
P4D_ROOT and the legacy UWM_ROOT are also supported, in that order.
An explicit workspace must be an existing directory and can initially be empty.
p4d --root /path/to/empty-directory serve can display the bundled synthetic viewer.
storage.local.json in that workspace controls data_root and cache_root.
Code and bundled resources always come from the installed package, independently
of these paths. External historical inputs are configured in sources.local.json
or UWM_SOURCE_<NAME>; defaults use the configured scene input directory.
Install optional environments with .[birds], .[traffic], .[geometry] or
.[flow]. PyTorch/CUDA, Blender and external SCALED/Wave PDE installations have
additional platform requirements. These extras do not supply weights or city data.
Package entrypoints include python -m traffic.train and
python -m urban_geometry.birds.scripts.run_sim. Historical research scripts outside
these maintained entrypoints retain their documented environments.
Inspect a scene pipeline first:
p4d run white_city --dry-run
With the scene data and solver environment available, run and retain its outputs:
p4d run --python /path/to/solver/environment/bin/python white_city --run-id my_trial --retain
Intermediate results go to cache/<scene>/pipeline/<run_id>/. Retention validates completed outputs, copies them into project/<scene>/runs/ and refuses to overwrite an existing run. The city pipeline can export a protocol bundle and register it as a scene view.
You can also validate and retain an existing export:
p4d validate /path/to/trial/manifest.json
p4d retain /path/to/completed/trial
Open the local unified viewer to select available protocol scenes and views. It supports GLB geometry, NPY fields and frame sequences, JSON metadata, and sparse recorded trajectories.
Use p4d serve to load scene data: its HTTP Range support allows NPY data to be read on demand. Layers retain their declared coordinates, units, masks and time samples; unavailable time ranges appear as missing data. The retained South Kensington traffic replay, for example, covers seconds 1–300.
The resource catalogue provides selected published geometry and simulation assets. Its companion repository organizes them by scene, type and version:
project/<scene>/<resource-type>/<version>/
Each registered resource includes file sizes, SHA-256 hashes and provenance. Some city fields and auxiliary assets remain on the framework's pages branch for compatibility. See resource management for the publication layout and compatibility paths.
The repository separates reusable implementation, retained scene data and disposable workspaces:
src/
urban_geometry/ # Geometry processing and 3D agents
urban_flow/ # Physical models, solvers and flow experiments
traffic/ # Traffic training, prediction and replay
uav_routing/ # UAV ground stations, Wave PDE routes and exports
visualization/ # Viewers, widgets and data adapters
common/ # Storage, contracts, pipelines and HTTP serving
project/
south_ken/ # Scene inputs, configuration and retained results
white_city/
windfarm/
actuator_lab/
... # Further scenes such as delhi_karol_bagh and thapar_university
cache/ # Reproducible intermediates and local environments
schemas/ # Run, scene and view contracts
examples/ # Small protocol examples
For new scenes, solvers or widgets, follow the integration protocol. Widgets consume declared data layers; solvers stay in their domain modules. The architecture overview maps the packages to the run, experiment and modelling workflows. AGENTS.md and the simulation integration skill provide the corresponding agent workflow.
Core checks:
p4d validate examples/contract-v1/manifest.json
python -m unittest discover -s tests -v
node --test tests/test_*.mjs
make test-e2e # Required for every change; see docs/framework/e2e-ci.md
Keep separate backups of unpublished scene data and external originals. The local .history/ directory contains migration recovery material and must not be treated as disposable cache. The main branch holds source and small examples; pages hosts the public site and previously published assets.
Use Python 3.11+ and the Node 24 version in .nvmrc. Install the pinned development tools once:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e . -r tools/requirements-dev.txt
PUPPETEER_SKIP_DOWNLOAD=true npm ci
The same entry points run locally, in the commit hook and in CI:
make format # Apply formatting to all owned files
make format-check # Check without changing files
make lint # Ruff lint of the same Python files, without fixing them
make test # Both protocol examples, Python tests and all Node unit tests
pre-commit install # Optional: format and lint staged files, check commit messages
pre-commit run --all-files
Ruff formats Python and Notebook code cells; Prettier handles JavaScript, HTML, CSS, JSON, YAML and Markdown; Taplo handles TOML; shfmt handles shell scripts. Formatting uses a 100-column width for Python, Prettier and TOML, four-space Python/TOML indentation and two-space web/shell indentation. Markdown prose is not rewrapped. Notebook output and metadata are retained.
Ruff also lints Python with its default rule set, which includes import sorting. make lint, the commit hook and CI report findings without changing files; apply fixes deliberately with ruff check --fix <files> and review them. Frozen upstream sources, research handoffs and member code are excluded from linting, and the few project-wide exceptions are explained in the [tool.ruff.lint] section of pyproject.toml.
tools/format.py selects tracked files and new, non-ignored files, then applies the shared .prettierignore boundary and Git exclusions. Maintained legacy code, scene configuration and view files are included. Third-party vendors, .history/, cache/, scene inputs/geometry/runs, synthetic data payloads, published snapshots and recorded provenance are excluded even when tracked. The legacy asset inventory is a generated record and stays unchanged. Unsupported binary formats are never passed to a formatter. Run the unified commands rather than formatting every JSON file recursively. After changing formatting configuration or exclusions, run make format and make format-check over the whole repository.
The short end-to-end check needs Chrome and the [geometry] extra but no city assets, GPU or solver environment:
python -m pip install -e '.[geometry]'
npx puppeteer browsers install chrome
make test-e2e
It runs a generated GLB through the real CLI geometry and visualize stages, retention and view registration, then checks the retained GLB, NPY and the five example layers in the browser through the framework server. Logs, reports and screenshots stay under cache/framework/e2e/; e2e-ci.md lists what must pass. make test-browser runs only the synthetic five-layer browser check. CHROME_PATH can select an existing compatible Chrome installation. Real-city browser tests and GPU/Blender simulations require their own environments and data. The base Python suite reports tests that need torch or the flow stack as skipped; the CPU domain job runs the whole suite again with the CPU solver dependencies, so those tests run there.
Repository CI runs six jobs on every pull request (including stacked PRs), pushes to main and manual dispatch: format and Node unit tests, Python 3.11/3.12/3.14 tests with isolated wheel validation, the full suite with CPU domain dependencies, and E2E smoke. Every change must pass E2E smoke; it has no path filter or conditional skip. Tool versions are pinned, npm uses its lockfile, Actions use full commit SHAs, and the workflow has read-only repository permissions. E2E artifacts contain only the synthetic fixture's logs, report and screenshots. A repository administrator can make the job checks required for merging through branch protection or a ruleset. The separate PR title and commits check runs tools/check_commit_message.py on the title and every commit of a pull request against the format in AGENTS.md, and reruns when a title is edited; pre-commit install applies the same check as a local commit-msg hook.
The pure formatting commit is listed in .git-blame-ignore-revs. To hide that commit when investigating code history:
git blame --ignore-revs-file .git-blame-ignore-revs path/to/file.py
A Levistone project. Developed by the authors listed above, affiliated with Imperial College London. Module contributions are recorded in Contribution.md.
The framework began as UrbanWorldModel and now targets geometry- and physics-grounded environments across scales. p4d is the primary command; uwm and UWM_ROOT remain available for compatibility. The original project overview preserves the earlier context.
South Kensington now supports ground-to-ground Wave PDE routes with 30 m vertical ascent/descent and independent random UAV animation in the integrated city viewer. See routing code and reproduction.