lbryio / lbry-desktop

A browser and wallet for LBRY, the decentralized, user-controlled content marketplace.
https://lbry.tech
MIT License
3.56k stars 414 forks source link

Add 3D file-viewing to LBRY desktop app #1409

Closed tzarebczan closed 6 years ago

tzarebczan commented 6 years ago

@jamesbiller commented on Sun Apr 29 2018

Link to info & .js https://manu.ninja/webgl-3d-model-viewer-using-three-js/

Needs to operate like the 'Thingiview' in Thingiverse: https://www.thingiverse.com/thing:572581


@tzarebczan commented on Sun Apr 29 2018

Will move this over to the lbry-app repo. I could have sworn I had an issue open for this already, but I guess not.

astrolope commented 6 years ago

I'd like to open this one up with a couple questions.

Which 3D file types are currently capable of being uploaded? All? Currently Three.JS handles all of these model types listed below, however, each one needs a separate loader script to parse the various metadata associated with each 3D model. Some model types can also contain texture data would you want to support this or render to a default texture. Also, models can be quite big in size <20mb what is kind of a general file limit size that would be acceptable? I would say aim for support of the more popular model file formats (fbx, obj, stl) for an initial pass and include accordingly?

loader / 3ds loader / 3mf loader / amf loader / assimp loader / assimp2json loader / awd loader / babylon loader / bvh loader / collada loader / collada / kinematics loader / collada / skinning loader / ctm loader / ctm / materials loader / draco loader / fbx loader / fbx / nurbs loader / gcode loader / gltf loader / gltf / extensions loader / imagebitmap loader / json / blender loader / json / claraio loader / json / objconverter loader / kmz loader / md2 loader / md2 / control loader / mmd loader / mmd / pose loader / mmd / audio loader / msgpack loader / nodes loader / obj loader / obj / mtl loader / obj2 loader / obj2 / meshspray loader / obj2 / options loader / obj2 / run / director loader / nrrd loader / pcd loader / pdb loader / playcanvas loader / ply loader / prwm loader / sea3d loader / sea3d / hierarchy loader / sea3d / keyframe loader / sea3d / morph loader / sea3d / physics loader / sea3d / skinning loader / sea3d / sound loader / stl loader / svg loader / texture / dds loader / texture / exr loader / texture / hdr loader / texture / ktx loader / texture / pvrtc loader / texture / tga loader / ttf loader / utf8 loader / vrm loader / vrml loader / vtk loader / x

jamesbiller commented 6 years ago

Hey astrolope,

I appreciate you reaching out!

Let’s start with STL and OBJ for now.

Currently all I’ve uploaded to LBRY is STL, but technically it should work for all file types.

We can plan on making the file viewer available for the other file types later. However, OBJ is also popular so we’ll include that one too.

Ideally we would support 100MB for the files, as some can get pretty huge.

Please let me know when you can start working on this and we can hop on a call.

Looking forward to working with you. :)

Best, James

astrolope commented 6 years ago

I need to get the sizing and lighting right. As well as dial the orbit controls because they hi-jack the scroll functionality of the page. But here is a quick rough screenshot of the prototype viewer I put together after our phone call today. screenshot 2018-05-17 16 42 11

jamesbiller commented 6 years ago

Hey Garrett,

This looks great.

How hard one would it be to let people choose the color that it shows up in?

Like in the case of the Bitcoin sign I just realized it would be best to have it show up in Gold because that's the color most people would print it in.

Would this require a lot more work?

If so the green color that your working with now is probably fine, although it would be nice to see what it looks like with the new app color as well.

Also, could you put a grid in the viewer as well?

Good work so far,

James

On Thu, May 17, 2018 at 7:43 PM, Garrett Criss notifications@github.com wrote:

I need to get the sizing, lighting, and the orbit controls hi-jack the scroll functionality of the page. But here is a quick rough screenshot of the prototype viewer I put together after our phone call today. [image: screenshot 2018-05-17 16 42 11] https://user-images.githubusercontent.com/6117232/40208963-78bb3b2e-59f1-11e8-963e-b462c4e95565.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lbryio/lbry-app/issues/1409#issuecomment-390047938, or mute the thread https://github.com/notifications/unsubscribe-auth/AlAEOP31XARXWW3iJCkY0b5An2trY3LEks5tzgs7gaJpZM4Tr7dI .

-- James Biller Marketing Intern, LBRY Inc.

jamesbiller commented 6 years ago

that you're* working with

On Fri, May 18, 2018 at 10:28 AM, James Biller james@lbry.io wrote:

Hey Garrett,

This looks great.

How hard one would it be to let people choose the color that it shows up in?

Like in the case of the Bitcoin sign I just realized it would be best to have it show up in Gold because that's the color most people would print it in.

Would this require a lot more work?

If so the green color that your working with now is probably fine, although it would be nice to see what it looks like with the new app color as well.

Also, could you put a grid in the viewer as well?

Good work so far,

James

On Thu, May 17, 2018 at 7:43 PM, Garrett Criss notifications@github.com wrote:

