Skip to content

Repository files navigation

Dynamic 3D scanner mesh generation

This project is the server program where it receives data from a 3D scanner and dynamically updates a 3D mesh with Marching Cubes.

This program requires data to be sent via TCP, specifically point cloud data. For this purpose, a separate Swift application has been made, which sends point cloud data from the compatible iOS devices to this program. The Swift application can be found here: https://github.com/Reivaxmar/ios-point-cloud-sender.git.

This project is part of my 'Treball de Recerca', a project that must be done in Catalonia for graduating from high school.

Screenshots

Add screenshots...

Usage

Prerequisites

Just some basic stuff:

  • Modern C/C++ compiler
  • CMake installed
  • Compatibilty with OpenGL 4.5

Building the project

Download a zip file or clone the repository:

> git clone \
    https://github.com/Reivaxmar/Dynamic-Marching-Cubes.git \
    Dynamic-Marching-Cubes
> cd Dynamic-Marching-Cubes

Great! Now that the project is downloaded, it must be built:

> bash ./build.sh
> ./MarchingCubes

Now the server and viewer should be up and running.

External libraries

There is no need to have them installed, CMake will do it:

  • GLAD for loading OpenGL
  • GLFW for OpenGL window managing
  • GLM for 3D math utils
  • asio for networking

TODOs

  • Implement distance shader
  • Implement Marching Cubes shader
  • Fix Marching Cubes shader
  • Implement GLwrap library
  • Add network receiving
  • Fix async and bugs on networking
  • Update README.md
  • Do iOS app
  • Fix iOS app
  • Merge iOS app repository
  • Calibrate world position and sphere radius
  • Add screenshots to README.md
  • Explain algorithm in Algorithm.md (or add link to paper)
  • Option for smooth shading (use gradients)
  • Implement TSDF instead of the weird thing we have
  • Add colors / textures

About

A Marching Cubes implementation for per-frame point cloud data

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

Generated from Reivaxmar/cpp-template