Group: LibreDWG/SummerOfCode

From LibrePlanet
< Group:LibreDWG
Revision as of 02:40, 4 March 2010 by Pitanga (talk | contribs) (3D Solid decoding support)
Jump to: navigation, search

This is the ideas page for Google Summer of Code. If you see anything LibreDWG is missing and a student could do it in 3 months, put it here.

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
  • Desirable skills: good knowledge of C programming, familiarity with 3D modeling or CAD applications, some knowledge of the inners of the DWG format.

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
  • Desirable skills: good knowledge of C, C++, Python and tools to write bindings (like SWIG), some knowledge of graphics or CAD formats

3D Solid decoding support

Currently LibreDWG is 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 can be converted to other formats by host applications, such as the OpenCASCADE, and properly rendered and worked within free software tools.

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