Code Monkey home page Code Monkey logo

dpo-voyager's Introduction

Voyager

Next Generation 3D editing and viewing tool suite

Suite of browser-based 3D tools, consisting of

  • Voyager Story - quality control, authoring of presentations, annotations, articles, tours
  • Voyager Explorer - feature-rich 3D viewer component
  • Voyager Mini - bare-bone 3D viewer component, optimized for size and loading speed

Documentation

Questions / Comments / Issues

Please open an issue and we will respond ASAP.

Contributions

We welcome any contributions to the project. Please open a PR for any bug fixes and open an issue for any major changes or feature ideas.

Feature Requests

Given that the Smithsonian 3D team has limited resources, our implementation of new features will be limited to those that are directly aligned with the strategic goals and objectives of the institution. We are, however, happy to accept and review any PRs for functionality that will add value for our community at large.

Pre-Release Software

This software is pre-release and provided "as is". Breaking changes can and will happen during development.

License Information

Copyright 2022 Smithsonian Institution.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use the content of this repository except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

dpo-voyager's People

Contributors

csparker247 avatar framefactory avatar fuzheado avatar ghalusa avatar gjcope avatar kgschoueri avatar sdumetz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dpo-voyager's Issues

uiMode defaults to no UI

If uiMode attribute is present, it defaults to no UI. It should default to all UI on unless a valid parameter is detected.

"base" URL Parameter

Hi @framelab,

I switched to v0.4.0 and discovered that the "base" parameter is not being applied to the creation of *item.json files.

base=f1978_40-master-250k-2048-web results in the creation of a vanilla item.json file.

To be sure it wasn't something wrong on my end, I switched back to v0.2.0, and the base parameter works as it should.

WebXR experience crashing when given poor data and low resources (I assume)

Sony Experia XZ2 Compact
Android 10; H8314 Bulid/52.1.A.3.137
Chrome 80.0.4389.105
WebXR experience on Dev API multi-model AR test, April 1

Issue:
It seems if Voyager tries to spend too long placing the model it will crash the web page or just exit out of chrome (the webpage just reloads when you open chrome). This seems to only happen if I have a bunch of other apps running in the background. It does not happen when plugged into a computer for USB debugging.

Steps to reproduce:

  • Open up a bunch of resource hogging apps in the background
  • Start the multi-model AR test scene on the dev api
  • keep the devices camera close to a relatively low detail surface so that the image stays out of focus (I used mono-colored cloth or mono-colored sheets of plastic)
  • Move the device around on the same plane as the surface you are capturing keeping it out of focus, try to avoid any interesting details
  • Eventually the web page should crash or the device will just quit out to the desktop, sometimes after capturing the out of focus surface for a while, quickly switching to a different view (such as just looking up at the room you are in) will trigger the crash/quit

Expanded annotaion text boxes do not stay within view port at smaller sizes

At smaller fame sizes (especially on mobile, but can manifest on desktop) the expanded annotation text box will be partially out of view. Trying to rotate the model to fit the text box will cause it to move around the sides of the screen, with a section of the text box remaining obscured (this is most prevalent on mobile)

RPReplay_Final1615573700.MP4

Language button style and placement

We should review the language button to see if any changes are warranted. Aspects to consider are it’s placement on the screen, when it is available/hidden, and if it should be an icon or not.

Italics in titles

Some objects will need italics in titles. We should change the title var to html so that it is styleable.

Voyager doesn't load properly in IE 11 or Edge browser

Both in IE 11 and Edge, the tag is empty and nothing is generated inside of it. No messages are displayed in the console indicating any sort of issue. The end result is that Voyager doesn't load or display on the page.

Thumbnails should only be attached to the scene (not to individual 3D models)

Currently thumbnails can be attached at the scene level or to individual parts of geometry in a scene. If there isn't a use case for multiple thumbnails attached to different parts of the scene graph then I propose that all thumbnails should be attached to the root of a scene and the Navigator/Node window not be involved in the thumbnail capture process. This will remove extra steps for the end user and make it easier to programmaticly find and display the correct thumbnail image.

Capture Task, Scene selected in node navigator
image

Capture Task, Part selected in node navigator
image

Capture Task, Non-Scene/Part selected in node navigator
image

Failed to create article at 'articles/

