Editing User:Inderpreet/OGV Proposal

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 9: Line 9:
  
 
===Background Information===
 
===Background Information===
I study in 4th year B.Tech (Computer Science and Engineering) at Guru Nanak Dev Engineering College, Ludhiana (India). I was introduced to this community about a year ago and have tried to help with whatever I could. I can write in C++, PHP, Python, Javascript.
+
I study in 4th year B.Tech (Computer Science and Engineering) at Guru Nanak Dev Engineering College, Ludhiana (India). I was introduced to this community about a year ago and have tried to help with whatever I could. I can speak in C++, PHP, Python, Javascript.
  
 
==Project Information==
 
==Project Information==
 
===Project Vision===
 
When we built our initial HTML web pages in 90s we din't have an <img> tag. Just a few years back Video was a foreign element added via third party plugins. Today images,videos and audio all have become first class citizens of the web. HTML 5 has introduced many new members to the family. Canvas, WebGL and SVG being few of them. These technologies allow us to manipulate and access 2d and 3d graphics right in the browser. Today we have incredible power in our hands when it comes to handling graphics on web. Even with technologies like WebGL, 3D graphics have not yet become a part of our daily web experience. I believe in OGV as one of those platforms that will make sharing 3D models on the web as normal as sharing videos on youtube or images on flickr.
 
  
 
===Brief Summary===
 
