Coder Social home page Coder Social logo

visualizer's Introduction

Montana's Visualizer

image of visualizer

video of the visualizer

Instructions:

  1. Download the zip file for either the ios or windows build (see above).
  2. Unzip it and launch the application
  3. Shapes are changed at the bottom, and the different menus will give you the ways you can modify the model.

Documentation

Overview

Montana's visualizer is formatted for mobile in a vertical layout and designed with minimal screen space for the menu options.

At the bottom of the screen, a user can choose to visualize a cube, sphere, or a cylinder by clicking on the buttons Montana designed herself. The shapes are turned on and off with activation, and whether or not the shape is active determines if it is affected by the properties the user changes.

A user can translate the shape by directly moving it around with their mouse. They can adjust the scale and rotation using the sliders in the Scale/Rotate menu.

A user can change the material of the shape being visualized to be a diffuse green default, a metallic material, or any of the textures Montana created with her own photographs.

Beyond changing the material and transform of the object, a user can also move the camera with the camera settings menu.

Finally, a user can choose a between a variety of directional lights for their scene.

Performance Optimization

To optimize performance, the texture sprites on the material buttons have been significantly compressed to a max size of 64 and a low quality compression. Additionally, all of the textures being applied to shapes used crunch compression to improve performance.

Challenges

One of my first challenges was getting access to activating and deactivating the shapes from the buttons. I originally added a script to all of the shape buttons, but this meant I could not use Find() to find a deactivated game object since they all would call the Start() function. To get around this, I decided to have an ObjectActivationManager as an empty GameObject that would have the script component, so that the buttons could call the manager to activate the correct shape. I then applied this same design pattern to the PropertiesMenuManager which held all of the script components for changing the properties.

The other main challenge I encountered was trying to be intentional about laying out my buttons so that they would fit responsively. I carefully used Vertical and Horizontal Layouts to get the nested behavior.

visualizer's People

Contributors

montanafowler avatar

Watchers

 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.