Hello, great job with the voyager explorer.
We are just taking our first steps with it and are having troubles creating articles. I can create a nex article and it is also created in the models/xxx/articles folder on the server. But trying to edit it via article editor gives me the Failed to create article at 'articles/new-article-q4S0hZR2DUCb.html' error. Where can i look for fixing this?
THX

Pixelated shadow on floor from model

Model viewed in Voyager v0.7.5
Scene created using web-multi recipe and web-thumb recipe

This seems to be related to the radius value of the floor. With smaller floor radius floor values corresponding to a more pixelated floor (making this assumption after reviewing 5 scenes).

image
Floor radius: 5.8

image
Floor radius: 1.7

image
Floor radius: 230

image
Floor radius: 50

Article editor behavior disconnected from rest of Voyager Story

The article editor currently is not affected by what article or language is selected in either the article task or the Explorer window. This can create confusion for the story author as to what article they are editing. The article editor should behave more like tour editor so it updates based on selected article and language in the task pane/Explorer pane. In this scenario Voyager Story will have to warn users to save before navigating away from an edited article.

Scaling issue on load

Thumbnail models sometimes load very large before popping in. This can last for some time if it is a large model and looks quite bad. We should make sure the scale is locked in before displaying the model.

Multi-model scenes cause infinite page reloading in iOS

Issue seen on an iPhone 7 running iOS 14.4 on up-to-date Chrome, Firefox, Safari

Page loads as normal, seems to load a 3D thumb or low-res model, but the page reload before Voyager loads the high-res models.

Usually the console does not produce error, just warnings, but I was able to catch this on Chrome for the first page reload of https://3d.si.edu/object/3d/lidded-ritual-ewer-guang-taotie-dragons-birds-tigers-elephants-fish-snakes-and-humans:d8c646aa-4ebc-11ea-b77f-2e728ce88125

ERRORfailed to load 'https://3d-api.si.edu/content/document/d8c646aa-4ebc-11ea-b77f-2e728ce88125/f1961_33-part_01-laser-ortery_texture-150k-4096-high.glb': [object XMLHttpRequestProgressEvent]
ERRORfailed to load 'https://3d-api.si.edu/content/document/d8c646aa-4ebc-11ea-b77f-2e728ce88125/f1961_33-part_02-x_pol-ort_texture-150k-4096-high.glb': [object XMLHttpRequestProgressEvent]

Cannot load draco-related files

If I put e.g. Voyager Mini to "subdirectory", bundled three.js tries to load draco-related files relative to that "subdirectory". How I can configure where these files are fetched?

Subdirectory is in quotes because it's not really a physical directory on the server.

Clicking article button by default opens the first article

It feels like the article view/hide button should probably open to the article picker or there should be explicit way to identify a default article for it to open, ideally with collection record information included (Though this would be Smithsonian specific functionality...)

text-overflow not working for tour navigator title element

Text-overflow is not being respected on the tour navigator title element when the viewer is the full horizontal width of the window. I fix has been submitted for embeds but this still needs to be addressed.

Image below shows the minimum width this window can be resized. Expected behavior is text-overflow for the navigator title enabling a smaller width.

image

Tape Tool not working properly on my model

Steps to reproduce

  1. Load this model in voyager explorer
    trex_medium.zip

  2. Try to use tape tool to measure

Current behavior (bug)

Measure pins are not placed correctly on the model. They spawn randomly on canvas.

Expected behavior (correct)

Pins should be placed where the mouse pointer is.

Bug

/label ~Bug

Floor is arbitrary size and location (while grid seems to automatically adjust to the scene)

Voyager version: v0.7.5
Scenes produced using play-to-voyager recipe, issue also shows up on content created from web-multi recipe and appears to be recipe independent

In the two examples below the grid seems to autosize correctly and is set just under the model, but the floor appears to be at an arbitrary size and height.

image
mammoth - 341c96cd-f967-4540-8ed1-d3fc56d31f12

image
1 Dollar, China, 1923 - 2b0560df-3f85-4c6a-a22f-7fe9f82d40b8

Title of article in article picker vs HTML article file are not connected

When an article is initialized it takes its title from the title in the article picker (title of the article as listed in the scene.svx) but after the initial creation of the HTML article file the two titles exist separately and updating one does not update the other. It’s not clear what the use case would be for having two different titles for the same article, and feels like if anything it would be confusing. I would recommend Story ensure these titles always agree