===Brief Summary===
Online Geometry Viewer started as a GSoC 2013 project by Harmanpreet Singh. It's an online 3D geometry viewer that works on WebGL using three.js. It uses vanilla PHP on server side whereas jQuery and Bootstrap on the front-end. To give it a robust foundation, the community discussed about changing it's backend to something more powerful. I took an active part in that discussion and the community ended up with choosing node.js as a replacement for the current PHP based backend. After looking at various frameworks I decided to go for [https://www.meteor.com/ meteor]. Reason for this choice is that meteor has a comparatively larger community which means more support, bugs are removed quickly and more code to learn from. So first step would be porting the current app to node js after that we can improve on previous features and add new features. I have prepared a list of improvements and features that I will add to OGV this summer.  
+
Online Geometry Viewer started as a GSoC 2013 project by Harmanpreet Singh. It's an online 3D geometry viewer that works on WebGL using three.js. For the server side purposes currently it uses vanilla PHP and jQuery, Bootstrap on the front-end. To give it a robust foundation, the community discussed about changing it's backend to something more powerful. I was part of that discussion and I gave my views. We all agreed on node.js to be a replacement for the current PHP based backend. We also agreed to use a Full Stack node.js framework such as derby or meteor. After looking at various frameworks I have decided to go for [https://www.meteor.com/ meteor]. Reason for this choice is that meteor has a comparatively larger community which means more support, bugs removed quickly and more code to learn from. Then there's a list of things that need to be improved in current OGV and a list of features that need to be added.
  
 
'''Things that I will Improve on: -'''
 
'''Things that I will Improve on: -'''
Line 30: Line 27:
 
* Sharing & Embedding Feature
 
* Sharing & Embedding Feature
 
* Image alternatives for 3D Models (Requested by Mediawiki)
 
* Image alternatives for 3D Models (Requested by Mediawiki)
* More Geometry conversions.
+
* More Geometry Conversions.
  
 
==Detailed Project Description==
 
==Detailed Project Description==
Line 65: Line 62:
 
* [http://docs.meteor.com/#accounts_api Accounts API] for handling accounts.
 
* [http://docs.meteor.com/#accounts_api Accounts API] for handling accounts.
 
* [http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol Secure Remote Password Control] Support.  
 
* [http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol Secure Remote Password Control] Support.  
* [http://docs.meteor.com/#meteor_loginwithexternalservice oAuth] for '''logging in with various services such as facebook, twitter etc'''.
+
* [http://docs.meteor.com/#meteor_loginwithexternalservice oAuth] for logging in with various services such as facebook, twitter etc.
 
* The Accounts UI provided by meteor for user interface
 
* The Accounts UI provided by meteor for user interface
 
And this all comes as one package with meteor.
 
And this all comes as one package with meteor.
Line 73: Line 70:
  
 
====User Experience and User Interface====
 
====User Experience and User Interface====
I am passionate about creating good interfaces. More than eye-candiness I care for the experience that user gets. To make things easy for the user. Then the second part of User Interface design is about prompting users to take actions. To make sign up buttons that no one can ignore but click. I will use bootstrap as underlying framework which I will edit to customize it specifically for OGV.  
+
I am passionate about creating good interfaces. More than eye-candiness I care for the experience that user gets. To make things easy for the user. Then the second part of User Interface design is about prompting users to take actions. To make sign up buttons that no one can ignore but click. I will use bootstrap as underlying framework which I will edit to customize it specifically for OGV. I will be soon uploading pictures of mockups under this heading so stay tuned.  
*I tend to make a very clean and minimal Interface, where the whole focus is on the content. I have chosen flat icons, and a '''mobile-first''' interface.
 
[[File:Ogv_viewer.png]]
 
*The front page will provide users an option to Sign In/ Sign Up and also showcase the ability of OGV. The text abive Form is an embedded model from OGV. We can use any 3D model here. It showcase what OGV can do, not just by writing but doing it. It gives user a chance to play with a model, even before he signs up. I believe that will lead to more people signing up.
 
[[File:OGV_Sign_in.png]]
 
* When we hover on the above model, it will highlight the various options that user can perform without even logging in. Comments cannot be added but read without signing in.
 
[[File:Ogv_sign_in_hovered.png]]
 
* Sign up page is same as that of sign in page.
 
[[File:Ogv_sign_up_hovered.png]]
 
* This is how upload page may look, using dropzonejs a drag and drop interface for uploading files can be created.
 
[[File:Ogv_uploader.png]]
 
* I will use [http://lab.hakim.se/ladda/ Hakim.se's] in-button progress bar for uploading. The button itself turns into a progress bar showing percentage of file uploaded.
 
[[File:Ogv_uploading_btn.png]]
 
* File manager shows all the files that the user has uploaded at one place. Clicking on these files take the user to full screen viewer.
 
[[File:Ogv_file_manager.png]]
 
  
These are just the early rough mockups and not the exact design so it's not pixel perfect. I try to make pixel perfect designs using grids and various design prinicples. I have also not made a mock-up for each and every page as that would require more thought to be put into and more feedback from community. I have a good knowledge about
+
// more awesome content coming ...
* Color Theory
 
* Typography
 
* Emotions in Design
 
* Transitional Design
 
* Responsive Design
 
 
 
OGV's design will follow all these principles + look great.
 
  
 
===New Features to be added===
 
===New Features to be added===
Line 187: Line 163:
 
==Why BRL-CAD?==
 
==Why BRL-CAD?==
 
I have been in this community for a year. I have always been encouraged here to share Ideas without hesitation and other community members have helped me even If I ask or do something stupid. I love the openness one gets in this community and I have lots of friends here.
 
I have been in this community for a year. I have always been encouraged here to share Ideas without hesitation and other community members have helped me even If I ask or do something stupid. I love the openness one gets in this community and I have lots of friends here.
 +
 +
==Project Vision==
 +
When we built our initial HTML web pages more than a decade ago the <img> tag was not there. Video was not the part of technologies that build web just few years ago. Today images, videos and audio all are part of our daily web experience and the technologies used to build that experience. HTML 5 has introduced many new members to the family, Canvas and WebGL being one of them. These technologies allow us to manipulate and access 2d and 3d graphics right in the browser. Technology is there we just need to use it. I honestly believe OGV as one of those platforms that will bring sharing 3D models on the web as normal as sharing videos on youtube or images on flickr. Also with affordable 3D printers making it to the market, Computer Aided Design has found a new definition. Anyone can create product prototypes right in their home easily and quickly creating a new breed of inventors and innovators. These creatives would like to share their models to others and get inspired from other's models. OGV would provide such one open source platform for them.
  
 
==Why Me?==
 
==Why Me?==
Line 193: Line 172:
 
* I have tried communicating as much as I can in mailing lists and IRC.
 
* I have tried communicating as much as I can in mailing lists and IRC.
 
* I have and will try to help others as much as I could.
 
* I have and will try to help others as much as I could.
* I have planned to work on OGV even after GSoC.
+
* I am not interested in OGV just for GSoC, I was interested in it before GSoC and will be interested in it during and after GSoC.
  
 
==References==
 
==References==

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)