Editing Online Geometry/TODO

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 3: Line 3:
 
Below is a list of potential development activities remaining for the geometry service. No single task should take more than a month of effort to implement.   
 
Below is a list of potential development activities remaining for the geometry service. No single task should take more than a month of effort to implement.   
  
=GSoC 2016 Task List=
+
=GSoC 2016=
 
'''github branch structure (proposed)'''<br/>
 
'''github branch structure (proposed)'''<br/>
 
developer branch - <name>_dev<br/>
 
developer branch - <name>_dev<br/>
Line 11: Line 11:
 
Product release at the end of midterm and final term (official)<br/>
 
Product release at the end of midterm and final term (official)<br/>
 
Merge student branch at every product release<br/>
 
Merge student branch at every product release<br/>
{| {{prettytable}}
 
! Task status
 
|-
 
| style="background:#FFC7CA;"| Not Done
 
|-
 
| style="background:#FAF8C5;"| In Progress
 
|}
 
 
 
{| {{prettytable}}
 
{| {{prettytable}}
 
|   
 
|   
! Tag !! Short Description !! Priority
+
! Tag !! Description !! Priority
 
|-
 
|-
 
! Community Bonding  
 
! Community Bonding  
Line 34: Line 26:
 
| style="background:#FFC7CA;"|Code Integration
 
| style="background:#FFC7CA;"|Code Integration
 
| style="background:#FFC7CA;"|Merge and clean code from GSOC15-merged to master, remove branches
 
| style="background:#FFC7CA;"|Merge and clean code from GSOC15-merged to master, remove branches
! P0
+
! style="background:#FFC7CA;"|P0
 
|-
 
|-
 
|
 
|
 
| style="background:#FFC7CA;"|Deployment
 
| style="background:#FFC7CA;"|Deployment
 
| style="background:#FFC7CA;"|Deploy initally the update master branch. Do not make it public
 
| style="background:#FFC7CA;"|Deploy initally the update master branch. Do not make it public
! P0
+
! style="background:#FFC7CA;"|P0
 
|-
 
|-
 
|
 
|
 
| style="background:#FAF8C5;"|Refactor Database
 
| style="background:#FAF8C5;"|Refactor Database
 
| style="background:#FAF8C5;"|Only where needed
 
| style="background:#FAF8C5;"|Only where needed
! P0
+
! style="background:#FAF8C5;"|P0
 
|-
 
|-
 
! Social Integration
 
! Social Integration
 
| style="background:#FAF8C5;"|Like, Share, Comment
 
| style="background:#FAF8C5;"|Like, Share, Comment
 
| style="background:#FAF8C5;"|UI/UX Improvement
 
| style="background:#FAF8C5;"|UI/UX Improvement
! P0
+
! style="background:#FAF8C5;"|P0
 
|-
 
|-
 
|
 
|
 
| style="background:#FAF8C5;"|Following users
 
| style="background:#FAF8C5;"|Following users
 
| style="background:#FAF8C5;"|Primarily UX related issues
 
| style="background:#FAF8C5;"|Primarily UX related issues
! P0
+
! style="background:#FAF8C5;"|P0
 
|-
 
|-
 
|
 
|
 
| style="background:#FAF8C5;"| Dashboard
 
| style="background:#FAF8C5;"| Dashboard
 
| style="background:#FAF8C5;"|UI improvement and database query issues
 
| style="background:#FAF8C5;"|UI improvement and database query issues
! P0
+
! style="background:#FAF8C5;"|P0
 
|-
 
|-
 
|
 
|
 
| style="background:#FFC7CA;"|Notifications
 
| style="background:#FFC7CA;"|Notifications
 
| style="background:#FFC7CA;"|User must get notified of things
 
| style="background:#FFC7CA;"|User must get notified of things
! P1
+
! style="background:#FFC7CA;"|P1
 
|-
 
|-
 
! Model Lifecycle
 
! Model Lifecycle
 
| style="background:#FFC7CA;"|Publish Control
 
| style="background:#FFC7CA;"|Publish Control
 
| style="background:#FFC7CA;"|User can keep data private or publish it publically
 
| style="background:#FFC7CA;"|User can keep data private or publish it publically
! P0
+
! style="background:#FFC7CA;"|P0
 
|-
 
|-
 
! View Models
 
! View Models
 
| style="background:#FFC7CA;"|Large files*
 
| style="background:#FFC7CA;"|Large files*
 
| style="background:#FFC7CA;"|Laptop freezes, unable to finish the conversion
 
| style="background:#FFC7CA;"|Laptop freezes, unable to finish the conversion
! P0
+
! style="background:#FFC7CA;"|P0
 
|-
 
|-
 
|
 
|
 
| style="background:#FFC7CA;"|UI/UX
 
| style="background:#FFC7CA;"|UI/UX
 
| style="background:#FFC7CA;"|Improve user experience at view model page
 
| style="background:#FFC7CA;"|Improve user experience at view model page
! P0
+
! style="background:#FFC7CA;"|P0
 
|-
 
|-
 
|
 
|
 
| style="background:#FFC7CA;"|Thumbnails*
 
| style="background:#FFC7CA;"|Thumbnails*
| style="background:#FFC7CA;"|Thumbnail generation from the model view itself (phantomJS)
+
| style="background:#FFC7CA;"|Thumbnail generation from the model view itself
! P1
+
! style="background:#FFC7CA;"|P1
 
|-
 
|-
 
|
 
|
 
| style="background:#FAF8C5;"|Manage views
 
| style="background:#FAF8C5;"|Manage views
| style="background:#FAF8C5;"|Look for other technologies or improve existing (datGUI)
+
| style="background:#FAF8C5;"|Look for other technologies or improve existing
! P1
+
! style="background:#FAF8C5;"|P1
 
|-
 
|-
 
|
 
|
 
| style="background:#FFC7CA;"|Enable color*
 
| style="background:#FFC7CA;"|Enable color*
 
| style="background:#FFC7CA;"|Enable upload of models with color parameters
 
| style="background:#FFC7CA;"|Enable upload of models with color parameters
! P0
+
! style="background:#FFC7CA;"|P0
 
|-
 
|-
 
! Admin Panel
 
! Admin Panel
 
| style="background:#FFC7CA;"|User Tables
 
| style="background:#FFC7CA;"|User Tables
 
| style="background:#FFC7CA;"|All data and navigation
 
| style="background:#FFC7CA;"|All data and navigation
! P2
+
! style="background:#FFC7CA;"|P2
 
|-
 
|-
 
|
 
|
 
| style="background:#FFC7CA;"|Push Notifications
 
| style="background:#FFC7CA;"|Push Notifications
 
| style="background:#FFC7CA;"|The ability to notify users via mail, or web-app notification
 
| style="background:#FFC7CA;"|The ability to notify users via mail, or web-app notification
! P1
+
! style="background:#FFC7CA;"|P1
 
|-
 
|-
 
|
 
|
 
| style="background:#FFC7CA;"|Blog or news page
 
| style="background:#FFC7CA;"|Blog or news page
 
| style="background:#FFC7CA;"|News and blog updates by brlcad admin
 
| style="background:#FFC7CA;"|News and blog updates by brlcad admin
! P2
+
! style="background:#FFC7CA;"|P2
 
|-
 
|-
 
! User
 
! User
 
| style="background:#FAF8C5;"|Temporary User
 
| style="background:#FAF8C5;"|Temporary User
| style="background:#FAF8C5;"|Upload and view your Models without sign-in  
+
| style="background:#FAF8C5;"|View Models without sign-in
! P1
+
! style="background:#FAF8C5;"|P1
 
|-
 
|-
 
! Security
 
! Security
 
| style="background:#FFC7CA;"|Publication/Subscription
 
| style="background:#FFC7CA;"|Publication/Subscription
 
| style="background:#FFC7CA;"|Check safe publication-subscription workflow
 
| style="background:#FFC7CA;"|Check safe publication-subscription workflow
! P2
+
! style="background:#FFC7CA;"|P2
 
|}
 
|}
  
