Editing User:Mitchdraft/GSoC15/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 1: | Line 1: | ||
− | |||
− | |||
Line 9: | Line 7: | ||
*'''IRC username''': mitch | *'''IRC username''': mitch | ||
*'''Contact Number''': 508-838-1960 | *'''Contact Number''': 508-838-1960 | ||
− | *''' | + | *'''Blog''': https://github.com/mitchdraft/scaddergories/wiki |
*'''Background Information''' | *'''Background Information''' | ||
**Candidate for Master's of Science in Mechanical Engineering at Georgia Tech, currently conducting thesis in improving CAD interfaces | **Candidate for Master's of Science in Mechanical Engineering at Georgia Tech, currently conducting thesis in improving CAD interfaces | ||
**Bachelors of Science in Mechanical Engineering from MIT, 2011 | **Bachelors of Science in Mechanical Engineering from MIT, 2011 | ||
− | **4 Years ( | + | **4 Years (and counting) of mechanical engineering experience as a product development engineer (practicing user of Solidworks and other CAD tools in the engineering field) |
**Budding software developer - the tools in a software developer's toolbox are extremely valuable in all aspects of life, I am eagerly integrating these tools into my workflow. I have extensive experience in Matlab/Scilab, Processing/OpenFrameworks, and arduino. I have a good understanding of programming principles and am not intimidated by new languages or development environments. | **Budding software developer - the tools in a software developer's toolbox are extremely valuable in all aspects of life, I am eagerly integrating these tools into my workflow. I have extensive experience in Matlab/Scilab, Processing/OpenFrameworks, and arduino. I have a good understanding of programming principles and am not intimidated by new languages or development environments. | ||
− | |||
=Project Information: OpenSCAD Standard Library= | =Project Information: OpenSCAD Standard Library= | ||
Line 50: | Line 47: | ||
#Abstract the library framework | #Abstract the library framework | ||
− | + | ||
− | + | ||
+ | |||
+ | This would include: identifying a base set of mechanical components, identifying variants in an organized hierarchy/network, establishing a module format and documentation style, seeding the framework with detailed representative modules, generating several instances of parts and assemblies to serve as usage examples, documenting how to contribute and soliciting/coaching community involvement. | ||
+ | |||
+ | Documentation will be very important. At minimum, I would have a photo of a rendered part for each module, these photos linked to source code and "neighboring" parts. A key challenge will be making a framework for sorting and finding parts. | ||
==Why I am interested in this project and why I am the best person to do it== | ==Why I am interested in this project and why I am the best person to do it== | ||
Line 84: | Line 85: | ||
**Processing - to make the library interface which will output a text file for rendering by OpenSCAD. | **Processing - to make the library interface which will output a text file for rendering by OpenSCAD. | ||
**OpenSCAD - for modifying existing MCAD code | **OpenSCAD - for modifying existing MCAD code | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
*Expected time: | *Expected time: | ||
Line 118: | Line 112: | ||
**Data mining (TBD) - for collecting hardware parameters | **Data mining (TBD) - for collecting hardware parameters | ||
**TBD - for converting available, verbose, CAD files to .scad hardware representations | **TBD - for converting available, verbose, CAD files to .scad hardware representations | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
*Expected time: | *Expected time: | ||
Line 136: | Line 120: | ||
There is a good amount of design work to be done to generate an effective standard library. A good way to approach this type of project is with iterative prototypes. I view the current MCAD library as a strong initial prototype. I hope to improve MCAD with my contribution but I would be naive to believe that the best library can be produced in a three month project and I would be negligent to discard lessons learned. I intend to sketch-out/mock-up a larger framework for the standard library based on my experience developing the features of Tasks 1 and 2. | There is a good amount of design work to be done to generate an effective standard library. A good way to approach this type of project is with iterative prototypes. I view the current MCAD library as a strong initial prototype. I hope to improve MCAD with my contribution but I would be naive to believe that the best library can be produced in a three month project and I would be negligent to discard lessons learned. I intend to sketch-out/mock-up a larger framework for the standard library based on my experience developing the features of Tasks 1 and 2. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
*Deliverables: | *Deliverables: | ||
**''Integrate and abstract lessons learned to a larger library framework draft.'' | **''Integrate and abstract lessons learned to a larger library framework draft.'' | ||
− | |||
− | |||
− | |||
− | |||
*Languages used: | *Languages used: | ||
**Processing - for extending the Task 1 & 2 library interface. | **Processing - for extending the Task 1 & 2 library interface. | ||
**OpenSCAD - for generating seed models for the abstracted library framework. | **OpenSCAD - for generating seed models for the abstracted library framework. | ||
− | |||
− | |||
− | |||
*Expected time: | *Expected time: | ||
**2 weeks | **2 weeks | ||
− | ==Schedule | + | ==Schedule== |
*Weeks 1-4 | *Weeks 1-4 | ||
**Study MCAD library, extract all functions and parameters | **Study MCAD library, extract all functions and parameters | ||
Line 178: | Line 140: | ||
**Establish database/calling functions for all common hardware | **Establish database/calling functions for all common hardware | ||
*Weeks 11-12 | *Weeks 11-12 | ||
− | ** | + | **Update the interactive MCAD library with features identified during tasks 1 and 2. |
− | ** | + | **Seed library with additional parts as needed |
**Document additional opportunities for library expansion | **Document additional opportunities for library expansion | ||
− | =Availability= | + | ==Availability== |
− | *I work a full time job but will still be able to commit 40-45 hours per week to this project. This project is important to me | + | *I work a full time job but will still be able to commit 40-45 hours per week to this project. This project is important to me |
*I can be reached online or by phone 5-9 AM or 5-11 PM EST. | *I can be reached online or by phone 5-9 AM or 5-11 PM EST. | ||
*I will spend one week during July at the beach. During this time I'll reflect on the bigger problems (haha). I can route any lost time to the weekends. | *I will spend one week during July at the beach. During this time I'll reflect on the bigger problems (haha). I can route any lost time to the weekends. | ||
+ | |||
+ | =Reqs= | ||
+ | *Personal Information OK | ||
+ | **Name OK | ||
+ | **E-mail address OK | ||
+ | **IRC username OK | ||
+ | **Brief background info OK | ||
+ | **(optional) Link to resumé | ||
+ | *Project Information OK | ||
+ | **Project Title OK | ||
+ | **Brief project summary (<500 words) OK | ||
+ | **Detailed project description (>500 words) OK | ||
+ | **Links to any code or algorithms you intend to use | ||
+ | **Deliverables (specific, measurable goals) OK | ||
+ | **Development schedule OK | ||
+ | ***List at least three milestones OK | ||
+ | **Describe time availability (40+ hours/week assumed) OK | ||
+ | ***List all commitments (e.g., exams, vacations) OK | ||
+ | **(optional) Why us? | ||
+ | **(optional) Why you? | ||
+ | **(optional) Anything else? |