obj with normal map

Hi,
I have some trouble displaying a Geometry (.obj) with a normal map, as i'm new to normal maps.
The obj and the regular texture jpg are referenced in the svx.json and are working fine. The normal map is only referenced in the mtl as map_Bump and is not rendered in Voyager-Explorer at the moment. Do I need to reference it in the svx.json as well? And how is it done?

Thx Mal

How to build document.svx.json file for different file types?

Hey, Can anyone guide me on how to structure the json file for different model file types (obj and gltf). I am using glb with embedded textures but how do I reference texture files of an obj model in json. This is the models section of the json.
"models": [ { "units": "m", "derivatives": [ { "usage": "Web3D", "quality": "Thumb", "assets": [ { "uri": "trex_thumb.glb", "type": "Model" } ] }, { "usage": "Web3D", "quality": "Low", "assets": [ { "uri": "trex_low.glb", "type": "Model" } ] }, { "usage": "Web3D", "quality": "Medium", "assets": [ { "uri": "trex_medium.glb", "type": "Model" } ] }, { "usage": "Web3D", "quality": "High", "assets": [ { "uri": "trex_high.glb", "type": "Model" } ] } ] } ]

Also the tape tool is not working on my models. When I click on the model the pin randomly appears somewhere else on the model.

Install of Voyager returns errors

We've recently tried installing the latest Voyager commit following the instructions on the getting-started page and with the latest release, we've run into some problems:

  1. After running the git clone command (git clone --recurse-submodules https://github.com/smithsonian/dpo-voyager .), the services directory does not contain a secrets.template.env file (I think the config.env file was also missing).
  2. We tried copying/pasting those files from another instance of voyager on a different computer but then ended up with these errors after npm run up:
> [email protected] up /Users/jbresner/Library/Mobile Documents/com~apple~CloudDocs/Projects/voyager2
> docker-compose up -d; docker-compose logs -f

WARNING: The VOYAGER_SERVER_PORT variable is not set. Defaulting to a blank string.
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.server.ports is invalid: Invalid port ":", should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]
WARNING: The VOYAGER_SERVER_PORT variable is not set. Defaulting to a blank string.
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.server.ports is invalid: Invalid port ":", should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] up: `docker-compose up -d; docker-compose logs -f`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] up script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/jbresner/.npm/_logs/2019-11-07T14_22_25_989Z-debug.log

We've since got back and checked out commit ac70f89, which is what we last used successfully.

Inconsistent scene metadata locations

The scene requires a 'collection' metadata element to correctly display a title. This is typically at a meta index of 0 and the index is stored in the main scene element. If articles or images are attached to the main scene, these are put into an element at a different metadata index and the scene meta index is updated accordingly. This breaks the title display and if changed, breaks the article/image indexing.

Share button creates HTML embed code which is percent encoded

