A pair of talks at Libre Graphics Meeting 2016 addressed ongoing work in a niche market within the broader "design" umbrella: architecture. Yorick van Havre discussed the difficulties of running an architecture business based on free software, and Mark Meagher presented a new free-software application for architects.

FreeCAD for architects

Van Havre is a Belgian architect living and working in São Paulo, Brazil. He is also a core developer of FreeCAD, one of the most popular open-source computer-aided-design (CAD) tools—although he pointed out that "core" sounds a bit too lofty, since the FreeCAD team is a rather informal collection of developers. He uses FreeCAD for his design work, as one would expect, along with some other free-software applications. But the process that architects use to design buildings and manage projects is changing—in ways that pose real challenges for the free-software community.

Years ago, architects used to start by making drawings, he said, then move to 2D CAD designs, then to 3D models. Now they do the drawing step directly in CAD software. But, increasingly, architects are doing the entire design process in a single application. That change is due to the rise of building information modeling (BIM). While BIM software handles 3D modeling, it also incorporates a vast amount of metadata about materials, expenses, environmental concerns, and other topics. That allows the architect to update the model and have all of the pertinent metadata changes seamlessly updated at the same time. Thus, the metadata can be extracted or exported to keep track of costs in an accounting tool, file plans for approval, or analyze changes.

As one can probably guess, the BIM software market is dominated by proprietary vendors. Two companies—Autodesk and Nemetschek—control "virtually 100% of the market," Van Havre said, and charge $5000 a seat, annually, for software licenses. Those proprietary applications are "all in one" solutions, and their file formats change every year—typical vendor lock-in moves. But the monopolization of the market harms consumers, too, he said. Since the buildings designed in these proprietary applications are all configured the same way, they all end up looking the same when they are completed, which benefits no one. Several countries have started to move toward making BIM mandatory, which puts free-software architects in a bind.

The good news, however, is that there is now a path forward, thanks to the Industry Foundation Classes (IFC) specification. IFC is an open and human-readable file format and it is maintained by a non-profit consortium. The FreeCAD team has added IFC support to its architecture module, even supporting several "dialects" commonly found in the wild. It can import 3D meshes from Blender and convert them to BIM models, and it can extract and export metadata to spreadsheets.

FreeCAD's architecture module still needs more work, including additional primitives for functional building elements like doors, beams, and windows. It also needs "direct editing" support, in which the user can change a model by, say, simply "pushing" a wall to a different spot on screen. And it lacks support for doing structural analysis. But adding IFC support has enabled FreeCAD to implement some creative new features as well. For example, it can generate "IKEA-like instructions" for assembling parts, which is not something he thinks architects would have thought of.

There are other challenges also facing the free-software architecture community, he said. The most pressing is the lack of viable 2D CAD software. Despite the prevalence of 3D, many architects still like to start work in 2D, and there is no free-software application that can handle the "gigantic drawings" that architects use.

Van Havre noted that people often ask why he does not use Blender for his 3D work. In fact, he does use it at the office, he said, but not for precision work. Blender is great for "creative side" design, and for rendering realistic images, but real projects need the precision of FreeCAD. "When we need something to be 20 millimeters, it can't be 21 millimeters," he explained.

topoBIM

The second architecture talk was Mark Meagher's introduction to topoBIM, which he called a "moderately subversive" project to undermine the proprietary BIM-software vendors' hold on architects. In essence, topoBIM is a small application that fills in a gap not served by the proprietary applications discussed by Van Havre. The goal of the developers, Meagher said, is to find several such gaps and be the first to provide solutions; that lessens the appeal of the proprietary software suites.

Architecture projects have to regularly transform data from one format to another for different users, Meagher said. There are a lot of disciplines involved in planning and putting up a building, and a lot of the training in architecture school deals with understanding the links between the different representations of a building: the design, the structural and safety analysis, the materials engineering, the environmental analysis, and so forth.

