bounswe / bounswe2024group8

6 stars 1 forks source link

Evaluate and Select Optimal 3D Viewing Framework for Mobile #200

Closed AliAlperenSonmez closed 1 month ago

AliAlperenSonmez commented 1 month ago

Issue Description

For the mobile application for our 3D design and modeling information exchange forum, a core requirement is to enable users to view and interact with 3D models directly within the app. Research and identify potential 3D viewing frameworks suitable for mobile platform (React Native).

Key considerations:

Make a recommendation for the most suitable framework, providing a justification for the choice.

Issue Due Date

07/10/2024

Reviewer

@oguzkagnici

Revision Due Date

06/10/2024

edonmez01 commented 1 month ago

I conducted some research regarding which 3D viewing framework to use in mobile.

I first investigated whether our first choice, Online 3D Viewer, would be usable in our case. The biggest problem with this 3D viewing engine is that it doesn't support React Native directly, as it is developed as a React module. Despite this, it is theoretically possible to run this module in a React Native application by embedding it in an HTML section which is then fed to React Native as a WebView. However, while trying to do this, I encountered/foresaw three main problems:

With these points in mind, I started to investigate alternative options, and stumbled upon the module react-native-3d-module-view. First of all, as this module is developed directly for React Native, we won't have to deal with the three problems I listed above if we choose to use this module. The module is also fairly easy to use, as I was able to set up an example app within minutes after downloading it, using it to display the 3D model of a hamburger:

image

The only problem I ran into while developing this example app resulted from the fact that the module uses the old Android Support Library, which is deprecated in favor of AndroidX. This problem was solved easily, by only changing two lines in the module's source code.

I should also note that this module supports only 3 file extensions: .obj, .dae and .scn. However, I propose using this module for our mobile app as it seems very fitting for our purposes.

AliAlperenSonmez commented 1 month ago

@edonmez01 Thanks for your research and analysis. The recommended module appears to be valid.

AliAlperenSonmez commented 1 month ago

Seems valid.