Coder Social home page Coder Social logo

peterzs / interactive_thin_shells_bachelor_thesis Goto Github PK

View Code? Open in Web Editor NEW

This project forked from plusminus34/interactive_thin_shells_bachelor_thesis

0.0 0.0 0.0 67.81 MB

Guess what, it's my bachelor thesis

C++ 80.35% C 8.68% Objective-C 0.05% Lua 0.01% OpenEdge ABL 8.13% Mathematica 2.02% OpenSCAD 0.01% CMake 0.55% GLSL 0.20% Batchfile 0.02%

interactive_thin_shells_bachelor_thesis's Introduction

Interactive design of complex objects from thin shells - Bachelor Thesis

This repo contains my bachelor thesis. It's about bending/cutting/connecting a virtual sheet of paper. I remember it as being fun to do, though the cutting tool had me wrangle with a few (literal) corner cases.

The report is bachelor_thesis_wiggerl.pdf in the main folder here.

What follows is the README from the original project, in case you want to give it a try.

Simulation and Control Playground

Table of Contents

Getting Started

Windows

If you are on Windows, you can use the easyFirstSetup.cmd script. It gets the required thirdparty dependencies and runs cmake.

  1. (clone this repository)
  2. Install Visual Studio: https://www.visualstudio.com/
  3. Install CMake: https://cmake.org/download/
  4. Run easyFirstSetup.cmd (e.g. by double clicking the script)

Now there is a folder build where you can find the Visual Studio solution SCP.sln. Open it in Visual Studio and build!

Mac OS and Linux

There is no easyFirstSetup script for Mac OS or Linux. You will have to obtain and compile the thirdparty libraries yourself, following the guide below.

Build

This section describes how to get the thirdparty libraries and set up the build system. The build system of SCP uses CMake and git submodules (where possible). Libraries that are not cloned via git submodules need to be obtained and compiled by the user, as described below.

First make sure you have git and cmake:

Thirdparty Libraries

Windows

Note: For Windows users, there is a convenience repository that contains all the required precompiled thirdparty libraries: https://bitbucket.org/scoros/libs. You can clone this repository and put it in the same folder as your SCP repository: folder/scp, folder/libs. The CMake scripts will always first check the folder/libs for thirdparty libraries.

Linux (Mac OS, untested)

This guide will be for Ubuntu or other debian-based distros.

Graphics

Depending on your system, you should install the correct OpenGL libraries, e.g.: sudo apt-get install xorg-dev libglu1-mesa-dev

Blas / Lapack

sudo apt install libblas3 libblas-dev liblapack3 liblapack-dev

Gfortran

sudo apt install gfortran

GTest

sudo apt install libgtest-dev

Build the gtest libraries and copy them to /usr/local/lib/:

cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
# copy or symlink libgtest.a and libgtest_main.a to your /usr/local/lib folder
sudo cp *.a /usr/local/lib
MA27
  1. Get MA27 from http://www.hsl.rl.ac.uk/download/MA27/1.0.0/a/
  2. Build it:
./configure
make 
sudo make install
OOQP
  1. Get OOQP from http://pages.cs.wisc.edu/~swright/ooqp/download/
  2. Apply OOQP hash patch:
    1. Get it from https://gitlab.ethz.ch/snippets/24 (click on the download icon, save as OOQP_hash.patch)
    2. Apply patch to OOQP folder: patch -p0 < OOQP_hash.patch
  3. Build OOQP:
MA27LIB=/usr/local/lib/libma27.a ./configure
make
sudo make install
ODE
  1. Get ode-0.13 from https://sourceforge.net/projects/opende/files/ODE/0.13/.
  2. Build it:
 	CXXFLAGS=-fpermissive ./configure
   	make
   	sudo make install
FreeType (https://www.freetype.org/):

sudo apt install libfreetype6 libfreetype6-dev

Compilation

  1. Clone this repository
  2. Run git submodule update --init --recursive
  3. Generate build files. In the cloned folder do:
mkdir build && cd build
cmake -DNANOGUI_USE_GLAD=1 ..

NANOGUI_USE_GLAD makes sure we use glad.

  1. Compile
make -j12

Notes: If your GPU driver can't create a OpenGL context in compatability mode, run CMake with SCP_GUI_TWO_WINDOWS=1 cmake ..

interactive_thin_shells_bachelor_thesis's People

Contributors

james-bern avatar moritzge avatar plusminus34 avatar roipo avatar sduenser avatar simonzi92 avatar steliancoros avatar wiggerl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.