Skip to content

Add component-based simulation editor and interactive session CLI - #314

Closed
concordia-claw wants to merge 27 commits into
google-deepmind:mainfrom
concordia-claw:feat/editor-project-roundtrip-001
Closed

concordia-claw wants to merge 27 commits into
google-deepmind:mainfrom
concordia-claw:feat/editor-project-roundtrip-001

Conversation

@concordia-claw

@concordia-claw concordia-claw commented Sep 8, 2026 •

Copy link
Copy Markdown
Contributor

Design and inspect Concordia simulations through a graphical editor or a persistent concordia-session prompt. Entities are built from standard prefabs and components; both clients share authoring actions and validated service operations. The GUI/CLI guide teaches the entity-component pattern, CLI (concordia-session) usage, and editor usage by describing the same concrete exercise in both interfaces.

What users can do

  • Instantiate installed standard/contrib prefabs or named presets, override parameters, add compatible components, reorder entities/components, inspect references and duplicate an edited definition.
  • Validate and explicitly save a local draft; undo/redo, export/open project JSON, and identify invalid fields. Each browser or CLI owns its draft and selection. Server revisions protect against overwriting another client's save.
  • Run a saved design for a requested number of engine steps bounded by its saved maximum; pause, step, resume and reset. The actual engine is displayed. Component-advertised dynamic fields support initial overrides or paused runtime edits, with validation owned by the component setter.
  • Read command results, errors and action narratives in one Simulation log, or use the standard log-analysis commands. The terminal shares scrollback with its prompt. Panels resize with pointer/touch or keyboard controls.
  • Switch the central panel between the standard visualization and registered HTML/URL viewers or a locally selected HTML file. The sandboxed viewer retains the surrounding draft and controls; refresh is explicit.

Review map and contracts

  • prefab_catalog.discover discovers concrete entity prefab classes under installed standard/contrib namespaces without building them. Module/class-qualified keys remain stable; optional dependency failures are visible. Prefab declares extra-component capability and validates actual dependency keys and insertion indices. Editor-authored additions reject key collisions; direct Python configurations retain supported replacement/shared-component bindings. Unsupported additions raise NotImplementedError before construction. Application-owned non-scalar defaults remain Python configuration; discovery does not guarantee every prefab default fits every engine.
  • project_config.Template/Registry: trusted Config factories, prefab creation keys, registered component recipes, field/reference validation and Config conversion. JSON selects registered objects, not Python imports. Prefab creation reads standard Prefab.params; named presets identify starting settings and Duplicate copies the edited definition. The input contract explains rejected-file recovery.
  • project_view, session_commands, session_draft: shared command parsing and draft actions. Node runs the same helpers for external CLI authoring. Browser file pickers and layout stay browser-local; CLI files require explicit paths.
  • OperationService, ProjectEditor, SimulationServer: argument/audience validation, serialized dispatch, session/revision/retry checks, saved/runtime snapshots and event transport. Host-approved audiences and origin checks constrain attached clients; the developer service belongs on a local or access-controlled connection.
  • StepController and generic.Simulation: track active/waiting workers and acknowledge a pause only after in-flight work finishes. Engine implementations use the standard callbacks. Runtime edits require this acknowledged boundary. Engine implementations are outside this PR's editing scope.
  • SceneTracker: optional component-owned literal configuration, JSON roundtrip, atomic schedule validation and memory-cursor preservation. Scheduling is edited through generic component fields. Callable configuration stays host-owned. HumanActComponent supplies a standard acting component for host-connected human input.

Reviewer regression entry points in this library checkout:

python -m pytest -q -n 0 concordia/utils/operation_service_test.py concordia/utils/session_commands_test.py concordia/utils/project_prefab_catalog_test.py
python -m pytest -q -n 0 concordia/utils/project_dynamic_browser_test.py concordia/components/game_master/scene_tracker_dynamic_test.py concordia/utils/project_layout_browser_test.py
python -m pytest -q -n 0 concordia/utils/project_engine_integration_test.py

Focused catalog/component/GUI/CLI verification: 194 affected tests passed, with 38 catalog tests rerun after final discovery assertions. These include new installed module discovery without central registration, standard/contrib construction with authored components, unsupported-addition errors, reference conversion, saved-state preservation on rejected Save, intercepted Chromium, and the copied discovery tutorial through the CLI and OperationService. Scoped pyrefly, pylint, isort and formatting checks pass. The seven Social Deception/State Formation regressions also pass with their mock/no-model engine runs. No external provider or listener was launched for this verification.

python -m pytest -q -n 0 concordia/utils/prefab_catalog_test.py concordia/utils/project_components_test.py concordia/utils/project_prefab_catalog_test.py concordia/utils/project_structure_test.py concordia/utils/project_config_test.py concordia/utils/project_view_test.py concordia/utils/session_commands_test.py

