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.
- Use of framework
- As the issue was raised in recent mails, no framework has been used in OGV but it looks necessary to use one for more robust infrastructure. Frameworks provide inbuilt facilities such as authentication module, validations, testing etc., also they save significant time and efforts.
- 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.
- 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 displayed with instruction to take further steps.
- 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.
- Set focus
- As soon as the entity is drawn, it should always in the focus of the camera. One should not need to zoom-in or zoom-out to see it.
- 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.
- Security of application
- OGV's sign-in signup module lacks security and robustness.
- 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.
- User Dashboard
- 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.
- Take ideas from
- https:: //360.autodesk.com/ (Create your account)
- http:: //www.youtube.com/watch?v=aXklwQ8OFY8
- Model Sharing and embedding
- Share option of OGV can be extended such that user could embed his models on their websites, blogs and social websites as suggested by Inderpreet in his recent mails.
- 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.
- BRL-CAD viewerMobile App
- For ideas for BRL-CAD viewer mobile apphttp:: //www.youtube.com/watch?v=Cy7kENzHzao#t=35
- Options to change colours of model
- Currently a model got a random default color when loaded in ThreeJS and user has not control to change it. There should some color options for user to play with.
- http:: //workshop.chromeexperiments.com/examples/gui/#8--Custom-Placement
- http:: //davidwalsh.name/dat-gui
- Login through Google, Facebook, Twitter
- Enabling users to login with their already existing accounts on above sites.
- Realistic models
- Exporting material, color, lightening and other information from .g file and use it to give realistic look to models in ThreeJS.
- Cross section view
- A feature to allow CAD users to see the cross section of the model.
- 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.
- More smoothness of model.
- Representation type. Changing ploygons to something more reliable and robust.
- Making 2D drawings and annotations in OGV. We can use 3D model data to produce 2D drawings. However, for this we may need to use another webGL library. For example, http:: //jonobr1.github.io/two.js/
- Performing analysis in OGV with ThreeJS.
- Writing an API to use BRL-CAD's existing code in OGV.
- Support for other CAD formats.
If you're interested in getting involved, please join the brlcad-devel mailing list and introduce yourself.