: * High priority hard level problems to look at.
+
* High priority medium-hard level problems to look at.
: # P0 tasks - 10<br/>
 
: # P1 tasks - 5<br/>
 
: # P2 tasks - 3<br/>
 
  
 
=New Features=
 
=New Features=
Line 132: Line 121:
  
 
::  Currently, OGV is lacking an important feature of user dashboard. At present user cannot see his previously uploaded files. We need to design the workspace for user where he can add, delete and share files among developers, recent activity etc. Just like Google drive or cloud service he should be able to create folders, categorize files according to project(s) and much more.
 
::  Currently, OGV is lacking an important feature of user dashboard. At present user cannot see his previously uploaded files. We need to design the workspace for user where he can add, delete and share files among developers, recent activity etc. Just like Google drive or cloud service he should be able to create folders, categorize files according to project(s) and much more.
:: <span style="color:red">'''update'''</span>- User can see his previously uploaded files, and even the files uploaded by the user he follows. There are some UI/UX issues but the backend development is complete.
 
  
 
: Inspiration:
 
: Inspiration:
Line 141: Line 129:
  
 
::  Share option of OGV can be extended such that user could embed his models on their websites, blogs and social websites as discussed in recent mails.  
 
::  Share option of OGV can be extended such that user could embed his models on their websites, blogs and social websites as discussed in recent mails.  
:: <span style="color:red">'''update'''</span>- iframes are available and is functional at the backend level, but is buggy. The navbar, notification div, datGUI div and other icons also come in the iframe. This needs to be fixed. Only the div that consists of the model needs to get embedded.
 
  
 