BIM helps by managing a lot of those models, but one that it does not address is a building's "topology." This topology, however, is not its physical connectedness, but its functional design. Frequently, he said, buildings have to be designed to optimize traffic flow or to keep certain elements either connected or separated.

Perhaps the best example, he said, is a hospital. There is a security topology: unauthorized people should not be able to walk into certain parts of the building, while authorized people need to frequently make certain trips. Similarly, there is a "clean room" topology for some areas, wherein particular rooms need to be connected in order to prevent contamination. And there are many functional paths to optimize: getting from patient rooms to labs, for instance, without traffic jams and (hopefully) with a minimum of travel time.

The right way to model these requirements is in a topological model; topoBIM is a software tool that lets the user create and manage such a model, while tracking all of the associated BIM metadata. The tool is still in the early stage of development—it does not yet seem to have an online presence (apart from a rather old version on GitHub), for example—but Meagher believes it is the right path forward for open source. There are several other places where "bespoke software" written by the open-source community can free architects from the constraints of the proprietary software vendors.

At the end of the talk, Meagher was joined by fellow architect Phil Langley, who has been working on topoBIM. There were a number of questions from the audience, most dealing with how building topology fits into the architectural project workflow. It is, evidently, an early stage in the planning process, as Meagher and Langley explained. But it is important, because it helps capture the requirements of a building's owners, inhabitants, and other stakeholders.

Hopefully, we will see more information soon about topoBIM and other architectural software projects. In the meantime, Van Havre and the rest of the FreeCAD team will, no doubt, continue to expand the scope of that application's architecture support. It may be an uphill battle to compete with entrenched proprietary-software vendors, but that does not seem to have dampened the spirits of the project teams.

[The author would like to thank Libre Graphics Meeting for travel assistance to London for LGM 2016.]

Comments (10 posted)

For years, FontForge has been the dominant free-software application for editing and building font files, but it has always been a difficult codebase to work with. At Libre Graphics Meeting 2016 in London, Adrien Tétar presented his work on a promising replacement called TruFont. The new application builds on top of several popular open-source libraries that are widely used by font engineers and even by proprietary font editors. That gives TruFont a head start, and it may mean that the project can count on a more diverse assortment of contributors as time goes by.

Tétar joined the FontForge team in 2014, he said, with an interest in making fonts for math and science. It was widely acknowledged that FontForge was hard to maintain (at 600,000 lines of C) and had an awkward user interface but, still, no one was working on an open-source replacement. For reference, he pointed the audience to an October 2015 discussion on the difficulty of adding features to FontForge.

In response to such frustrations, Dave Crossland suggested that he look into building a new UI for FontForge on top of the application's Python interface. Tétar then began looking into the Unified Font Object (UFO) file format. UFO was first developed as an alternative to the proprietary FontLab file format, and it was developed in concert with another proprietary font editor, RoboFont. But RoboFont came with a large open-source Python library (RoboFab) that defined primitives for manipulating glyphs, fonts, contours, and other common components.

Another proprietary application, Glyphs, had also begun using RoboFab and UFO, and in recent years both Glyphs and RoboFont had developed a healthy ecosystem of Python utilities, in a sense "closing the gap between scripting and application development." In particular, Tétar said, Tal Leming has released a lot of significant plumbing as open-source software. That includes the Defcon library, which provides Python primitives for most of the plumbing one needs to build a font editor: a factory system, abstract classes for glyph representations, object caching, tools and views that can refresh automatically on changes to the data, and so on. So, rather than building on top of FontForge, Tétar decided to try and make a free editor out of all of the disparate free components. He started work in April 2015, and made the first release (dubbed TruFont) that October.

TruFont

TruFont includes a set a of Qt bindings on top of Defcon and a basic font-editor environment. Out of the box, it allows users to open UFO files and manipulate Bézier contours, adjust spacing and metrics, and other such simple tasks. Moving forward, though, Tétar expects most of the new functionality to be implemented in Python extensions. Thus, at present, there are only basic selection and drawing tools. He demonstrated how the tool classes can be extended to easily add more complex functionality. Likewise, the basic "glyph view" shows only the outline of the current character, but he showed an extension that adds visualizations of longer strings of adjacent characters—something that font developers often use to provide context for the glyph they are working on.