The URL (src="https://3d-api.si.edu/voy...) in the embed link that voyager creates with the share button is percent encoded which has caused issues with embedding:

HTML snippet created with the share button
<iframe name="Smithsonian Voyager" src="https%3A%2F%2F3d-api.si.edu%2Fvoyager%2F3d_package%3Ad8c623be-4ebc-11ea-b77f-2e728ce88125" width="800" height="450" allowfullscreen="true"></iframe>
Screen Shot 2020-04-09 at 8 49 21 AM

vs what seems to work

<iframe name="Smithsonian Voyager" src="https://3d-api.si.edu/voyager/3d_package:d8c623be-4ebc-11ea-b77f-2e728ce88125" width="800" height="450" allowfullscreen="true"></iframe>
Screen Shot 2020-04-09 at 8 51 06 AM

I’m not sure of the implications here, but it has caused units trouble when trying to embed voyager.

Releasing mouse button click outside of iframe causes buggy navigation

Summary:
Releasing mouse button click outside of iframe causes buggy navigation

Version:
v0.7.5-2-gdec4258

OS/Browser:
Windows 10 and MacOS 10.14
Chrome 80.0.3987.132 (bug does not show up in "Developer Tools" mode), Edge 80.0.361.66 (chromium), Safari 13.0.5

Description:
When Voyager is in an iframe clicking any of the mouse buttons in the iframe to rotate/zoom/pan the model and releasing the click outside of the iframe causes unexpected navigation issues (rotate stuck on, navigation speed might be increased)

Steps to Reproduce:

  1. Go to a page with Voyager imbedded in an iframe
    https://3d.si.edu/object/3d/triceratops-horridus-marsh-1889:d8c623be-4ebc-11ea-b77f-2e728ce88125

  2. Click and hold any mouse button in center of voyager iframe, drag cursor off of iframe, release mouse button

Actual Results:
Performing test with left click or center click will cause that button to appear to be locked on when cursor is over iframe. Subsequent clicks on the iframe will cause further navigation issues
Performing test with right click, then clicking on iframe with any mouse button will cause navigation issues.
Navigation issues include fast rotation/translation and model jumping around viewer

Expected Results:
None, clicking and dragging off iframe should not effect viewer behavior

image

Slice tool not working on Firefox w/ Macbook Air

Slice tool not working properly on Macbook Air using Firefox 86.0. Upon activating the slice tool the entire model appears blue.

Screenshot of mammoth loaded
image

Screenshot of slice tool turned on
image

Hardware/ software details:
Firefox Version 86.0Build ID 20210222142601
Model Name: MacBook Air
Model Identifier: MacBookAir8,1
Processor Name: Dual-Core Intel Core i5
Processor Speed: 1.6 GHz
Memory: 16 GB
Graphics: Intel UHD Graphics 617 1536 MB
macOS: Catalina, 10.15.7 (19H524)

In Voyager Story separate saving a scene from setting initial load state of a scene

Currently saving a scene in Voyager Story both saves all changes to the scene as well as sets the current state of the scene in Explorer as it’s initial load state. This means whenever that version of the saved scene is opened it will open with the model in whatever position it was left in when a user pressed save and the UI will be in the state it was saved, for example with the article picker open. This second behavior is unexpected and has resulted in unintentional changes in how scenes initially load.

Ideally these two actions would be separated. The “Save” button would continue to save changes to the scene such as annotations, articles, and tours. New functionality would be added to set the scene’s initial load state, such as the initial view position/pose.

missing faces

Some geometry faces show up missing (just parts of an object in some cases) that are visible in other viewers. Not due to standard back-face culling. Example file attached.
cooper-hewitt-exterior-low.zip

Annotation pointing to a deleted article opens the article picker

If you delete an article that an annotation is pointing to, that annotations “Read more” link takes you to the article picker. While this is a reasonable fall back for an article that does not exist, ideally the “Read more” text would not show up if the linked article was missing. Though it is also reasonable to assume the responsibility for removing the annotation link is on the human author and not the tool...

On iOS, releasing touch outside of iframe or on UI element causes buggy navigation

Summary:
On iOS, releasing touch outside of iframe or on UI element causes navigation to get stuck on pan, and jump around

Version:
v0.7.5-2-gdec4258

OS/Browser:
iPhone 7, 13.1.3

  • Chrome 80.0.3987.95
  • Firefox 23.0 (17297)
  • Safari

(Does not effect Chrome or Firefox on up-to-date Android)

Description:
Releasing a touch-and-drag input (to rotate/pan/zoom) on a Voyager UI element (such as tool icon or annotation text box) or outside of an iframe causes unexpected navigation issues (pan stuck on, jumpy navigation, similar but not the same as #14 )

Steps to Reproduce:

  1. Go to a page with Voyager
    https://3d.si.edu/object/3d/morse-vail-telegraph-key:ed99f44d-3c60-4111-b666-e2908e1b64ef

2.Touch and drag from the center of voyager iframe, release drag on Voyager UI element of off of iframe

Actual Results:
After releasing touch-and-drag on Voyager UI element or outside of iframe will cause all future touch-and-drag inputs to be treated as pan inputs, and will cause jumpy navigation.

Expected Results:
None, where a touch-and-drag input is released should not effect viewer behavior

Offset and scale for annotations is too sensitive

Depending on the scenes units and the size of a model, the offset and scale for annotations can be too sensitive, with values of .01 moving annotations off the screen. This is a particular issue when using the click and scrub method of changing scale and offset.

For example, when changing the scale of a standard or extended annotation using the click and scrub method, moving the mouse less than a millimeter can send the annotation off the screen.

This can be seen in scene 9fb50f36-fd2a-48a2-86d3-50113cc91028 (internal Story location &root=nas2/qc/jwb/9fb50f36-fd2a-48a2-86d3-50113cc91028/)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.