Skip to content
charliestirk edited this page Jul 2, 2012 · 12 revisions

Google Summer of Code Application

SCL application to Google Summer of Code 2012 - not selected due to the number of applications

Describe your organization.

The STEP Class Library (SCL) is a virtual organization developing open source software for STEP. ISO 10303 STEP (Standard for the Exchange of Product data) began in the 1980’s as a neutral mechanical CAD format standard to replace IGES, and developed the EXPRESS information modeling language. STEP is now the most widely used CAD exchange format, and STEP has grown to include many other domains such as systems engineering, electro-mechanical components and assemblies, automotive assembly, engineering analysis, machining, wire harnesses, metrology, and product life cycle support. EXPRESS usage has expanded to other industries like Building Information Management (BIM) through the Industry Foundation Classes (IFC) which are built from STEP Integrated Resources (IR). There are hundreds of EXPRESS schemas, with many software translators in production use, some based on earlier versions of SCL.

In the 1990’s the US National Institute of Standards and Technology (NIST) developed SCL to help prototype and demonstrate capabilities in the EXPRESS language and the STEP standards. Subsequently, the open source BRL-CAD project improved SCL and uses it for their STEP translator. The github SCL team and the sourceforge BRL-CAD team are currently merging their SCL trees. Other open source projects such as OpenCascade Community Edition and IfcOpenShell are interested in upgrading their translators with SCL.

The active SCL team includes 20+ year experts in EXPRESS and STEP, university professors, software developers at commercial companies interested in using SCL, former researchers at NIST, government employees, and talented software developers. Members of the SCL team participate in ISO TC184/SC4 where 10303 is standardized, PDES Inc. which accelerates development and implementation of STEP, and the CAX-IF where STEP translators are tested. These overlapping communities interact but have their own rules and cultures.

SCL is building an open source community that is different from these existing communities, and thus, changing STEP in important ways. ISO TC184/SC4 meetings are open to anyone, but difficult for most in the open source community to travel to. Several of the other communities involved in STEP are closed and dominated by large industrial firms in aerospace and automotive, expert consultants and small software vendors. Many of the large software vendors that use STEP only participate in the CAX-IF testing, which is closed by a non-disclosure agreement. SCL is changing that by being developed in a very transparent fashion that so far is open to all. SCL is allowing people to participate in STEP that would not be able to travel internationally for ISO meetings. PDES Inc. and ProSTEP iViP do much of the work developing STEP and operate the CAX-IF, but are member-only organizations. The SCL open source community does not qualify for membership in the CAX-IF because it is virtual organization cannot sign the non-disclosure agreement, and it operates in the open public. One of SCL’s goals is to make STEP accessible and usable to anyone, particularly those that have not been served by the existing closed communities.

SCL has a unique governance culture that is partly from open standards, and partly from the open source communities. One SCL participant from the open source community has described it as a “distributed bazaar, cabal, or consortia of self-organizing contributors with common interests” and “nobody has veto power the SCL community”. Both statements are a reflection of the open standards heritage. In standards, many people and organizations are involved that have some common interests (but often many other unique interests, some hidden or proprietary for valid reasons, and their right to privacy is respected with the only caveat is that one has to declare any Intellectual Property restrictions on their proposed contributions). The second statement also reflects the open standards heritage in that a single person can only stop a standard based on very well defined procedural grounds that have been worked out over decades. Most contributors to SCL that do not come from the standards side tend to work in related open source communities that are interested in using SCL. SCL communicates with these communities to understand their requirements as we further develop SCL. These interactions are building the culture of the SCL community.

Many PDES members are very interested in SCL’s achievements and SCL was presented at the last CAX-IF. CAX-IF members were very surprised that SCL was able to process the most modern STEP schemas, and that some of the well known and widely used commercial tools were not able to.

Why is your organization applying to participate in Google Summer of Code 2012? What do you hope to gain by participating?

SCL is stabilizing as a robust platform and adding new technology on which many useful projects can be built. SCL has been improved so it parses and compiles on almost all the major EXPRESS schemas. SCL has contributed back to the STEP standards community in other ways, like developing small “unitary” test schemas that provide test coverage of specific confusing aspects of the EXPRESS language. SCL intends to provide a test case and coverage foundation to test EXPRESS compiler conformance that will be publically available as a test suite for others to use.

The SCL technology stack has been upgraded to use common and modern technologies. The addition of python code generation to the traditional C++ used in CAD libraries opens up many capabilities by providing an interpretable scripting API and glue technology, as well as extensive standard library and package support.

Over the years a major complaint regarding STEP is that it is complex and uses unique technologies like EXPRESS compilers from specialty tool vendors. Thus, people say it has a long learning curve and is expensive to implement. However, our experience with SCL is that software developers have joined the team and been immediately productive, and only need occasional guidance from a STEP expert when they get stuck. EXPRESS is just another language with only a few unique concepts. STEP is the result of an enormous investment over many years, and hence, comprises a vast and valuable intellectual property. SCL intends to unlock the door to STEP and make the technology available and usable by a wide audience.

