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.
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.
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.
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
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.
Several components are related to editing content while in XR namely :
target
to move, rotate and emitpicked
,moved
(arguably should be renameed moving), andreleased
from primary hand, execute code while secondary hand, add toselectedElement
entity and history, cf #20doublePinchToScale()
as 2 pinches scalingpull
component with visible feedback as line (cf08084875c9
inpull-to-value
branch)snap-on-pinchended
to snape on (invisible) unit gridaddGrid()
to show a unit gridmakeAnchorsVisibleOnTargets()
to make anchor points visible, particularly helpful for first time usersSome 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.
For permanence see
save()
for localStorageload()
remoteLoad()
on wiki, hardcodedremoteSave()
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 andurl
is set, it would overwrited the default value, currently my PIM.Consider the benefits of registries, cf https://github.com/c-frame/aframe-extras/issues/413 , on this. Namely :
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.
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
and also possibly
See working example from
scaled-linked-editor
branch34bbc5bf73
without saving. The user can manipulate a miniaturized yet live linked versions of an explicit set of entities via the neweditable
component.