Three.js: Editor: UI enhancements.

Created on 28 Sep 2020  路  6Comments  路  Source: mrdoob/three.js

The editor uses UI.js that is quite old and not maintained (I guess, no commit for 3 years)...

What is your plans about that?

Is it relevant to improve UI.js, like moving to ES modules and classes, or cook some custom elements?
(In this case I can do it, in fact I already started, and I can start a PR in this UI.js project)

Another option is to switch to an already made component library.
I'm not such a fan of industry giants like Angular or React, it's way too much effort to get a simple UI like the editor's one...
I tried and used the great Xel custom elements, it's easy, lightweight, modular and libre licenced...
(I let you take a look, and I could also start a refactoring of editor UI with Xel elements...)

This issue exists to open the discussion about editor's UI !
Please explain your feelings about this, maybe write your wish about UI improvments, your needs or the lacks you see...

Editor Enhancement

All 6 comments

Here are my wishes for ediotr's UI improvments :

  • Resizeable panels
  • Moveable panels, or at least different layouts (right panels / left panels)
  • Collapsible panels
  • Multi scripts editor: a way to keep open several scripts without the need to select the 3D object it's attached to each time you want to switch. Maybe a documents tabs bar and a collapsible Script editor (like minimize/maximize from the bottom of window)
  • A new window for Player when the RUN button is pressed (this will avoid to polute the editor JS scope with variables and libs loaded by scripts).

In a far far future

  • An UI like Blender's one, with splitable rectangles where you put the UI part you want in it...
  • A dynamic ADD menu that can list every object available in the main THREE.* lib. (Without the need to code every menu item and the instanciation method, something automatic can be done I think).
  • A way to write/load JS modules in Script panel, meaning being able to export things like custom classes and reuse it in the editor's ADD menu.
  • Maybe editor's plugins, loadable from files, writable from Script panel, saved in editor's config in localstorage and exported in project's scripts.

The editor uses UI.js that is quite old and not maintained (I guess, no commit for 3 years)...

I guess you are looking at the wrong place. The copy used in the editor was frequently updated up to now.

https://github.com/mrdoob/three.js/blob/dev/editor/js/libs/ui.js

I guess you are looking at the wrong place. The copy used in the editor was frequently updated up to now.
https://github.com/mrdoob/three.js/blob/dev/editor/js/libs/ui.js

Okay, my bad ^^
So the external repo is obsolete? And any new developments should stand in three.js repo, is it?

Still, my questioning about refactoring this part stay the same:

  • Is it relevant to enhance this UI.js lib being part of moving to ES modules/classes
  • Or start a refactoring with another components lib?

I like the current setup. It's simple and doesn't require setting up complicated build processes.

I like the current setup. It's simple and doesn't require setting up complicated build processes.

A rollup config file in the other repo, and a git submodule in this one is not such complicated...
(I can work on it)

So developing webGL shaders and the most popular js lib associated don't afraid you but a rollup file does? 馃槣
(Just kidding)

I sometimes have the feeling that too less developers appreciate the worth of simplicity these days...

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Bandit picture Bandit  路  3Comments

ghost picture ghost  路  3Comments

filharvey picture filharvey  路  3Comments

zsitro picture zsitro  路  3Comments

donmccurdy picture donmccurdy  路  3Comments