Infernux 0.1.5 · 熔炉
Infernux v0.1.5 · 熔炉
This release lands the 3D animation foundation (skeletal animation, skinned mesh rendering, embedded FBX takes), reworks the Project / Inspector workflows and asset previews, adopts the official Chinese name 熔炉 (Róng Lú), and ships a fully rebuilt NASA-Punk styled documentation site. Baseline for comparison: v0.1.4 (08f473957c213e922e9db009138d3b8916a5bd13).
3D animation and skinning
AnimClip3Dassets: new core asset type with importer, schema versioning, and editor inspector. Embedded FBX takes are surfaced under each model as virtual.animclip3dsub-assets and can be dragged directly into the FSM canvas.- Skeletal animation runtime:
SkeletalAnimatorPython component plays backAnimClip3Ddata through the existingSpiritAnimator/AnimFSMgraphs; states acceptANIMCLIP3Dpayloads alongside the existing 2D path. - Skinned mesh rendering: new
SkinnedMeshRenderercomponent,InxSkinnedMeshresource, GPU skinning path, and a dedicatedSkinnedModelCache. The render pipeline gets matching descriptor / pipeline-manager updates for skinned draws. - Embedded takes UX: the Project panel now appends per-model sub-assets (materials + animation takes) with proper
animclip3dicons and a real expand/collapse glyph next to the model thumbnail. Take names that come back asArmature | Actionare normalised to justActionin the row label. - FSM + node graph: the generic node-graph canvas now accepts any drag-drop payload type, fixes drop targeting for
ANIMCLIP3D, and routes embedded takes throughGUID::subanimvirtual paths. The FSM editor adopts the matching upgrades.
Editor and asset workflows
- Project panel: redesigned model expand strip (pixel-aligned 32×32 PNG icon, hit-tested separately from the thumbnail), simplified label rendering, animation-clip rows that no longer collide with the model thumbnail icon, and a faster cached label path. Sub-asset rows correctly invoke the asset details renderer (formerly
asset_inspector→asset_details_renderer). - Inspector panel: centred component icons with snapped pixel coordinates (no more bilinear blur on small icons), low-resolution preview path for 16 px component badges, and missing-texture cleanup in the material preview path.
- Resource previews: new
GPUMeshPreview(Vulkan-backed), updatedGPUMaterialPreview, async transfer context (AsyncTransferContext), descriptor bind tracing, and a unifiedquery_or_schedule_texture_previewflow used by Project + Inspector + asset details. - Bootstrap and engine:
_bootstrap_wiringsplit,texture_task_bridge, preferences store (preferences_store,ide_preference), and a refreshed asset-details renderer module replacing the old monolithic asset inspector. - Editor icons: a complete redraw of every component icon under
python/Infernux/resources/icons/components/to a transparent NASA-Punk style 64×64 PNG (Audio / Collider / SkeletalAnimator / SkinnedMeshRenderer / SpiritAnimator / SpriteRenderer / UI Canvas / UI Button / UI Image / UI Text), plus 64×64 NASA-Punk file-type icons (animclip2d,animclip3d,animfsm,shader_hlsl, etc.) and chevron icons (model_expand_open,model_expand_closed).
Renderer and core
- Rendering core:
InxRenderer,InxVkCoreModular,VkCoreGlobals,VkPipelineManager,MaterialDescriptor,MaterialPipelineManager,OutlineRenderer,RenderPassOutput,ScriptableRenderContext,VkCoreDraw, andVkCoreMaterialall received targeted updates for skinning, descriptor reuse, and async transfer. - Vulkan device layer:
VkDeviceContextandVkResourceManagerextended with new sampler / image helpers, plus a brand-newVkHandletranslation layer. - Asset / resource layer: new
InxSkinnedMeshandSkinnedModelCache,MeshLoaderextended for skinning data,ConcreteImportersupdated to surface model material slots and animation take metadata.
Python layer
- Components:
skeletal_animator.py,builtin/skinned_mesh_renderer.py, the renameanimator2d.py→spirit_animator.py, and broaderref_wrappers/serialized_field/_component_nativerefinements. - Core:
core/animation_clip3d.py,core/anim_state_machine.py, expandedcore/assets.py,core/asset_ref.py,core/asset_types.py,core/material.py. - Engine / UI: preferences store, IDE preferences, async texture bridge, refreshed
inspector_material,inspector_ui_components,node_graph_view,animfsm_editor_panel,animclip2d_editor_panel,project_utils,window_manager, plus an undo system split (_animfsm_commands,_helpers,_property_commands,_renderstack,_snapshots,_trackers,_component_commands).
Documentation, branding, and site
- Engine name: the project now formally adopts the Chinese name 熔炉. Repository, package, and CLI strings remain
Infernux.README.mdandREADME-zh.mdcarry the bilingual title (Infernux · 熔炉/熔炉 · Infernux); the Python package metadata (pyproject.toml) reflects the same. - Docs site rebuild:
docs/index.html,docs/roadmap.html,docs/wiki.html,docs/js/i18n.js,docs/css/style.css,docs/css/mission.css,docs/css/roadmap.css,docs/css/wiki.cssare completely rewritten in a NASA-Punk / Starfield-inspired style:- persistent top mission ribbon with the bilingual engine name (
INFERNUX · 熔炉), driven entirely by i18n; - keeps the existing
data-i18n/data-href-en/data-href-zhmechanism, so the API docs (wiki/site/en|zh/api/index.html) and the wiki manifest (assets/wiki-docs.json) continue to render throughjs/wiki.js; - primary brand colour stays at
#eb5757; light theme uses an off-white NASA-style cream surface; - the runtime capture section now embeds the existing
docs/assets/demo.png(height-shaded voxel scene at 173 FPS).
- persistent top mission ribbon with the bilingual engine name (
- Wiki API index:
Version 0.1.5/版本 0.1.5rolled throughdocs/wiki/generate_api_docs.py,docs/wiki/docs/{en,zh}/api/index.md, and the corresponding generated HTML. - Python wheel:
infernux-0.1.5-cp312-cp312-win_amd64.whl(CPython 3.12, Windows amd64) and matchinginfernux-0.1.5.tar.gzare produced by the normal CMakereleasepreset (package_and_install_python); the Hub portable bundle (dist/Infernux Hub/) anddist/installer/InfernuxHubInstaller.execontinue to ship as in prior releases.
Upgrade notes
- Python 3.12 remains the supported baseline for the packaged wheel (no Python version change in this release).
- Animation formats (
animclip2d/animclip3d/animfsm) are still evolving; treat the 3D path as preview the same way 2D was treated in 0.1.4. - Module rename:
animator2d→spirit_animatorfor the runtime Python module. TheAnimator3Dalias is fully gone in 0.1.5; switch toSkeletalAnimator/SpiritAnimator. - Inspector renderer rename:
engine/ui/asset_inspector.py→engine/ui/asset_details_renderer.py. External call sites importingasset_inspectorshould switch to the new module name. - Resource paths: the bundled icon set under
python/Infernux/resources/icons/has been refreshed (file-type icons, component icons). Custom projects that overrode any of these icons should re-validate their copies against the new 64×64 transparent-background versions. - Docs site:
docs/css/mission.css,docs/css/roadmap.css, anddocs/css/wiki.csshave new class hooks. Forks that customised the site should diff against this release before redeploying.
Thank you
Thanks to everyone who tested the 3D animation path, surfaced editor icon / preview issues, and gave feedback on the docs site reskin — the 0.1.5 release is shaped directly by that loop.