: ''' Comments on model '''
 
: ''' Comments on model '''
  
 
::  A feature to enable users to comment on their own and shared models. This would help a lot in collaborating viewing, and after some time, collaborative editing. Even we can add chat for easy experience.
 
::  A feature to enable users to comment on their own and shared models. This would help a lot in collaborating viewing, and after some time, collaborative editing. Even we can add chat for easy experience.
:: <span style="color:red">'''update'''</span>- Likes and comments have been added to the models in online geometry viewer
 
  
 
: ''' BRL-CAD viewer: Mobile App '''
 
: ''' BRL-CAD viewer: Mobile App '''
  
 
::  For ideas for BRL-CAD viewer mobile app: http://www.youtube.com/watch?v=Cy7kENzHzao#t=35
 
::  For ideas for BRL-CAD viewer mobile app: http://www.youtube.com/watch?v=Cy7kENzHzao#t=35
:: <span style="color:red">'''update'''</span>- Meteor as a framework is mobile-friendly, therefore it is easy to reproduce it to mobile devices. There is a need to check for responsiveness in recently created/changed pages (newsfeed, profile page, model viewer page etc.)
 
  
 
: ''' Options to change colours of model '''
 
: ''' Options to change colours of model '''
Line 160: Line 145:
 
* http://workshop.chromeexperiments.com/examples/gui/#1--Basic-Usage
 
* http://workshop.chromeexperiments.com/examples/gui/#1--Basic-Usage
 
* http://davidwalsh.name/dat-gui
 
* http://davidwalsh.name/dat-gui
 
:: <span style="color:red">'''update'''</span>- datGUI has been integrated with OGV with options like ambient, emissive, wireframe, opacity, transparent, shininess and a few others. This can be expanded to add colors to specific layers of the uploaded model, which becomes a hard problem - low priority problem. There is a need to add the colors from the parent g file to the converted obj file.
 
  
 
: ''' Login through Google, Facebook, Twitter '''
 
: ''' Login through Google, Facebook, Twitter '''
  
 
::  Enabling users to login with their already existing accounts on above sites.
 
::  Enabling users to login with their already existing accounts on above sites.
:: <span style="color:red">'''update'''</span>- Done
 
  
 
: ''' Realistic models '''
 
: ''' Realistic models '''
  
 
::  Exporting material, color, lightening and other information from .g file and use it to give realistic look to models in ThreeJS.
 
::  Exporting material, color, lightening and other information from .g file and use it to give realistic look to models in ThreeJS.
:: <span style="color:red">'''update'''</span>- This has been done using ThreeJS and datGUI.
 
  
 
: ''' Cross section view '''
 
: ''' Cross section view '''
  
 
::  A feature to allow CAD users to see the cross section of the model.
 
::  A feature to allow CAD users to see the cross section of the model.
:: <span style="color:red">'''update'''</span>- cross section view has not been implemented and how it needs to be done is yet to be decided.
 
 
  
 
=Enhancements=
 
=Enhancements=
Line 184: Line 163:
  
 
::  As the issue was raised in recent mails, OGV needs framework for more robust infrastructure. Frameworks provide inbuilt facilities such as authentication module, validations, testing etc., also they save significant time and efforts. Laravel and node.js were proposed during discussions but you can propose another one if you feel it is more suitable for this project.
 
::  As the issue was raised in recent mails, OGV needs framework for more robust infrastructure. Frameworks provide inbuilt facilities such as authentication module, validations, testing etc., also they save significant time and efforts. Laravel and node.js were proposed during discussions but you can propose another one if you feel it is more suitable for this project.
:: <span style="color:red">'''update'''</span>- OGV has been developed using the Meteor Framework.
 
  
 
: ''' Security of application '''
 
: ''' Security of application '''
  
 
::  OGV is using simple sign-in signup module but it is not much secure and lack robustness which need a fix. It is using swift mailer library for email sending. If we adopt some framework for this project, it can be easily done.
 
::  OGV is using simple sign-in signup module but it is not much secure and lack robustness which need a fix. It is using swift mailer library for email sending. If we adopt some framework for this project, it can be easily done.
:: <span style="color:red">'''update'''</span>- Handled by the use of Meteor framework.
 
  
 
: ''' Add prefix to obj files '''
 