I need to get the sizing, lighting, and the orbit controls hi-jack the scroll functionality of the page. But here is a quick rough screenshot of the prototype viewer I put together after our phone call today. [image: screenshot 2018-05-17 16 42 11] https://user-images.githubusercontent.com/6117232/40208963-78bb3b2e-59f1-11e8-963e-b462c4e95565.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lbryio/lbry-app/issues/1409#issuecomment-390047938, or mute the thread https://github.com/notifications/unsubscribe-auth/AlAEOP31XARXWW3iJCkY0b5An2trY3LEks5tzgs7gaJpZM4Tr7dI .

-- James Biller Marketing Intern, LBRY Inc.

-- James Biller Marketing Intern, LBRY Inc.

astrolope commented 6 years ago

Hey James, we could create a small palette of choosable colors. It would be a little more work to put together. I can see how it would come together. The new app color is the darker gray design correct? I can add a grid as well. Do you have a particular color that you'd like it to be?

jamesbiller commented 6 years ago

Hey Garrett,

My apologies for not getting back to you sooner! Let's make the grid with gray lines.

If we could do ROYGBV plus B&W that would be ideal, maybe add Brown and Gray as well if it's not hard.

The top priorities would be Green, Blue, and White/Beige.

Can you hop on a call Monday or Tuesday next week? Let me know and we'll set up another call.

James

On Fri, May 18, 2018 at 2:32 PM, Garrett Criss notifications@github.com wrote:

Hey James, we could create a small palette of choosable colors. It would be a little more work to put together. I can see how it would come together. The new app color is the darker gray design correct? I can add a grid as well. Do you have a particular color that you'd like it to be?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lbryio/lbry-app/issues/1409#issuecomment-390294419, or mute the thread https://github.com/notifications/unsubscribe-auth/AlAEOKBKeV2a3WACyTqyPpP5PBPuIMt0ks5tzxPDgaJpZM4Tr7dI .

-- James Biller Marketing Intern, LBRY Inc.

btzr-io commented 6 years ago

Related issue https://github.com/lbryio/lbry-app/issues/1527

btzr-io commented 6 years ago

Any news / updates on this? ^^

btzr-io commented 6 years ago

@astrolope are you still working on this issue?

astrolope commented 6 years ago

I’ve been fairly busy with work and school to really dive into finishing this properly. If you’d like to fork my code and finish it I have the 3D model loading and controls implemented.

On Jun 3, 2018 at 5:37 PM, Baltazar Gomez notifications@github.com wrote:

@astrolope https://github.com/astrolope are you still working on this issue?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lbryio/lbry-app/issues/1409#issuecomment-394205810, or mute the thread https://github.com/notifications/unsubscribe-auth/AF1XcLqKM3Zu-12j7us3od_IzCskHv2Vks5t5IFHgaJpZM4Tr7dI .

btzr-io commented 6 years ago

Ok, I'll continue this work on this branch -> https://github.com/lbryio/lbry-app/tree/three

astrolope commented 6 years ago

I was having some troubles getting the three.js code from the importer plugin and

On Jun 3, 2018 at 5:46 PM, Garrett Criss astrolope@gmail.com wrote:

I’ve been fairly busy with work and school to really dive into finishing this properly. If you’d like to fork my code and finish it I have the 3D model loading and controls implemented.

On Jun 3, 2018 at 5:37 PM, Baltazar Gomez notifications@github.com wrote:

@astrolope https://github.com/astrolope are you still working on this issue?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lbryio/lbry-app/issues/1409#issuecomment-394205810, or mute the thread https://github.com/notifications/unsubscribe-auth/AF1XcLqKM3Zu-12j7us3od_IzCskHv2Vks5t5IFHgaJpZM4Tr7dI .

astrolope commented 6 years ago

see the ModelViewer component. I had some trouble getting the extra three.js code in the internal folder through the pre-linter. This extends the Three.JS object to contain the functions for the model loader and orbit controls https://github.com/astrolope/lbry-app/tree/model-viewer

On Jun 3, 2018 at 5:55 PM, Baltazar Gomez notifications@github.com wrote:

Ok, I'll be working on this branch -> https://github.com/lbryio/lbry-app/tree/three

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lbryio/lbry-app/issues/1409#issuecomment-394208066, or mute the thread https://github.com/notifications/unsubscribe-auth/AF1XcKGluA-pDXy6yTHrMp8z1aOOmu0Jks5t5IWegaJpZM4Tr7dI .

btzr-io commented 6 years ago

Ok, thanks I found a fix for that problem (https://github.com/lbryio/lbry-app/pull/1542/commits/8ae03b5f72572780a0b12dcecd824f222b29ca13) See fix from this thread -> https://github.com/mrdoob/three.js/issues/9562#issuecomment-383390251

jamesbiller commented 6 years ago

@btzr-io @astrolope Hey Baltazar! Garrett and I have chatted and he did some work obviously.

I would love to hop on a call sometime and chat about this issue and some other javascript projects going forward.

Will send you a more formal email in the morning! :)

tzarebczan commented 6 years ago

Added in https://github.com/lbryio/lbry-desktop/pull/1558