glTF-Project-Explorer icon indicating copy to clipboard operation
glTF-Project-Explorer copied to clipboard

V2 Brainstorming

Open weegeekps opened this issue 3 years ago • 12 comments

This is an issue to brainstorm what V2 should be and to discuss what features we want.

weegeekps avatar Sep 28 '21 15:09 weegeekps

Some topics are already addressed (or at least mentioned) on other issues:

  • The project explorer should be applicable to other projects.

    • This refers to projects that are "similar" to glTF (in that they specify standards or file formats), and where general resources (applications, tutorials, libraries) should be listed. One specific example is https://github.com/KhronosGroup/glTF-Project-Explorer/issues/85
    • This might also refer to "things that are not so similar to glTF", namely tutorials, videos, articles and presentations, as suggested in https://github.com/KhronosGroup/glTF-Project-Explorer/issues/88 It has to be decided where to draw the line - i.e. whether there are significant structural differences that require different structures to represent the two, or whether an "Entry" in such a project explorer instance can reasonably be generalized so that it can cover a WebApplication and a YouTube video, without introducing too many contortions on the implementation level...
  • The search functionality should be improved (c.f. https://github.com/KhronosGroup/glTF-Project-Explorer/issues/119 ).

    • For me, this is the biggest topic. I noticed that when I had been searching something, I did not use the search+filter at all, but instead, just used the CTRL+F browser search. That's not good. A large part of this could already be covered by not only taking the project title into account, but also the description. An alternative would be to abandon the task, and instead, allow users to define keywords that are dedicatedly used as "search terms that should cause that project to show up". Some initial thoughts are in https://github.com/KhronosGroup/glTF-Project-Explorer/issues/111

    • One could consider using the search functionality of an existing CMS. The goal cannot be to re-implement some "on-site Google search"

    • One could consider some sort of auto-completion. For example, when the user types in "C++ in the search field, it could offer some convenient, dropdown-like auto-completion with options like

      [type:importer] 
      [type:exporter]
      [type:viewer]
      

      that can be used to "drill down" and refine the search, in an exploratory style

    • A "find similar projects" functionality would be nice. For example, someone might type in the name (or manually select) an existing "C++ glTF loader library with MIT license", and then hit a button to receive a list of other projects that match these tags. Yes, it will be necessary to quantify the difference between "MIT" and "BSD", and between "C" and "C++" (ouch!), but it could be a really useful feature for people who are looking for alternatives.

  • It might be interesting to have some sort of visualization of the ecosystem. This was mentioned in https://github.com/KhronosGroup/glTF-Project-Explorer/issues/83 , but I wonder whether this will be an "integral part" of the explorer itself, or whether it could be a completely independent project that just pulls from the same database, or whether it will be a mix of both, namely a visualization that builds on top of some sort of search+filter API that the explorer offers (thus, keeping the explorer "standalone", and creating a "visualizer" that only depends on the explorer via a small, clean interface)

javagl avatar Sep 28 '21 16:09 javagl

One aspect that could also be covered by the project explorer is the support for extensions. There are many viewers, importers and exporters that support different extensions, and having a place to look up this, as a "feature matrix", may be helpful.

In fact, this could - as a first approximation - already largely be covered by the existing project explorer infrastructure. The supported extensions could be treated in a similar way as the existing tags:

{
  "name": "Example of a plugin for some authoring software",
  "type": ["plugin"],
  "outputs": ["glTF 2.0"],
   ...
   "inputExtensions" : ["KHR_lights_punctual", "KHR_draco_mesh_compression"],
   "outputExtensions" : ["KHR_lights_punctual", "KHR_materials_ior" ]
}

This would allow the existing search+filter structures to be used on these tags as well.


One could consider different levels of integration or organization for that. Roughly: One could pull out this aspect into a dedicated page, database, or search tool (for example, to show it on one page as an actual matrix, with the tools in the rows, the extensions in the columns, and ✔️ `s that indicate support). But regardless of the final presentation, I think that at least having this information in a central place in the project explorer database could be really useful.

javagl avatar Oct 15 '21 15:10 javagl

There are some good existing options for fulltext search that are compatible with static web hosting (i.e. without requiring a CMS), a few ideas:

  • statically-hosted sqllite + datasette: https://docs.datasette.io/en/stable/full_text_search.html
  • flexsearch: https://github.com/nextapps-de/flexsearch

A good fulltext search implementation will also provide autocomplete.

I agree that support for extensions would be helpful.


I don't know if I would go as far as trying to support search/filter/sort for arbitrary things like tutorials or videos... expansion to "3D Formats Projects" (i.e. just glTF and KTX2?) might be a good idea though, especially as those lines can be a little blurry.


It may help to have some concrete "user journeys" we intend to support, and then trying to make those easy. For example:

"A user wants to find tools for compressing their GLB file, and isn't sure what type of compression they need."

Someone could use the explorer for that today, but we could make it much easier for them, e.g. with featured "collections", improved filtering options, or UX testing and general usability enhancements.


Would be great to include search/filter terms in the page URL, so we can link to search results when people ask things like "how can i compress my GLB?" or "what tools support both IOR and Volume?"

donmccurdy avatar Oct 27 '21 18:10 donmccurdy

+1 for user journeys. I have been working on the design side of things the past two weeks and I have a bunch of those already in my head, so I will put them into words. I'm hoping to have mock-ups up here soon; unfortunately I've been a bit busy with other work. When I put those up I will include a list of user journeys as well.

However, please feel free to post any user journeys you feel are important to you. Different perspectives are always welcome.

Also, +1 for flexsearch. I was already thinking of that myself as I've used it before with some good success.

weegeekps avatar Oct 27 '21 18:10 weegeekps

I don't have the user journeys completely typed up yet, but I do have the low-detail wire frames finished. There are 3 layouts presented here, one for the Basic Layout, the Detailed Info screen, and the Card Layout. For the Card Layout I've presented 3 variants to show how different repository links will be represented in the card list on the Basic Layout screen.

Basic Layout

Basic Layout

Detailed Info Layout

Detailed Project Info Layout

Card Layout

Card Layout Card Layout (GitLab Icon) Card Layout (Link Icon)

weegeekps avatar Dec 03 '21 17:12 weegeekps

It would be great if the projects that are established enough to have their own logos/icons could display them as you've shown in the final wireframe above.

emackey avatar Dec 03 '21 19:12 emackey

I really like that idea, and I've spent the past few days mulling it over and seeing what we can do. I've narrowed down the possibilities for implementation to two options:

  1. We allow users to upload a 64x64 SVG image of their logo, that will be referenced in the data file. This is my favorite option, but I believe we may run into potential legal issues if we don't require that the logo be licensed as CC-0 or CC-BY.
  2. We allow users to link to a 64x64 SVG image that is on their site. I do not like this option, as it opens users up to several potential vulnerabilities.

I can't make the next Tooling TSG meeting but perhaps on the 17th we could discuss more about these options.

weegeekps avatar Dec 07 '21 17:12 weegeekps

I don't think we can expect people's trademarks to be available as CC-anything. But in cases where a trademark is used on a link to the legitimate website for the trademarked product, I believe it's often allowable (but standard disclaimer, I am not a lawyer). This permission may need to be obtained on a product-by-product basis, however.

emackey avatar Dec 07 '21 18:12 emackey

I am not a lawyer either, but I think the issue is the potential storage of the files. I do think you're right that we can't expect trademarks to be available as creative commons licensed. Probably worth a discussion with a lawyer.

weegeekps avatar Dec 07 '21 19:12 weegeekps

I just opened #139 which replaces the simple title search with an indexed search. I'm going to leave it open for a week for comments.

Next up is redoing the design a bit. In order to make things a bit easier I am going to do a little refactoring to use something like tailwindcss. This will also help to solve a few issues with specific browsers. Should be done sometime next week with that PR.

weegeekps avatar Jan 21 '22 21:01 weegeekps

I really like the V2 layout, and the idea of including logos. Has there been any thought on how the V2 layout would be responsive, especially in terms of the left 'filter' panel. Would that work being pushed to the top of the page but with mobile friendly pull downs to limit height use, rather that a list of all the tags? We are looking to do something similar to that with the right panel that appears on the khronos news sections at: https://www.khronos.org/news/

tim-lewis avatar Sep 14 '22 17:09 tim-lewis

The filter panels are already moved to the top when the window width is below a certain threshold.

(I noticed a glitch here: The "Expand/Collapse" button is only available when they are at the top. When collapsing them, and then making the window wider, the collapsed panels move to the left, where they cannot be expanded any more... but that's a detail for now...)

javagl avatar Sep 20 '22 00:09 javagl