The latest release is TruFont 0.4, which was tagged just before LGM. Tétar showed some download statistics for the prior releases; on average, Mac OS X has close to 60% of the downloads, followed by Windows at 30% and Linux with 10%. His target is for TruFont to correctly display and edit every part of a UFO font, he said, and leave the "magic" up to the extension writers. That allows TruFont to remain as lean as possible. And by using Qt, unlike FontForge, TruFont uses the native UI widget set on every platform.

But the extension-centric approach also means that new contributors will have to gain a fairly deep understanding of the APIs offered by RoboFab, Defcon, and the other libraries (such as FontTools, which provides a range of font-transformation functions, MutatorMath, which provides interpolation functions, and booleanOperations, which provides functions for working with Bézier contours). In general, Tétar told the audience, Defcon contains the "low-level" functions and Robofab the "high-level" abstractions but, ultimately, every part of the editor and every part of a font is accessible for manipulation with a Python extension.

He noted that both Glyphs and RoboFont were started by type designers who got roped into being software developers by the desire to have better tools. And non-developers, as a rule, seem to like spreading the maintenance burden around. His hope is that TruFont will allow a lot of contributors to each "own a piece" of the editor as their own extension, and that collectively the entire community can have a better and more modular font editor.

There were a few questions from the audience about just how far the "extension-driven" development model would go. Surely, one audience member asked, there are basic expectations that users will expect to be present in the default download. Tétar conceded that such expectations were valid, and said that he may take a "batteries included" approach in the end, but that, right now, he is not sure which features would define a base of functionality, so he regards expanding the core feature set as a "maybe."

In addition to his talk, Tétar led a workshop session introducing participants to TruFont's internals and to scripting new tools. The room was packed, and the workshop well-received.

FontForge

In an informative side note, FontForge maintainer Frank Trampe presented a lightning talk at LGM, during which he reassured users that FontForge was not going away any time soon. The talk, he said, was a "rebuttal" to the LGM 2015 talk in which Dave Crossland announced he was withdrawing from FontForge development.

Trampe was quick to admit FontForge's shortcomings as a codebase (which he and the other current members of the development team inherited, but did not create), and noted that TruFont takes the "correct approach" to designing a font editor—as well as not implementing its own, internal widget toolkit. But it will still be quite a long time before all of FontForge's capabilities can be re-implemented for TruFont; in the meantime, users need a working free-software application to design fonts. In addition, FontForge is the build tool for many open-source fonts used by the free-software community and shipping in Linux distributions.

Thus, Trampe said, it is an important tool, and he is committed to making it work well. In the past three years, he pointed out, the team has worked to stamp out the stability problems that plagued earlier releases, and the development process has been improved by migrating to GitHub and using continuous-integration tools. FontForge's big problems, Trampe said, are for developers. For users, it is as stable as a font editor can be and offers a complete tool set for working with glyphs, font features, tables, and "every font file format" available.

He also said that he continues to get lots of feature requests—including, Trampe noted, quite a few from Crossland—which indicates the community is still interested. The last release, he said, received more than 10,000 downloads. TruFont may be the way forward, he said, but until it is done, he and others will continue to work on FontForge.

FontForge is not unique in having technical debt; many open-source projects accrue baggage over the years and eventually a rewrite or a replacement is warranted. TruFont is, by design, a modular application that will likely be far more maintainable than FontForge. But it has not attracted attention from open-source developers simply because it has a modern architecture. The more intriguing aspect of the project is how much it builds on top of other frequently used font libraries—including those popular with proprietary tool developers. That may make it a more appealing target for casual developers and font designers who occasionally write scripts, which is an audience well worth targeting.

[The author would like to thank Libre Graphics Meeting for travel assistance to London for LGM 2016.]

Comments (10 posted)