Repository navigation
Mixar 4.1.1
Mixar 4.1.1
This release lands parallel scene tabs, Add-on Project Mode verification, the Refer a Friend
flow, a Mixar Forest theme pass, and a large batch of moodboard/agent-bubble/notifications
polish and fixes. 519 files changed (~34k insertions / ~10k deletions) since v4.0.0.
Scenes / Parallel Scene Tabs
The headline feature of this release: a Scene can now host its own chat session
(Scene.mixie_session_id is the routing key), and several scene tabs can run their own agent
concurrently inside one app instance.
- New native View3D Scenes drawer, sliding in from the left edge (mirrors the Moodboard
drawer):view3d_scenes_drawer{,_draw,_ops,_ops_cards,_qa,_resize,_selection,_state,_thumbs}.ccED_scenes_drawer.hh, built on a repurposedRGN_TYPE_NAV_BARregion, registered in
space_view3d.cc,editors/screen/area.cc(overlap list, azone, toolbar lane for the grip)
andarea_query.cc(event routing). New RNA:rna_screen_mixar_scenes_drawer.hh.
Card thumbnails are viewport snapshots rendered through the existing offscreen-render path
(never a real render), with drag-reorder and per-card status (idle / working / waiting /
done, last agent line, worker progress).
- Python side (
space_mixie_chat): scene tab operators (new / switch / close),scene_tab_edit,
scene_tab_send(duplicate-not-link cross-tab sends),scene_naming(auto-naming a tab from
its first prompt, dropping leading/trailing filler words),scene_identity, per-tab script
lanes (script_lanes.py), a guarded-undo window modal (undo_guard.py) that shields a
mid-turn tab from a global Ctrl-Z, and a client-side[SCENES]JSONL ledger
(common/scenes_log.py) for per-tab diagnostics. agent_bubble: a Scene tabs menu (ui/menus/scene_tabs_menu.py) and header button; the
Outliner's Scenes view hidesagentlane:worker scenes (tree_display_scenes.cc).- Per-tab script routing, cards, generation delivery and undo/redo suppression while any tab's
agent is running are keyed by session, replacing several previously-global states (active
turn flag, foreground-task set, lane sweep, generation poll registry). - Known v1 limits carried into this release: undo is one document-wide Blender stack (a Ctrl-Z
in any tab can revert another tab's edit — the UI now warns while an agent runs elsewhere);
turn-checkpoint restore is refused while another tab has a live run; render is a single
per-instance slot so a second tab's render waits its turn.
Agent / Chat
- Add-on Project Mode hardening: verified commits (
addon_project/verify.py) reload and
run an add-on's own test package before a commit is considered good, reverting on failure;
usage.pyreports every place a live add-on currently shows up in the UI;addon_tests.py
adds an in-Blenderunittestrunner exposed through the project RPC surface.
checks.py/service.py/transactions.py/workspace.pywere extended accordingly. - Export lane:
core/agent_export.py(runner),core/export_presets.py(use_casepresets),
core/export_clips.py(animation/clip selection),core/export_package.py(delivery
packages: mesh + textures + manifest + tiers + source.blend+ README),
core/export_verify.py+core/export_reimport.py(post-write verification — re-import
into a temporary collection of the active scene, never a temp scene), and
core/export_obj_textures.py(OBJ texture staging by basename/kind only, never a path).
Fixes a scene/package corruption case on a failed or repeated export. main_thread_executor.py/main_thread_routing.pyreworked for per-session routing and
round-robin script dispatch across tabs;executor_scene_state.py,scene_tab_snapshot.py
andlane_scene_sweep.pyare new supporting modules.- Sketch stroke/mark caps raised substantially (carrying 128 strokes per sketch instead of the
previous lower ceiling) so longer freehand drawings survive a turn intact. - Notifications: a new task-completion sound catalog and mute toggle
(core/sound_catalog.py,core/completion_sound.py,core/sound_feedback.py), an animated
toggle beside the profile menu, and a bundled fallback chime asset. clipboard_image.py(new) lets any active island tab accept a pasted image, not only Agent.- WebSocket handshake now reports the running build's own version rather than a placeholder.
Moodboard
- Multi-view / turnaround image inputs on the Generate to 3D node (
turnaround_payload.py,
model_3d_views.py). core/first_use.py+ui/properties/first_use_props.py: refined first-run onboarding and
canvas interaction guidance.core/magic_select_flow.pyandui/operators/magic_select_tool_ops.pyreplace most of the
oldmagic_select_ops.pylogic; retry/expiry handling no longer gets stuck when the retry
upload itself fails, and the image item is re-fetched after a round trip.core/mask_tool_feedback.py: mask tools now wait for one pass and surface what happened
instead of running silently.- Reference-docking animation and Cinema gradient/typography polish alongside floating
Moodboard spacing adjustments.
Auto Rig / Hunyuan
- Imported rig armatures now draw In Front; Auto Rig imports keep their Octahedral bone shapes
and strip vendor bone-shape helpers; Auto Rig results import as mesh + B-Bone armature only.
The Moodboard's Auto Rig node now shares the same rig import options as the Hunyuan panel.
Notifications / Referrals / Theming
modules/referrals(new): the Refer a Friend dialog (ui/operators/referral_dialog_ui.py,
referral_ops.py), invite-link and email-to-friends flow (core/flow.py,core/invites.py),
and a low-credit toast (core/low_credit.py) that opens the dialog when the balance drops to
or below 200 credits.common/notifications/credits_banner.py+ui/operators/credits_banner_ops.py: the
out-of-credits toast is replaced by a whole-window banner, drawn through new C++ components
(interface/mixar/credits_banner{,_draw,_layout}.cc/.hh).- Mixar Forest theme polish: unified editable UI colors, new theme presets
(bootstrap/theme_presets.py), a large rewrite ofMixar_theme.xmland
userdef_default_theme.c, and correspondingDNA_theme_types.h/rna_userdef.ccadditions.
Agent cards now render session names as prose instead of raw identifiers, and toasts draw in
the same translucent glass surface as the rest of the chrome
(interface_mixar_card_icons.cc,interface_mixar_theme.cc). - Zen sky lighting:
workflow/core/zen_sky_lighting.py,ui/operators/zen_hdri.py, and header
controls (zen_scene_controls.py) for adjusting HDRI sky lighting from the scene toolbar. - Library: folder-scoped image/video listing, multi-select and whole-library removal
(test_library_folder_media.py,agent_bubble/core/library_media.py).
Build / CI
scripts/unix/build.shand the newscripts/unix/dev_codesign.shnow also re-sign the
built executable frominstall.sh, so the macOS dev codesign identity survives
make install, not onlymake build.- New
ClashGroteskfont added tosrc/release/datafiles/fonts/for in-app UI use.
⚠️ Notes
- Default theme palette changed. Mixar Forest's default colors moved to a new palette
(viewport#0F0F0F, Moodboard#1E1E1E, selected green#2F592F, deep green#264515,
focus#7F9B78, etc.) with more slots exposed under Preferences → Themes → Mixar. Existing
custom theme preferences are preserved; only unset (all-zero) fields pick up the new
compiled defaults. - View3D region layout changed. The Scenes drawer reuses the
RGN_TYPE_NAV_BARregion
type in the 3D Viewport, which was previously unused there. Anything that enumerates View3D
regions should account for this new overlapping region. - Agent island tab set changed. The island's tab strip now reads Agent, 3D, Image, Video,
Splats, Add-on, Library, Queue — "Gaussian Splat" is renamed to "Splats" and a new "Add-on"
tab surfaces Add-on Project Mode. - Sketch capacity increased. The client's per-turn mark and stroke caps were raised
substantially (strokes per sketch: 48 → 128), so scripts or tooling that assumed the old
ceiling should be re-checked. - Several legacy top-level documents were removed as part of a documentation cleanup pass
(old footer build-fix notes, a streaming-fix test plan, and the V2 agent migration/test
docs); their relevant contracts now live in the module docs underdocs/modules/.