Besides making STEP easier to adopt by a broader community, SCL is being developed in a public forum, which provides essential historical and otherwise unrecorded information of what it means to develop a STEP compiler, and the complex interaction between the EXPRESS language and the tools that implement it. Now with SCL, the inner workings of the process of developing a STEP compiler have been recorded in discussions on google groups and issues on github.

Preserving this information is very important to the alternate use of STEP besides the interoperability in space through exchange, that is interoperability through time in repositories, also known as Long Term Archiving and Retrieval (LOTAR). LOTAR International’s purpose is to satisfy FAA and European requirements for preservation of digital models for aircraft parts and assemblies for type certification for the life of the aircraft, and STEP is a core part of the solution. LOTAR of the data formats is important, but so is the software tooling that can interpret the formats. Open source SCL based on standards like C++ provide more assurance that LOTAR’s objectives can be achieved than relying on commercial vendors. How many commercial software applications from when the Boeing 707 was developed in the 1960’s do you thing are still functional? That’s right, almost none, but the plane is still flying so the engineering drawings must still be accessible. So what is one way to make sure old data formats can be read? The existence of portable open source software like SCL that conforms to standards.

By providing a modern, open source reference implementation for STEP and EXPRESS for students to use, our goal is to shorten the learning curve and reduce the technology complexity. We intend to train people in STEP and EXPRESS and provide robust open source technology that can be used in other open source projects, university research, custom in-house applications, and commercial software. We expect students to go on to use SCL and the knowledge and skills they acquire in their professional occupations.

Open standards and open source technology are made for each other. The time is right to bring in talented students to SCL and let their energy and creativity flourish.

Did your organization participate in past Google Summer of Codes? If so, please summarize your involvement and the successes and challenges of your participation.

No, though some organizations that use SCL, like BRL-CAD, have participated for several years. Members of BRL-CAD participate in SCL and serve as our mentors.

If your organization has not previously participated in Google Summer of Code, have you applied in the past? If so, for what year(s)?

This is the first time SCL has applied.

What Open Source Initiative approved license(s) does your project use?

SCL chose BSD to be compatible with BRL-CAD and to be most flexible for use in commercial software.

What is the URL for your Ideas page?

http://github.com/stepcode/stepcode/wiki/GSoCIdeasforstudents

What is the main development mailing list for your organization?

http://groups.google.com/group/scl-dev

What is the main IRC channel for your organization?

SCL has not established one yet.

Does your organization have an application template you would like to see students use? If so, please provide it now.

It will be posted to the SCL github wiki.

Who will be your backup organization administrator?

Mark Pictor has agreed to be the backup admin.

What criteria did you use to select your mentors for this year's program? Please be as specific as possible.

There are many universities that are members of the international STEP centers and participate in ISO TC184/SC4, or have worked with EXPRESS or STEP. SCL will solicit faculty from these and other universities to serve as mentors, and their students as participants. Mentors will also come from the wider SCL technical contributor community, and communities that use SCL like BRL-CAD.

What is your plan for dealing with disappearing students?

The SCL team develops in a very open fashion through github and google groups. If someone is not participating, it is immediately apparent to everyone. If a student does not have a faculty member qualified to serve as a technical mentor, SCL will require the students to still provide a faculty member to serve as a administrative mentor. Since students will be matched with faculty mentors, SCL will contact the faculty mentor should the student disappear.

What is your plan for dealing with disappearing mentors?

The SCL team has had a few STEP and software experts come and go based on their other commitments, and SCL has continued to make advances. There is redundancy in the knowledge and skills of the SCL team. While we will have a faculty mentor for each student, SCL takes a team approach to management and development. Students will not be stranded or left stuck.

What steps will you take to encourage students to interact with your project's community before, during and after the program?

SCL is active both on github and google groups, and those will be primary vehicles of interaction. Before, most of the interactions will be conducted through google groups and the github wiki, and we will set up an IRC. During the program, the student and their faculty mentor will continue to use these communication tools. We will also introduce the students to the broader STEP community by having them present their projects (virtually) at the PDES Inc. off-site meeting Sept. 24-28th, 2012. After the program, we will encourage the students to stay involved in SCL, and take SCL into other software projects (open source and commercial) that can use SCL.

Are you a new organization who has a Googler or other organization to vouch for you? If so, please list their name(s) here.

SCL is a new organization, but John Bacus, the Google Sketchup Product Manager can vouch for SCL. Charlie Stirk who participates in SCL is the past PDES Inc. Technical Advisory Committee Chair, and the PDES communications executive and board champion for alliances and partnerships. Sean Morrison of the open source BRL-CAD that uses SCL has been mentoring SCL, and been involved in Google Summer of Code for 6 years. Cliff Yapp from BRL-CAD has also been mentoring SCL. Other people involved in SCL can vouch for it. Tom Thurman is an ISO EXPRESS and STEP expert (editor for STEP AP210) that participates in ISO TC184/SC4 and consults to the University of Iowa. Thomas Paviot is the founder of the open source Open Cascade Community Edition (OCE) that is interested in using SCL. Thomas Krijnen is the developer of IfcOpenShell that is interested in using SCL. Josh Lubell of NIST contributed to the development of SCL in the 1990’s. They can be contacted through the STEP Class Library – Developers Mailing List on Google Groups.