当前为 alpha 版本,API 会随版本变动,神经网络相关功能仍是路线图项而非已发布功能;从源码构建需 Visual Studio Desktop C++ 工作负载、CMake 3.25+、Vulkan SDK 和 Python 3.13;克隆必须带 --recurse-submodules,否则子模块缺失。
Infernux
ChenlizheMeMIT活跃维护用 Python 写逻辑、C++ 跑运行时的神经网络原生游戏引擎,支持 Vulkan/WebGPU,可发布到 Windows、Linux、Android 和 Web。
Building a Neural Network-Native Engine (3N). Python authoring, C++ runtime, Vulkan/WebGPU. Windows, Linux, Android and Web.
git clone --recurse-submodules https://github.com/ChenlizheMe/Infernux.git
cd Infernux
./scripts/setup/configure_development.ps1
conda activate infernux
cmake --preset windows-msvc-release
cmake --build --preset windows-msvc-release
cmake --build --preset windows-msvc-install-wheel
python packaging/launcher.pyREADME 未说明显存要求;编辑器与 Player 支持 Windows x64 和 Linux x86_64(Vulkan),Android arm64/x86_64 仅 Player(Vulkan),Web 仅 Player(WebGPU)。
用 Python 写游戏逻辑、C++ 跑运行时的开源游戏引擎,正朝神经网络原生方向演进
用 Python 写逻辑、C++ 跑运行时的神经网络原生游戏引擎,支持 Vulkan/WebGPU,可发布到 Windows、Linux、Android 和 Web。
核心能力
- Python 编写组件与编辑器面板,脚本和插件支持事务式热重载
- 用 Python 描述 RenderStack,由原生 RenderGraph 执行前向、Forward+、延迟渲染
- 集成 Jolt 物理、FBX/Blender 导入与动画状态机、Timeline
- 提供 NumPy 批量世界数据访问与 CPU/GPU JIT、Taichi 集成
- InxPackage 插件可打包组件、工具、资产与平台导出器
容易踩的坑
- v0.4.3-v8Infernux 0.4.3-v8最新正式版2026-10-28 · 2026-10-28 07:51 UTC
Infernux v0.4.3-v8 · Hotfix 8: Camera Rendering and Hub Windows
This hotfix adopts reversed-Z depth rendering, isolates camera state between render views, and fixes custom skies, directional shadows and Hub window behavior. The base engine version remains 0.4.3; wheels use build 8, with Hub 0.4.3-9.
Baseline for comparison:
v0.4.3-v7...v0.4.3-v8.Rendering and Cameras
- Use reversed-Z for scene depth, with matching projection, clear values, depth comparisons, picking and depth-dependent rendering on Vulkan and WebGPU.
- Keep camera globals, clipping planes and projection settings local to each Game, Scene and preview render view. Add an editable camera dither option.
- Preserve the existing World UI policy: UI configured to face the camera continues to face the Game camera, including when viewed from the Scene panel.
- Correct directional shadow depth so rotating the viewing camera does not change the physical size of a stationary object's shadow.
- Repair custom panoramic sky rendering and its asset dependencies, with sky background depth aligned to reversed-Z.
Editor and Runtime
- Keep keyboard input inside the focused Game panel, preventing Tab from selecting editor controls during gameplay. Retain Scene camera mouse movement across GUI updates.
- Allow completed animation states to respond to later transitions, and improve animation node graph readability.
- Publish coherent hierarchy transforms in batch operations and reject batches bound to a different world before applying changes.
- Keep hot-reload candidate importers alive through durable publication and preserve recoverable editor transaction rollback state.
- Confine package extraction to its destination and publish decoded entries atomically, including packages with search-only directory permissions on Linux.
- Compare fixed-update timing samples individually in tests, preserving both clock checks and numerical precision under pytest 9.2.
Hub and Distribution
- Prevent labels, buttons and installation progress controls from appearing as temporary standalone windows while refreshing project cards, opening dialogs or displaying installation jobs.
- Remove global always-on-top behavior from the editor startup splash while retaining its loading progress and appearance.
- Rebuild platform Player packages against the new engine release and publish new Windows and Linux wheels, Hub installers and Hub update archives.
Windows code signing
Windows signing: this release is unsigned. Signing was explicitly disabled for this publication.
- v0.4.3-v7Infernux 0.4.3-v72026-10-25 · 2026-10-25 17:25 UTC
查看更新说明
Infernux v0.4.3-v7 · Hotfix 7: Dependency Updates and Restart Control
This hotfix prepares Python dependency replacements before editor startup, keeping loaded libraries intact until the editor closes. The base engine version remains 0.4.3; wheels use build 7, with Hub 0.4.3-8.
Baseline for comparison:
v0.4.3-v6...v0.4.3-v7.Dependencies and Plugins
- Ask to restart only when an installation would replace a library already loaded by the editor, including transitive dependencies. Unloaded libraries install without a restart prompt.
- Keep the current environment and plugin registration intact when choosing Later. Restart Now uses the existing save/discard/cancel workflow; cancelling keeps the editor open and the installation pending.
- Resume the prepared installation after the old editor exits, then launch a fresh interpreter so new site hooks and package paths take effect normally.
- Restore missing project and plugin requirements during launch preparation, preserving locked versions and keeping dependency installation out of the running editor's startup checks.
- Respect direct-URL source changes and the requirements of other dependency owners when restoring a plugin's previous libraries during uninstall.
- Group the plugin package list under category headers when All is selected, retaining search, sorting within each category, selection and details.
Hub and Release Delivery
- Complete project-lock handoff before allowing the editor process to prepare dependencies or start its replacement. Stop and Retry also terminate the replacement editor and installation subprocesses.
- Preserve the short Windows Python host and the project's private Python home during restart, including projects with long or non-ASCII paths.
- Open projects using earlier installed SDKs through their own startup entry; enable dependency preparation only when the installed SDK provides it.
- Respect the automatic-update preference when opening the engine installation page; manual update checks remain available.
- Require matching published Windows and Linux Player release identities before SDK publication. Rebuild the companion desktop platform packages for this exact hotfix.
Windows code signing
Windows signing: this release is unsigned. Signing was explicitly disabled for this publication.
- v0.4.3-v6Infernux 0.4.3-v62026-10-25 · 2026-10-25 07:23 UTC
查看更新说明
Infernux v0.4.3-v6 · Hotfix 6: Portable Plugin Updates
This hotfix repairs plugin updates after cloning or moving a project to a machine with an empty package cache. It also fixes default MCP updates that could prevent an existing project from opening after an engine hotfix upgrade. The base engine version remains 0.4.3; wheels use build 6, with the matching Hub bundle at 0.4.3-7.
Baseline for comparison:
v0.4.3-v5...v0.4.3-v6.Plugins and Collaboration
- Restore an evicted original package from its pinned URL, GitHub release tag or Git commit before planning an update. Unchanged project files are no longer misclassified as local edits just because another machine lacks the original cache.
- Retain published release URLs for bundled official plugins. Existing cache-only built-in records can recover their original official release, allowing default MCP upgrades to preserve both file GUIDs and genuine project edits.
- Acquire original and incoming archives in the plugin panel's background download step. Publication uses the prepared cache and preserves the installed pin when actual edits require user attention.
- Keep local-only packages local: an unavailable original archive must be supplied before updating, including when overwrite was explicitly selected.
- Refresh the offline official catalog with the independently published Tween 0.1.2 and Text Animator 0.1.3 releases.
Windows code signing
Windows signing: this release is unsigned. Signing was explicitly disabled for this publication.
- v0.4.3-v5Infernux 0.4.3-v52026-10-24 · 2026-10-24 23:27 UTC
查看更新说明
Infernux v0.4.3-v5 · Hotfix 5: Game Input and Preview Control
This hotfix repairs game UI input in the editor and restores control of the Game preview resolution. The base engine version remains 0.4.3; wheels use build 5, with the matching Hub bundle at 0.4.3-6.
Baseline for comparison:
v0.4.3-v4...v0.4.3-v5.Input and Editor Performance
- Process game pointer transitions independently of editor panel redraws, so short clicks reach game UI without rebuilding every editor panel for each click.
- Request a GUI frame for each physical input batch even while continuous MCP semantic capture holds the frame scheduler active. Input edges no longer disappear before the next panel update.
- Keep raw editor input separate from game-owned mouse buttons, keys, wheel and text. Resolve actual window occlusion, popups and text editing before assigning new game input; preserve releases for presses already owned by the game.
- Keep retained UI geometry when an ordinary numeric field is assigned an equal integer or float value, avoiding needless invalidation in animated controls.
- Expose read-only UI input routing and existing frame timing details through the editor automation host for diagnosis without generating events or submitting UI work.
Preview, Fonts and Plugins
- Restore the Game resolution selector when a project has a fixed render output. Users choose fixed or custom preview resolutions independently of project output and camera settings.
- Add Auto resolution, which follows the Game panel's available area and framebuffer scale. Fixed resolution previews retain their selected dimensions across Play and Stop.
- Map pointer coordinates independently on both axes, keeping game UI hit testing aligned with the preview at fractional scales and different aspect ratios.
- Preserve font asset handles when copying serialized UI styling, retaining their native asset identity and Player dependency tracking.
- Keep the renderer running when a UI material references a missing shader. Skip only the affected draw, report it once until the dependency changes, and resume after a successful import.
- Drain pending asset imports while their plugin modules are still loaded, before unloading plugins and releasing native resources during shutdown.
- Retire native Player scenes before releasing the asset catalog, so component disable and destroy callbacks can still resolve their font and other asset references during shutdown.
- Preserve signal handlers owned by embedded native hosts, avoiding an Android exit exception that interrupted normal engine cleanup.
- Ignore access-time and attribute-only script notifications when the recorded modification time and size are unchanged, preventing needless plugin restarts during Windows Player builds.
- Reload changed plugin helpers even when equal-size edits share an integer-second timestamp, while retaining unchanged import caches.
- Report unmatched GUI tree pops before changing layout or ID state, preventing malformed custom panels from leaving errors in subsequent frames.
- Register the independently released Text Animator 0.1.2 and MCP 0.1.21 packages. Text Animator scales its writable character-buffer views in place, including getter-only native views.
- Rebuild the matching Windows, Linux, Android and Web Player packages for the updated native input interfaces.
Hub
- Preserve complete editor startup errors and include the process exit code. Wait for the stderr reader to finish without blocking the Hub, so the final exception is not lost.
- Give the Show details button the standard visible button border.
Windows code signing
Windows signing: this release is unsigned. Signing was explicitly disabled for this publication.
- v0.4.3-v4Infernux 0.4.3-v42026-10-23 · 2026-10-23 22:57 UTC
查看更新说明
Infernux v0.4.3-v4 · Hotfix 4: Character Geometry and Color Composition
This hotfix completes the native text interfaces used by the independent animation plugins. The base engine version remains 0.4.3; wheels use build 4, with the matching Hub bundle at 0.4.3-5.
Baseline for comparison:
v0.4.3-v3...v0.4.3-v4.Text and Rendering
- Add per-grapheme three-dimensional affine transforms and four-corner depth offsets. Screen text projects the transformed geometry; world text preserves depth through its retained draw packets, clipping and GPU vertex attributes.
- Compose the Manual, Effects and Appearance layers in order. Corner edits remain usable at zero scale and when another layer rotates or scales the character.
- Separate absolute character RGB and alpha overrides from ordinary layer tint. Alpha-only animation preserves rich-text colors, including multiple colored glyphs belonging to one grapheme. Reset restores the authored colors.
- Apply parent and element opacity independently from character alpha, and retain material tint in both runtime rendering and UI Editor previews. Characters can become visible after an authored zero-alpha base color.
- Treat text inside rich-text
<noparse>spans as literal content while retaining original source offsets and the surrounding text styles. - Rebuild the matching Windows, Linux, Android and Web Player packages for these native interfaces.
Math and Reflection
- Return a valid identity rotation for zero forward vectors and a normalized forward rotation for collinear or zero up vectors in
Quaternion.look_rotation. - Make quaternion angle and rotation-towards calculations agree for opposite-sign representations of the same rotation; correct the quaternion constructor default in the Python type stub.
- Read string-valued Enum members through their declared values in semantic field descriptions, so plugin controls do not fail by coercing them to integers.
- Keep inherited component type identities separate from asset GUIDs in the Player dependency catalog, so valid plugin inheritance does not block builds while missing script dependencies remain errors.
Tween and Text Animator remain independently maintained official packages. Their own API and authoring changes are released through the plugin catalog.
Windows code signing
Windows signing: this release is unsigned. Signing was explicitly disabled for this publication.
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
0.4.3 hotfix 8 brings reversed-Z rendering, isolated camera settings, repaired skies and shadows, and fixes for Hub window flashes and startup focus. See the changelog.
What is Infernux?
Infernux is a game engine where Python is where you work and C++ is where it runs. You write gameplay, editor tools, render pipelines and numerical code in Python; a C++ runtime, a Vulkan renderer and Jolt physics do the heavy lifting. The same project ships to Windows, Linux, Android and the browser.
It is also built toward a specific goal: 3N, a Neural Network-Native engine. In most engines, AI is a plugin bolted on after the game is finished. In a 3N engine the world is data a model can read, the simulation is a place where it can act, and the shipped game is somewhere it can run.
import infernux as inx
class Spin(inx.InxComponent):
speed: float = inx.serialized_field(default=90.0, range=(0.0, 360.0))
def update(self, delta_time: float) -> None:
self.transform.rotate(inx.Vector3(0.0, self.speed * delta_time, 0.0))
An ordinary Python class. speed appears in the Inspector and can be tuned while the game runs.
[!WARNING] Infernux is alpha software under active development. APIs still change between releases, and the neural-network features below are roadmap items rather than shipped features. It is ready for experiments, tools and small games, not yet for a production schedule.
Highlights
- Python first. Components with Inspector fields, coroutines and prefabs. Project scripts and plugins hot-reload transactionally, including the behaviour of instances that already exist.
- A renderer you can author. Describe a RenderStack in Python and the native RenderGraph runs it: Forward, Forward+ and Deferred paths, PBR, shadows, post-processing, GPU particle graphs, skinned animation, screen and world-space UI.
- A complete game loop. Multi-scene editing, FBX and Blender import with live source sync, Jolt rigid bodies and scene queries, audio, animation state machines and Timeline.
- Compute in the game. Batch NumPy access to world data, CPU/GPU JIT and Taichi integration for numerical gameplay. This is the data path models will use.
- An editor you can extend. Dockable panels and menus written in Python. InxPackage plugins carry components, tools, assets and platform exporters. An optional MCP plugin lets agents drive the editor through the same command and undo paths you use.
- Built to be inspected. Assets keep a GUID identity from import to cooked Player. Players load a packed asset index, never your project folder.
Platforms
| Target | Editor | Player | Graphics |
|---|---|---|---|
| Windows x64 | ✅ | ✅ | Vulkan |
| Linux x86_64 | ✅ | ✅ | Vulkan |
| Android arm64 / x86_64 | — | APK / AAB | Vulkan |
| Web | — | HTML + WASM | WebGPU |
Requirements and known limits per platform are in SUPPORT.md.
Get started
Use the engine. Install InfernuxHub, pick an engine version and create a project. The Hub manages Python environments and Android tools for you; no native compiler is needed. Then follow the five-step start to a component spinning a cube, and continue with the courses.
Build from source. Windows needs a Visual Studio installation with the Desktop C++ workload, CMake 3.25+, the Vulkan SDK and Python 3.13. The Windows preset lets CMake select the newest compatible Visual Studio generator installed on the machine.
git clone --recurse-submodules https://github.com/ChenlizheMe/Infernux.git
cd Infernux
./scripts/setup/configure_development.ps1
conda activate infernux
cmake --preset windows-msvc-release
cmake --build --preset windows-msvc-release
cmake --build --preset windows-msvc-install-wheel
python packaging/launcher.py
If configuration cannot create the selected generator, install a CMake version
that lists a compatible Visual Studio generator in cmake --help, or set
CMAKE_GENERATOR to one of the listed generators and configure again.
On Linux, run scripts/setup/install_linux_dependencies.sh and bash scripts/setup/configure_development.sh, activate infernux, then use the linux-clang-release and linux-clang-install-wheel presets. CONTRIBUTING.md covers the full workflow.
The road to 3N
| Stage | Status | What it unlocks |
|---|---|---|
| Python authoring, batch world APIs, CPU/GPU compute | ✅ Available | Models and gameplay share one data path into the world |
| Deterministic stepping, snapshots and replay | 🔜 Planned | Reproducible runs for debugging and learning |
| Batched worlds and a tensor data plane | 🔜 Planned | Many environments stepping side by side, zero-glue data exchange |
| Portable inference in the Player | 🔜 Planned | Trained models ship inside the game on every target |
Ten interactive maps chart every system on the roadmap. Release notes live in UpdateLog.md.
Community
- 💬 Questions, demos and ideas: community forum
- 🐛 Reproducible bugs: GitHub issues
- 🧩 Plugins: authoring guide and template
- 🛠️ Contributing: start with CONTRIBUTING.md
License
Infernux is released under the MIT license: free to use, no royalties. Third-party notices are indexed in licenses. Windows builds are signed free of charge by SignPath.io with a certificate from the SignPath Foundation (policy).
@software{chen2026infernux,
author = {Chen, Lizhe},
title = {Infernux},
year = {2026},
version = {0.4.3},
url = {https://github.com/ChenlizheMe/Infernux}
}