Comment thread examples/project_editor/README.md Outdated
Comment thread examples/project_editor/README.md Outdated
@concordia-claw
concordia-claw force-pushed the feat/editor-project-roundtrip-001 branch from 3e7edf2 to 595d392 Compare September 13, 2026 22:17
@concordia-claw concordia-claw changed the title Add initial-project edit, save, reopen and explicit run to the visual editor Visual editor and game-development CLI: authoring, runtime controls and shared operations Sep 13, 2026
This was referenced Sep 13, 2026
Comment thread concordia/utils/operation_service.py Outdated
Comment thread examples/project_editor/template.py Outdated
Comment thread concordia/utils/project_operations.py Outdated
Comment thread concordia/utils/project_config.py Outdated
Comment thread concordia/utils/project_config.py Outdated
Comment thread concordia/utils/project_scenes.py Outdated
@concordia-claw concordia-claw changed the title Visual editor and game-development CLI: authoring, runtime controls and shared operations Add component-based simulation editor and interactive session CLI Oct 3, 2026
@concordia-claw
concordia-claw force-pushed the feat/editor-project-roundtrip-001 branch from 2c22127 to 11366b5 Compare October 3, 2026 20:39
Comment thread concordia/utils/project_components.py Outdated
Comment thread concordia/utils/project_components.py Outdated
copybara-service Bot pushed a commit that referenced this pull request Oct 5, 2026
--
74d7577 by concordia-claw <concordia-claw@users.noreply.github.com>:

Add transport-neutral human acting with standard ordered context

--
9ecb4e3 by concordia-claw <concordia-claw@users.noreply.github.com>:

Allow runtime acting policies in basic and minimal entity prefabs

--
595d392 by concordia-claw <concordia-claw@users.noreply.github.com>:

Consolidate editor category for focused review

--
aae8251 by concordia-claw <concordia-claw@users.noreply.github.com>:

Compare minimal and basic roommates while preserving saved projects

--
5dd2c0e by concordia-claw <concordia-claw@users.noreply.github.com>:

Add integrated mobile project editor and acknowledged runtime controls

--
e637c1a by concordia-claw <concordia-claw@users.noreply.github.com>:

Support registered project structure and undoable authoring drafts

--
3510470 by concordia-claw <concordia-claw@users.noreply.github.com>:

Verify runtime isolation for authored multi-actor projects

--
7545caf by concordia-claw <concordia-claw@users.noreply.github.com>:

Support safe registered component CRUD and scene authoring

--
e743a15 by concordia-claw <concordia-claw@users.noreply.github.com>:

Inspect and replace authored instance references safely

--
047dbc5 by concordia-claw <concordia-claw@users.noreply.github.com>:

Navigate from project validation errors to the relevant inspector

--
d0f35be by concordia-claw <concordia-claw@users.noreply.github.com>:

Close SSE transports after listener shutdown despite keep-alive headers

--
3f8c3eb by concordia-claw <concordia-claw@users.noreply.github.com>:

Move authored components between compatible prefab owners

--
ed0771f by concordia-claw <concordia-claw@users.noreply.github.com>:

Remove ambiguous editor move controls and retain Run diagnostics

--
5341386 by concordia-claw <concordia-claw@users.noreply.github.com>:

Clarify editor actions, completion and registered project APIs

--
bb55b14 by concordia-claw <concordia-claw@users.noreply.github.com>:

Validate concrete project fixture types and optional scene values

--
a7f4f5e by concordia-claw <concordia-claw@users.noreply.github.com>:

Unify editor console commands, requested run steps and resizable panels

--
f215ea0 by concordia-claw <concordia-claw@users.noreply.github.com>:

Add interactive session authoring and explicit editor CLI coverage

--
b215c4c by concordia-claw <concordia-claw@users.noreply.github.com>:

Keep CLI selection valid after discarding a local draft

--
97fa68f by concordia-claw <concordia-claw@users.noreply.github.com>:

Keep editor inspection aligned with retained runtime identities

--
b3e761b by concordia-claw <concordia-claw@users.noreply.github.com>:

Make editor authoring component-generic with safe concurrent controls

--
7a2a239 by concordia-claw <concordia-claw@users.noreply.github.com>:

Exercise SceneTracker configuration in standard state roundtrip fixture

--
5067475 by concordia-claw <concordia-claw@users.noreply.github.com>:

Preserve empty SceneTracker state and refresh named viewers

--
60448b4 by concordia-claw <concordia-claw@users.noreply.github.com>:

Offer registered prefab creation keys alongside named presets

--
11366b5 by concordia-claw <concordia-claw@users.noreply.github.com>:

Teach current editor workflows and clarify documentation contracts

--
a2c01c4 by concordia-claw <concordia-claw@users.noreply.github.com>:

Discover installed prefabs and validate extra component contracts

--
358020f by concordia-claw <concordia-claw@users.noreply.github.com>:

Preserve prefab component overrides and support matrix-game additions

COPYBARA_INTEGRATE_REVIEW=#314 from concordia-claw:feat/editor-project-roundtrip-001 358020f
PiperOrigin-RevId: 993880873
Change-Id: I35770ed2bf8ef34e5ec0fd1fe38383da479c697a
@jzleibo

jzleibo commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator

Closing this pull request as the changes have already been merged into main via commit 80d9dab.

@jzleibo jzleibo closed this Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants