GSoC 2021 Implement 3D scene visualization support using Potree and integrate with MapMint

Idea
In this project I will be implementing 3D visualization support and integrate it with MapMint. To obtain 3D visualizations, Potree’s GitHub repository will be considered for this task under the JavaScript language. Using Potree I will be integrating the 3D visualizations to MapMint. The dataset for this work being provided through OpenDroneMap, containing files of the type .obj, .las and .ply. These files are of the UAV imagery format and can be loaded on browsers through Potree’s tools and loaders. This will be followed by adding a switcher tab as an addon feature to visualize the OpenLayersMap and 3D visualization. Using this, the user will be able to visualize the 3D scene of a corresponding Georeferenced image.

Project proposal
My proposal for GSoC 2021 got accepted! Link.

Advantages from this project
The implementation of 3D visualization support to Mapmint will be fruitful to the users to obtain 3D visuals of a specific georeferenced data. This enables the users to view any specific scene from the chosen georeferenced data through different perspectives and angles. Example : For instance, consider obtaining a 3D visualization of a multistorey Apartment or a mountain. In order to obtain a descriptive analysis and the visuals of corresponding georeferenced scenes, the user will be able to view the Multistorey Apartment or the Mountain as per their considerations in reference to it’s height and altitude respectively with 3D support.

Link to Github repository:

17th May - 7th June
Community bonding period:
 * 1) Tasks carried out during this period
 * Introduced myself and about my project in the OSGeo SoC mailing List.
 * Created my OSGeo Profile Page and filled in my personal details.
 * Updated my project information on the Wiki Page.
 * Updated the GSoC 2021 Accepted Students Page by adding my User Page, Project Wiki Page and GitHub Repository Links.
 * Had a mentor meeting and interacted with mentors and my partners.
 * Discussed with my mentors about the next steps I should take regarding my project.
 * General discussion regarding any doubts with my partners and mentors on the project Slack channel.

Week 1 (7th June - 13th June)

 * Noticed an error that in the r -cran.yml, which is a necessary file needed during MapMint installation. So created a Pull Request for adapting the change in the automated proxy file versions – update_r-cran_version.py
 * Setup MapMint successfully on my machine.
 * Read about different 3D file formats Cesium takes into consideration for visualization
 * Created a documentation for setting up MapMint on OSGeo Live VM.
 * Gone through the Distiller and visualized some 2D GIS data on MapMint.
 * Discussion with my mentors regarding development of project.

Week 2 (14th June - 20th June)

 * Prepared a script for loading data locally to cesium ion assets.
 * Created a basic UI for the same taking inputs from user. File format: CityGML, las, terrain, imagery
 * Worked on backend for connecting API and form.
 * Learning about ZOO-services for integration purpose with MapMint.
 * Gone through ZOO Project Documentation.

Week 3 (21st June - 27th June)

 * Setup MapMint and ZOO-Project instance with Docker on my Ubuntu 20.04 LTS successfully.
 * Created a documentation regarding the same.
 * Learning about ZOO Services for further work regarding project.

Week 4 (28th June - 4th July)

 * Studied the 2017 Workshop for creating first zoo services
 * Generalizing the Cesium API written in JS for loading files to visualize the corresponding 3D view.
 * Working on Creating Zoo-Services in JavaScript for the same.
 * General Discussion with mentors regarding ZOO Services.

Week 5 (5th July - 11th July)

 * Working on creating ZOO Configuration File for Loading 3D data to Cesium Dashboard.
 * Working on creating JS script for as the Service Provider.
 * Studied about OGC API and read content regarding Web Processing Services.

Week 6 (12th July - 18th July)

 * Worked on setting up homepage for loading the 3D TileSet along with Cesium script.
 * Working on establishing the Zoo Service configuration file.
 * Had a mentor-meeting where discussion regarding Zoo Services took place.

Week 7 (19th July - 25th July)

 * Setup CesiumJS client inside the working Repository
 * Added volumes under zoo-kernel for loading the template
 * Created a function for rendering model of 3D format
 * Testing models of different file formats with CesiumJS on MapMint instance

Week 8 (26th July - 1st August)

 * Added Code for developing UI of 3D Viewer.
 * Working on loading the preview of existing 3D models on webpage.
 * Added volumes to the docker-compose file.

Week 9 (2nd August - 8th August)

 * Completed frontend/UI for MapMint 3D Viewer.
 * Added Featured Demos.
 * Successfully rendering the 3D Models on the page.
 * Worked on the documentation for the same.

Student's Biography
Hi, this is Aryan Kenchappagol currently a Computer Science Engineering undergrad from International Institute of Information Technology Pune, Maharashtra, India working as a student developer under GSoC 2021 for OSGeo.

Mentors

 * Sittichai ChoosumrongSittichai Choosumrong
 * Fenoy Gerald Fenoy Gerald
 * Venkatesh Raghavan Venkatesh Raghavan
 * Rajat Shinde Rajat Shinde
 * Samuel Souk aloun