Group: LibreDWG/SummerOfCode

From LibrePlanet
Jump to: navigation, search
m (moved LibreDWG/SummerOfCode to Group:LibreDWG/SummerOfCode: Consistent with rest of wiki namespace)
Line 1: Line 1:
[http://socghop.appspot.com Google Summer of Code 2010] dates are out [http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs#timeline]. The GNU Project has been accepted as a mentoring organization in 2010. This is the ideas page for GNU LibreDWG. Ideas for other GNU packages can be found here [http://www.gnu.org/software/soc-projects/ideas-2010.html].  
+
[http://google-melange.com Google Summer of Code 2011] dates are out [http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/timeline]. The GNU Project is planning to apply as a mentoring organization, and is likely to be accepted. This is the ideas page for GNU LibreDWG. Ideas for other GNU packages (2010) can be found here [http://www.gnu.org/software/soc-projects/ideas-2010.html].  
  
Students should choose one of the ideas listed here in order to write their applications. If you are a student and want to propose a new idea, feel free, but consider writing to us on the development mailing list before doing that (mail us anyway, even if you are picking one of the ideas below). We expect that candidates do a further research on topics related to the proposals, and make it clear in their applications. Applications containing design and implementation proposals will be highly considered. Feel free do criticize LibreDWG's internals. There is still much to be done. Check [http://gnu.org/software/libredwg our homepage] and our [http://groups.fsf.org/wiki/LibreDWG wiki] for further information about the project. Mail us at '''libredwg at gnu dot org''' if you have any questions.  
+
This is the time for LibreDWG developers and users suggest possible projects. Please feel free to edit this page. The projects that haven't be picked last year have been recycled. Put your name here if you are interested in being a mentor: (Rodrigo Rodrigues da Silva)
 +
 
 +
In the near future, students should choose one of the ideas listed here in order to write their applications. If you are a student and want to propose a new idea, feel free, but consider writing to us on the development mailing list before doing that (mail us anyway, even if you are picking one of the ideas below). We expect that candidates do a further research on topics related to the proposals, and make it clear in their applications. Applications containing design and implementation proposals will be highly considered. Feel free do criticize LibreDWG's internals. There is still much to be done. Check [http://gnu.org/software/libredwg our homepage] and our [http://groups.fsf.org/wiki/LibreDWG wiki] for further information about the project. Mail us at '''libredwg at gnu dot org''' if you have any questions.  
  
 
'''Please check the [http://www.gnu.org/software/soc-projects/guidelines.html GNU guidelines for SoC] before writing your application.'''  
 
'''Please check the [http://www.gnu.org/software/soc-projects/guidelines.html GNU guidelines for SoC] before writing your application.'''  
 +
 +
==Decode refactoring==
 +
Refactor decode functions, split the decode.c file into decode_r2000, decode_r2004, decode_r2007. Finish r2007 decode support, write on-demand decoding routine: first header, then layers, paper_space, model_space.
 +
 +
*Level: HIGH
 +
*Priority: MEDIUM
 +
*Desirable skills: trough knowledge of LibreDWG internals
 +
 +
==Automated test suite==
 +
Build an automatet test suite for LibreDWG. The test suite should have alive tests and also unity tests (test read and write for each object), compare test outputs with expected values, ecc.
 +
 +
*Level: MEDIUM
 +
*Priority: HIGH
 +
*Desirable skills: good knowledge of computer graphics and CAD, C, shellscript or python programming
  
 
==3D Solid decoding support==
 
==3D Solid decoding support==
Line 12: Line 28:
 
*Desirable skills: good knowledge of 3D solid and surface modeling, medium to advanced C programming. Familiarity with the SAT/SAB formats is a plus.
 
*Desirable skills: good knowledge of 3D solid and surface modeling, medium to advanced C programming. Familiarity with the SAT/SAB formats is a plus.
  
==DWG write support==
+
==LibreDWG API==
 +
Currently, LibreDWG users (CAD programs) have to browse through the low level DWG struct blindly. There are some helper functions, but they aren't enough to make the library usable for programmers. The student taking this project will potentially implement some sort of dwg2foo converter in order to understand the API needs. That done, they will write a reasonably simple and easy to use C API. There is currently a python binding, although all methods are C-like methods. The student should make python (ie, object oriented)-like methods. A C++ object-oriented API would be desirable as well.
 +
 
 +
*Level: MEDIUM
 +
*Priority: LOW/MEDIUM
 +
*Desirable skills: good knowledge of C, C++, Python and binding-generation tools (such as SWIG), some knowledge of vectorial computer graphics or CAD formats.
 +
 
 +
==Past projects==
 +
===DWG write support===
 
LibreDWG currently supports DWG versions R13, R14, R2000 and R2004 (R2007 is on the way) but only for reading. Some write operations for entities and objects are already written, and there is a very basic write framework. Although, headers and the whole file structure are not written. Write support is almost evil, but still needed, since there is not a well stablished free CAD format, and we don't want people to leave free CAD applications because they can't send their work back to DWG-only-CAD users.
 
LibreDWG currently supports DWG versions R13, R14, R2000 and R2004 (R2007 is on the way) but only for reading. Some write operations for entities and objects are already written, and there is a very basic write framework. Although, headers and the whole file structure are not written. Write support is almost evil, but still needed, since there is not a well stablished free CAD format, and we don't want people to leave free CAD applications because they can't send their work back to DWG-only-CAD users.
  
Line 20: Line 44:
  
 
     [[User:acardoso |Anderson Cardoso]] wrote a proposal based on this topic and has been accepted as a SoC student for 2010. We keep track of the development [[LibreDWG/SummerOfCode/2010/WriteSupport |here]].
 
     [[User:acardoso |Anderson Cardoso]] wrote a proposal based on this topic and has been accepted as a SoC student for 2010. We keep track of the development [[LibreDWG/SummerOfCode/2010/WriteSupport |here]].
 
==LibreDWG API==
 
Currently, LibreDWG users (CAD programs) have to browse through the low level DWG struct blindly. There are some helper functions, but they aren't enough to make the library usable for programmers. The student taking this project will potentially implement some sort of dwg2foo converter in order to understand the API needs. That done, they will write a reasonably simple and easy to use C API. This API should have bindings to other programming languages, Python being a priority. A C++ object-oriented API would be desirable as well.
 
 
*Level: MEDIUM
 
*Priority: LOW/MEDIUM
 
*Desirable skills: good knowledge of C, C++, Python and binding-generation tools (such as SWIG), some knowledge of vectorial computer graphics or CAD formats.
 

Revision as of 11:11, 28 January 2011

Google Summer of Code 2011 dates are out [1]. The GNU Project is planning to apply as a mentoring organization, and is likely to be accepted. This is the ideas page for GNU LibreDWG. Ideas for other GNU packages (2010) can be found here [2].

This is the time for LibreDWG developers and users suggest possible projects. Please feel free to edit this page. The projects that haven't be picked last year have been recycled. Put your name here if you are interested in being a mentor: (Rodrigo Rodrigues da Silva)

In the near future, students should choose one of the ideas listed here in order to write their applications. If you are a student and want to propose a new idea, feel free, but consider writing to us on the development mailing list before doing that (mail us anyway, even if you are picking one of the ideas below). We expect that candidates do a further research on topics related to the proposals, and make it clear in their applications. Applications containing design and implementation proposals will be highly considered. Feel free do criticize LibreDWG's internals. There is still much to be done. Check our homepage and our wiki for further information about the project. Mail us at libredwg at gnu dot org if you have any questions.

Please check the GNU guidelines for SoC before writing your application.

Decode refactoring

Refactor decode functions, split the decode.c file into decode_r2000, decode_r2004, decode_r2007. Finish r2007 decode support, write on-demand decoding routine: first header, then layers, paper_space, model_space.

  • Level: HIGH
  • Priority: MEDIUM
  • Desirable skills: trough knowledge of LibreDWG internals

Automated test suite

Build an automatet test suite for LibreDWG. The test suite should have alive tests and also unity tests (test read and write for each object), compare test outputs with expected values, ecc.

  • Level: MEDIUM
  • Priority: HIGH
  • Desirable skills: good knowledge of computer graphics and CAD, C, shellscript or python programming

3D Solid decoding support

Currently LibreDWG is only able to decode 3D solids partially. The solids in DWG are encoded into the SAT and SAB formats, used by the ACIS 3D modeling kernel. There are not free implementations of this kernel, which means that the SAT and SAB streams that we are able to extract are useless if not parsed. Once parsed, the solids must be converted to other openly documented formats, and properly rendered and worked within free software tools. It is yet not clear if converting belongs to the scope of this idea, since there aren't any known {sat,sab}2something free software converters. Anyway, if your application somehow gives a light in addressing this issue, either implementing or not the converter, that would be a plus.

  • Level: MEDIUM/HARD
  • Priority: VERY HIGH
  • Desirable skills: good knowledge of 3D solid and surface modeling, medium to advanced C programming. Familiarity with the SAT/SAB formats is a plus.

LibreDWG API

Currently, LibreDWG users (CAD programs) have to browse through the low level DWG struct blindly. There are some helper functions, but they aren't enough to make the library usable for programmers. The student taking this project will potentially implement some sort of dwg2foo converter in order to understand the API needs. That done, they will write a reasonably simple and easy to use C API. There is currently a python binding, although all methods are C-like methods. The student should make python (ie, object oriented)-like methods. A C++ object-oriented API would be desirable as well.

  • Level: MEDIUM
  • Priority: LOW/MEDIUM
  • Desirable skills: good knowledge of C, C++, Python and binding-generation tools (such as SWIG), some knowledge of vectorial computer graphics or CAD formats.

Past projects

DWG write support

LibreDWG currently supports DWG versions R13, R14, R2000 and R2004 (R2007 is on the way) but only for reading. Some write operations for entities and objects are already written, and there is a very basic write framework. Although, headers and the whole file structure are not written. Write support is almost evil, but still needed, since there is not a well stablished free CAD format, and we don't want people to leave free CAD applications because they can't send their work back to DWG-only-CAD users.

  • Level: HARD
  • Priority: MEDIUM/HIGH
  • Desirable skills: good knowledge of C programming, familiarity with 3D modeling or CAD applications, goof knowledge of the inners of the DWG format as described by the OpenDWG specification.
   Anderson Cardoso wrote a proposal based on this topic and has been accepted as a SoC student for 2010. We keep track of the development here.