aleph-viewer / aleph Goto Github PK
View Code? Open in Web Editor NEWAleph is a 3D object viewer and annotation/measurement tool built with A-Frame, AMI, StencilJS, and Ionic
License: MIT License
Aleph is a 3D object viewer and annotation/measurement tool built with A-Frame, AMI, StencilJS, and Ionic
License: MIT License
Very large meshes (like 16 million polygon meshes) currently perform more poorly in Aleph than in other Three.js-based web GLTF mesh viewers. This seems to be due to the computational overhead of the raycaster calculating when the cursor intersects with the mesh.
The large mesh branch is an example of an experimental fix to this issue, disabling the raycaster for the orbit camera but not the trackball camera. Performance is much higher for orbit than trackball when the cursor intersects with mesh surface. This of course also causes an additional issue where when using the orbit camera, it is impossible to interact with nodes in any way (including highlighting them).
One approach to solving this issue would be to disable the raycaster unless a user has 'enable node placement' switched on, though this would cause the above issue with being unable to highlight previously placed nodes. Alternately maybe the node placement switch should be replaced with some kind of 'node mode' that toggles both visibility of and placement of nodes.
I'll be trying to address this issue as I'm able.
This is useful for driving an experience that aleph is embedded into.
See the attached mesh, which is roughly disc-shaped and has a size of around ~1.7 millimeters as the widest diameter. This particular mesh was not correctly scaled, but it is completely possible to have objects at this size. The src/Constants.ts camera near value (0.05) is not large enough to account for a mesh like this, and on initial load the mesh appears too close to the camera to be viewed.
That can be changed easily enough to something like 0.0001 to address this, but placing annotations on the example mesh produces this error: "THREE.DirectGeometry: Faceless geometries are not supported." Though it seems to relate to a very different issue, this stack exchange answer suggests this particular error may also be caused by the small size of the mesh.
The issue has to do with editing the name of nodes or deleting them (as opposed to moving them on the object).
We should separate the "node panning" function from "node editing" functions. It often takes a long time for the node to become editable after clicking on it because aleph rotates and pans to the node which can take a while for a big mesh. There's no reason those two functions need to be tied to each other.
In the node list, we should have two buttons: 1 says "zoom to node" or "pan to node". the other says "edit". Seems like you should be able to click "edit" and change the node name or delete it without incurring the cost of rotating and zooming the specimen.
It seems best to separate them because we will always have big meshes or files. I just dont see any reason to connect the two functions. When you want to edit the node, that's what you want to do, not pan then edit. Its counter intutive when your goal is editing the node name and instead you have to rotate and pan before you can do that.
This is useful when Aleph is part of a larger application with a distinct style/colour scheme of its own.
https://github.com/aframevr/aframe/releases/tag/v1.0.4
Not sure which change has caused this. Is fine is v1.0.3.
measurement tools are not working on certain meshes: for instance the UF Sifrippus tooth: https://morphosource-demo.lib.duke.edu/concern/media/000005227?locale=en.
Could have something to do with it being a very small tooth
This is useful when describing properties of an object as a whole.
some images have nodes and font that are way too big or way too small. Im not sure how font and node size is currently being determined. It would seem that if was determined via as a constant relative to bounding box dimensions this should be less of an issue.
Multiple people I tried showing aleph-viewer's volume models just said "loads forever, and then displays a texture". I think you would avoid confusion over the capabilities if the default view would be the volume :)
This is useful when driving the experience from an external menu.
When viewing https://aleph-viewer.com in Firefox 70.0.1 (64-bit) on Windows 10 and clicking on the "Nodes" tab I see unstyled links and input fields.
Here's how it looks in latest Chrome:
Styling problems can also be seen on the "Source" tab, where in Chrome the selection box extends to the full width of the sidebar, and in Firefox it doesn't. Also the input field correctly has a grey background in Chrome, whereas it doesn't in Firefox.
zooming does not result in scrolling up because (I suppose) the preview is at the top of the page already. But it is a distracting problem especially for meshes
Steps to reproduce:
The third additional edge (i.e., edge 6 overall) will have bugged extra-wide light gray background behind the dark gray background. Weird!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.