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

Idea
In this project, I plan to add a 3D scene Visualisation support and integrate it with MapMint. It will allow the user to visualize not only the georeferenced image but also the corresponding 3D scene. I will be using Potree, a free, open-source WebGL-based point cloud renderer for large point clouds. MapMint is an internet-based Geographic Information System(GIS), designed to facilitate the deployment of Spatial Data Infrastructure(SDI). In an SDI, geographic data, metadata, tools, and the users are connected interactively in a framework to use the spatial information efficiently and flexibly.

The MapMint is built on top of the ZOO-Project. The ZOO-Project is an SDI manager that gives the users the capability to build their own map and web applications.

Project proposal
My proposal for GSoC 2021 can be found at Proposal.

Advantages from this project
With the 3D scene visualization, viewing data in three dimensions gives users new perspectives. 3D viewing can provide insights that would not be readily possible from the same data's georeferenced map. For example, instead of inferring a valley's presence from the configuration of contour lines, users can see the valley and perceive the difference in height between the valley floor and a ridge.

Link to Github repository: Repository

17th May - 7th June
Community bonding period:
 * 1) What I have done and currently doing during this period?
 * I have Introduced myself over the channel and shared my proposal over the mailing list for suggestions.
 * Communicating with mentors and learned about community, working, etc. It is a great experience talking with experts in the domain.
 * Created a wiki page for the project "Implement 3D scene visualization support using Potree and integrate with MapMint."
 * Forked the repository of MapMint Forked Repo
 * Updated wiki User page and added my personal information User Page
 * Updated links on the wiki Google_Summer_of_Code_2021_Accepted page GSOC_2021 Page
 * Joined MapMint Slack Workspace created by mentors, which we will be used as a mode of communication over the GSoC 2021 period.
 * Setting up Developing Environment for MapMint on my personal system.
 * Potree Environment successfully created on my personal system.
 * Currently understanding the codebase.

Week 1 - 4 (8th June - 14th June)
Coding Phase 1: What have I done this week:

This week I accomplished the following:


 * I have successfully installed MapMint.
 * I have also visualized the shapefiles in MapMint and tried to understand how MapMint works.
 * I have also created the video for the visualization of the shapefile in MapMint.
 * I have made the script that stores the 3D data in tile format in cesium.
 * Created a simple front-end for the user to upload the file for visualization.
 * Am I blocked on anything:

Currently, I am not blocked on anything.

Week 1 - 4 (14th June - 20th June)
I have done the tasks during this period :
 * 1. Created the simple backend for uploading the 3D data to the cesium.
 * 2. Created a simple UI for users to interact.
 * 3. Visualize the 3D data, on the browser.
 * 4. For integrating with MapMint, currently learning about the homemade ZOO-Services.
 * 5. Gone through documentation, of zoo-project

Am I blocked on anything?
 * Yes, I am unable to install the zoo-kernel on my machine.

Week 1 - 4 (21st June - 27th June)
What have I done this week:

This week I accomplished the following:


 * Setup MapMint on a docker container on my local machine (Several issues arose during the setup, which took more time).
 * I am learning about creating the service for loading the data to the service.
 * Understanding how service is created.

Week 1 - 4 (28th June - 4th July)
I have done the following tasks during this period :


 * Gone through the workshop for creating the service.
 * Link: https://zoo-project.github.io/workshops/2017/first_service.html
 * Created a script (javascript) for visualizing the 3D object; the script will be used as a service.
 * Also, trying for other formats to be visualized in the 3D View.

Week 1 - 4 (5th June - 11th July)
This week I accomplished the following:


 * I have created a simple python service, I am working on creating a service that will load the data from the user.
 * I am still working on the Zoo Service configuration file needed to create the zoo service to load the file.
 * I am still working on the serviceProvide.py: the python script that will be used to visualize the loaded 3D Model.

Week 1 - 4 (12th June - 18th July)
This week I accomplished the following:
 * I had a meeting with the mentors, where we discussed creating the service.
 * I am still working on the Zoo Service configuration file needed to create the zoo service to load the file.
 * I have created a template file that will be used as a service.Display.tmpl

Week 7 (19th June - 25th July)
This week I accomplished the following:
 * Added a volume to the mapmint container for accessing the template folder.
 * Visualize the 3D Model locally, Working on loading the 3d Model in the mapmint container and visualizing it.
 * Understanding the Cheetah Templating system.
 * Currently creating a template file that will allow users to create a database and upload the data for visualization.

Week 8 (26th June - 2st August)

 * Created the UI using Cheetah template System.
 * Added a volume to the mapmint container for loading the UI.
 * Understanding the Cheetah Templating system.
 * Currently developing a service that will allow the user to load the 3D model to the server and visualize it.

Week 9 (2nd August - 8th August)

 * Added upload page to existing UI for the user to upload the data.
 * Visualize the model on the new UI created.
 * Currently understanding how .htaccess files are created.

Week 10 (9th August - 15th August)

 * Added the 3-D Visualization feature to the Mapmint, Existing Dashboard.
 * Provided the Functionality to upload and visualize the 3D Data.
 * I am currently working on the documentation for the work completed.
 * Also, I thought creating documentation for the technologies I learned during the period (such as the cheetah template system, setting up docker, adding volumes, etc.) would be helpful for future reference.
 * Cleaned up the code and added comments in the code wherever necessary.

Student's Biography
My name is Aniket Deepak Giri. I am a Computer Science graduate, pursuing my Master's degree in Geoinformatics and Natural Resources Engineering under Centre of Studies in Resources Engineering, Indian Institute of Technology Bombay, Mumbai, India. Some more information about me can be obtained by following the link: [User]

Mentors

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