: ''' Add prefix to obj files '''
  
 
::  All obj files of different .g files are stored in same directory and conflicts may occur when if two OBJs from different .g files have same name. It can be fixed by editing code so that each time when obj created, a prefix of its database is added to its name.  
 
::  All obj files of different .g files are stored in same directory and conflicts may occur when if two OBJs from different .g files have same name. It can be fixed by editing code so that each time when obj created, a prefix of its database is added to its name.  
:: <span style="color:red">'''update'''</span>- All the object files are identified by a unique ID in the mongo Database.
 
  
 
: ''' Loader indication '''
 
: ''' Loader indication '''
  
 
::  While entity loads, some indication / status about "loading" should appear. If entity loaded successfully, a confirmation message should be given to user and if entity already loaded, a user friendly message should be displayed otherwise if error occurred appropriate message should be given with instruction to take further steps.
 
::  While entity loads, some indication / status about "loading" should appear. If entity loaded successfully, a confirmation message should be given to user and if entity already loaded, a user friendly message should be displayed otherwise if error occurred appropriate message should be given with instruction to take further steps.
:: <span style="color:red">'''update'''</span>- A loader is required to indicate that the object is being converted. Until the object is fully converted, the user must not proceed further. Confirmation messages have been added. Minimal changes needed in the alert messages.
 
  
 
: ''' OBJ search '''
 
: ''' OBJ search '''
  
 
::  Before drawing an entity, a search should be made in 'obj' directory of corresponding user to check whether the required obj file is already made. If file found, it should be loaded, otherwise new should be generated.
 
::  Before drawing an entity, a search should be made in 'obj' directory of corresponding user to check whether the required obj file is already made. If file found, it should be loaded, otherwise new should be generated.
:: <span style="color:red">'''update'''</span>- One can search uploaded object files from the entire object database. This has been implemented. Additionally, search for users (by username) was also been added.
 
  
 
: ''' Set focus '''
 
: ''' Set focus '''
  
 
::  At present position of camera is fixed and sometimes size of entity is too small or too big. In either case, user have to find it by zoom-in / zoom-out. As soon as the entity is drawn, it should always in the focus of the camera. Either the position of camera should be adjustable according to size of entity or there must be option of scaling.
 
::  At present position of camera is fixed and sometimes size of entity is too small or too big. In either case, user have to find it by zoom-in / zoom-out. As soon as the entity is drawn, it should always in the focus of the camera. Either the position of camera should be adjustable according to size of entity or there must be option of scaling.
:: <span style="color:red">'''update'''</span>- Has been completed more or less. The model viewer page needs a considerable amount of changes in UI/UX.
 
  
 
: ''' Configuration form '''
 
: ''' Configuration form '''
  
 
::  A global configuration file is made to set different variables. User can change value of variables in that configuration file rather than editing individual files. Now this file should be written through a web form.
 
::  A global configuration file is made to set different variables. User can change value of variables in that configuration file rather than editing individual files. Now this file should be written through a web form.
:: <span style="color:red">'''update'''</span>- A configuration form for models was implemented.
 
  
 
: ''' GUI '''
 
: ''' GUI '''
  
 
::  OGV needs better GUI. Simple and clean rich of features. Use of buttons, icons, menus, radio buttons, drop down lists to make it easier for users to find the functions they want. Principles of GUI design must be considered during planing and implementing phase. Look at following services for ideas:
 
::  OGV needs better GUI. Simple and clean rich of features. Use of buttons, icons, menus, radio buttons, drop down lists to make it easier for users to find the functions they want. Principles of GUI design must be considered during planing and implementing phase. Look at following services for ideas:
:: <span style="color:red">'''update'''</span>- This is one of the most important areas of focus for Online Geometry Viewer. The work regarding this is incomplete at many levels. One must also need to check the overall user experience at all levels (login, uploading, viewing, social collaboration etc.).
 
  
 
{|
 
{|
Line 239: Line 210:
 
= Bugs =
 
= Bugs =
 
* Data from upload_file.php is transferred to model_display.php through URL by GET method of PHP. When the length of GET method is exceeded by a certain limit, OGV stops. It happens mostly in the case of large models. We need a reliable method for transfer of data to resolve this serious issue.
 
* Data from upload_file.php is transferred to model_display.php through URL by GET method of PHP. When the length of GET method is exceeded by a certain limit, OGV stops. It happens mostly in the case of large models. We need a reliable method for transfer of data to resolve this serious issue.
: <span style="color:red">'''update'''</span>- This is also a primary area of focus at the present moment. There are quite a decent number of features that have gone in OGV, but needs bug-fixes. Bug-fixes is a more important issue as compared to introducing enhancements.
 
  
 
= Research work =
 
= Research work =

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)

Templates used on this page: