In XR editor functionalties #99

Open
opened 1 year ago by utopiah · 5 comments
utopiah commented 1 year ago
Owner

Several components are related to editing content while in XR namely :

  • target to move, rotate and emit picked, moved (arguably should be renameed moving), and released from primary hand, execute code while secondary hand, add to selectedElement entity and history, cf #20
  • doublePinchToScale() as 2 pinches scaling
  • pull component with visible feedback as line (cf 08084875c9 in pull-to-value branch)
  • snap-on-pinchended to snape on (invisible) unit grid
  • addGrid() to show a unit grid
  • makeAnchorsVisibleOnTargets() to make anchor points visible, particularly helpful for first time users

Some components are also related to saving server side, even though they might not be usable as-is #40 (which should be also clarified, ideally using a URL value to make the backend itself user configurable, supporting e.g Glitch endpoint)

As discussed on https://github.com/c-frame/aframe-editor/issues/4 and elsewhere having an in XR editor is powerful as it limits the iteration time. Consequently it is important to list such components, insure their compatility and provide examples, particularly in level design.

Several components are related to editing content while in XR namely : * `target` to move, rotate and emit `picked`, `moved` (arguably should be renameed moving), and `released` from primary hand, execute code while secondary hand, add to `selectedElement` entity and history, cf https://git.benetou.fr/utopiah/text-code-xr-engine/issues/20 * `doublePinchToScale()` as 2 pinches scaling * `pull` component with visible feedback as line (cf https://git.benetou.fr/utopiah/text-code-xr-engine/commit/08084875c9f80a684cbcabcf87fe99e0730b7f56 in `pull-to-value` branch) * `snap-on-pinchended` to snape on (invisible) unit grid * `addGrid()` to show a unit grid * `makeAnchorsVisibleOnTargets()` to make anchor points visible, particularly helpful for first time users Some components are also related to saving server side, even though they might not be usable as-is https://git.benetou.fr/utopiah/text-code-xr-engine/issues/40 (which should be also clarified, ideally using a URL value to make the backend itself user configurable, supporting e.g Glitch endpoint) As discussed on https://github.com/c-frame/aframe-editor/issues/4 and elsewhere having an in XR editor is powerful as it limits the iteration time. Consequently it is important to list such components, insure their compatility and provide examples, particularly in level design.
Poster
Owner

For permanence see

  • save() for localStorage
  • load()
  • remoteLoad() on wiki, hardcoded
  • remoteSave()

Both remote functions could instead rely on the optional presence of a component, e.g remote-saving-server="url:https://jxr-remote-saving-server-example.glitch.me/". If it exists and url is set, it would overwrited the default value, currently my PIM.

For permanence see * `save()` for localStorage * `load()` * `remoteLoad()` on wiki, hardcoded * `remoteSave()` Both remote functions could instead rely on the optional presence of a component, e.g `remote-saving-server="url:https://jxr-remote-saving-server-example.glitch.me/"`. If it exists and `url` is set, it would overwrited the default value, currently my PIM.
Poster
Owner

Consider the benefits of registries, cf https://github.com/c-frame/aframe-extras/issues/413 , on this. Namely :

  • can unloaded components be listed directly in XR,
  • can that list be trimmed down to only usable component (e.g no 2D UI as necessary UX),
  • can such components be attached/removed efficiently in XR

Could be interesting to start by make a custom registry with the dedicated components, enable them, pull the list of others with necessary ways, e.g tags, to filter down.

Consider the benefits of registries, cf https://github.com/c-frame/aframe-extras/issues/413 , on this. Namely : * can unloaded components be listed directly in XR, * can that list be trimmed down to only usable component (e.g no 2D UI as necessary UX), * can such components be attached/removed efficiently in XR Could be interesting to start by make a custom registry with the dedicated components, enable them, pull the list of others with necessary ways, e.g tags, to filter down.
Poster
Owner

Even though not specific to level design or editing in general, as usually it remains limited to adding entities, components and changing the value of their properties, one of the core aspect of this project is about accessing as much as the stack as possible, including code itself. Consequently jxr itself or the code editors with syntax highlighting should be considered too. It might be best to do so after basics are done, as it's more inclusive, understandable by a broader audience, yet it is not secondary. Arguably it is even the distinctive aspect from most other projects.

See specifically experiments in branches

  • code-editor
  • componentized-blocks
  • stretch-to-unpack
  • editor-split
  • syntax-highlighting
  • knuckle-code-snippets

and also possibly

  • microgestures
  • swagger_example
  • bind-jxr-target
  • visibile-scaffolding
Even though not specific to level design or editing in general, as usually it remains limited to adding entities, components and changing the value of their properties, one of the core aspect of this project is about accessing as much as the stack as possible, including code itself. Consequently `jxr` itself or the code editors with syntax highlighting should be considered too. It might be best to do so after basics are done, as it's more inclusive, understandable by a broader audience, yet it is not secondary. Arguably it is even the distinctive aspect from most other projects. See specifically experiments in branches * code-editor * componentized-blocks * stretch-to-unpack * editor-split * syntax-highlighting * knuckle-code-snippets and also possibly * microgestures * swagger_example * bind-jxr-target * visibile-scaffolding
Poster
Owner

See working example from scaled-linked-editor branch 34bbc5bf73 without saving. The user can manipulate a miniaturized yet live linked versions of an explicit set of entities via the new editable component.

See working example from `scaled-linked-editor` branch https://git.benetou.fr/utopiah/text-code-xr-engine/commit/34bbc5bf738acead795a58a3e502084753eaf52d without saving. The user can manipulate a miniaturized yet live linked versions of an explicit set of entities via the new `editable` component.
Poster
Owner

cloning primitives https://x.com/utopiah/status/1842195658637464037 , moving then and saving a history of modifications, replayable

changing color https://x.com/utopiah/status/1842198368438669389 with a "glove" coloring mode

cloning primitives https://x.com/utopiah/status/1842195658637464037 , moving then and saving a history of modifications, replayable changing color https://x.com/utopiah/status/1842198368438669389 with a "glove" coloring mode
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: utopiah/text-code-xr-engine#99
Loading…
There is no content yet.