Coder Social home page Coder Social logo

adarshrevankar / desktop-simulator Goto Github PK

View Code? Open in Web Editor NEW
17.0 2.0 9.0 26.31 MB

OpenGL project which consists of 3D Environment, to demonstrate assembly and disassembly of desktop parts

License: Apache License 2.0

C 38.42% C++ 61.58%
opengl glut freeglut simulation texture-mapping desktop desktop-parts codeblocks 3d-environment simulator computer-simulator opengl-project vtu desktop-simulator 15csl68 computer-graphics-project

desktop-simulator's Introduction

Desktop Simulator

Inline docs Build Status HitCount

OpenGL project which consists of 3D environment, to demonstrate assembly and disassembly of desktop parts. This uses basic glut library to construct a 3D Scene of CPU and it's components.

Desktop-Simulator-Logo

see Code of Conduct


Demonstration - Youtube

https://youtu.be/VInynN3uoLo


Snapshot

Instance Image
Initial View initial view of system
CPU View cpu view
Desktop View desktop

Setup Project

Windows

  1. Setup the project with required OpenGL headerfiles in your IDE (refer this - Visual Studio or CodeBlocks).
  2. Copy all required header files & data files the project.
  3. Run the project. main.cpp

Note: BMP Image Error - parameter.h change BMP images path to either Relative to project ( Currently ) or Absolute ( if error occurs )

MacOS

Instructions to run on MacOS

Install brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Install necesarry linking libraries

brew install freeglut glfw3 glew lstdc++

Compile project into binary

clang -o main main.cpp -L/usr/local/lib -lglfw -lstdc++ -framework OpenGL -framework GLUT -framework Cocoa

Run the binary

./main

Note: GLUT is getting deprecated on MacOS 10.9 above, so some functionalities might not work. Need to fix these deprecations soon


Controls

  • Up Arrow - Move Forwards
  • Down Arrow - Move Backwords
  • Left Arrow - Move Left Side
  • Right Arrow - Move Right Side
  • Esc - Exit of Program / Exit of CPU View ( according to context )
  • Enter - Enter into CPU View / Disassemble Components ( according to context )
  • Backspace - Assemble components
  • Mouse Hover - Change Camera View & Rotate Person

Requirements

  • (optional) IDE ( Visual Studio / CodeBlocks )*
  • basic C++ Libraries
  • glut.h ( freeglut )

References

  1. Basic 3D World Setup - lighthouse3d.com.
  2. Basic OpenGL function's introduction - khronos.org.
  3. Texture Mapping - youtube.com.
  4. Textbook for understanding structure of OpenGL - Computer Graphics With OpenGL - Donald Hearn & Pauline Baker.

Project Report

Project Report with detailed structure of project.


Questions

Mail / Facebook messages can be done

desktop-simulator's People

Contributors

adarshrevankar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

desktop-simulator's Issues

Restructuring Repository

Repository needed to be restructured so that it can ease developers to run the program.
@Akshaya520

1. Creating seperate C++ files and Header files of it.
2. Group the parts into one folder, assembled env. Unit another folder.

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.