Personal tools
You are here: Home Usage examples Case studies 3rd party usage examples Midland Valley and 4DVista
Document Actions

Midland Valley and 4DVista

MVE selected Qt and Coin3D. Shaving up to a year off its development cycle, MVE was able to focus its developers on the final project, rather than on the process of creating it.

Background

Midland Valley Exploration Ltd. needed a development environment for its new 4DVista structural geology viewer software. MVE’s customers were moving away from UNIX to Linux and Windows, so the company’s developers faced the task of building a consistent GUI while incorporating advanced 3D visualization capabilities.

After evaluating many options, MVE selected Qt, a cross-platform C++ development environment from Trolltech, and the tightly integrated Coin3D graphical toolkit from Systems in Motion. Together, the two solutions got MVE developers up and coding quickly, enabling GUI firsttimers to build a seamless user environment across both platforms, and allowing the team to add 3D visualization capabilities without struggling with classic Open GL programming. Shaving up to a year off its development cycle, MVE was able to focus its developers on the final project, rather than on the process of creating it.


New applications for multiple platforms

As demand grew for MVE applications on Linux and Windows, MVE was on the cusp of a major retooling of its product suite. The new suite’s visualization
front-end is 4DVista, a viewer that enables anyone in an organization to view and interact with geological models. 4DVista software is uniquely scalable.
It ranges from a free, basic viewer for single-CPU notebook and desktop computers to feature-rich versions capable of enabling stereo viewing of large-data models on high-performance, multiprocessor systems.

The task of delivering new applications for multiple platforms led the 4DVista team to evaluate several GUI development environments, including FLTK and Java/Swing. 4DVista also needed to offer inscene manipulation and viewing of large 2D and 3D data sets, so the search included graphical toolkits
like Java3D and Mercury Computer Systems’ Open Inventor.

“We wanted a cross-platform and powerful GUI, as well as in-scene manipulation and management of fast OpenGL-based 3D graphics,” recalls Colin
Dunlop, principal software engineer at MVE and head of the 4DVista coding team. Dunlop’s team knew they wanted to use as many quality third-party
products as possible. This would help keep the team focused on the final product, rather than on the development process leading to it.

Qt and Coin3D: The Perfect Solution

To solve the unique challenge of creating software that was both cross-platform and 3D-rich, MVE turned to Qt from Trolltech and Coin3D from Systems in Motion (SIM). A C++ application framework, Qt enables developers to write a single source code base that runs natively on multiple target platforms. Qt also integrates seamlessly with Coin3D, a graphics toolkit that offers a perfect solution for adding 3D visualization to Qt applications.

Qt came highly recommended by colleagues, says Dunlop, and enjoyed positive “word of mouth” fueled by an enthusiastic and growing community of users. “It was clear to us that Qt is a mature platform with mature OpenGL module support, and a tried and tested C++ solution – two things we absolutely needed. It also helped that Trolltech engineers work closely with its customers through a dual-licensing model that makes the solution available through both from an open-source model and a professional license user model.”

The MVE team also was impressed with the selection of widgets and third-party add-ons and libraries available with Qt – a selection Dunlop describes as
“abundant.” They were particularly excited about Qt Designer, a powerful GUI layout and forms builder that enables rapid development of high-performance user interfaces with native look and feel across all supported platforms. “Out of all the choices, Qt seemed the most complete of the frameworks,” recalls Dunlop. “With FLTK, we previously wasted a lot of time and effort making the GUI look like Solaris, IRIX or Windows – or just plain pretty enough. We were keen to avoid this in the future.”

Dunlop found SIM’s Coin3D shared similar benefits. “Like Qt, Coin3D is a proven and mature C++ platform with exhaustive documentation and the same dual licensing model, and it’s affordable compared to competitive solutions,” he says. “We couldn’t afford to take a chance on an immature platform like Java3D, which during evaluation appeared slow and buggy, whereas Coin3D is solid, professional and lightning-quick. What’s more, we saw a lot of overlap between SIM’s software development roadmap and our own product plans.” ‘Eas y to Get Wor king with Qt’ The project to develop 4DVista required 80,000 man-hours. The work demanded the full-time attention of two engineers with part-time help from another three, all of whom used Qt and Coin3D in the development cycle. The final product amounts to some 400,000 lines of code.

Like all development teams, the engineers at MVE quickly found their favorite features in Qt and Coin3D. Not surprisingly, they tended to be those that helped them create better software faster. “We adopted one of Trolltech’s suggested development models for incorporating output from Qt Designer into our application, and this helped with GUI consistency and saved us development time,” says Dunlop. “Everything was well documented, and the documented features actually worked!” Even lacking prior experience with Qt proved a non-issue. “The sheer scale of Qt examples, tutorials and documentation really shone, and this made life much easier for our developers, even those with no GUI development experience at all. And it’s easy to get working with Qt, given that it actually compiles itself during installation.”

Another Qt favorite among MVE developers: Qt’s signals and slots mechanism which, Dunlop says, “hides developers from ugly old-style C++ callback mechanisms.” Adding visualization functionality was also far less challenging than expected. “We enjoyed basing our rendering engine around Coin3D,  and found it easy to work with,” reports Dunlop. “In fact, with the help of SIM engineers, we managed to enhance our rendering engine to be multi-threaded via Coin3D’s thread-safe scene graph. “Coin3D also allowed us to abstract away from raw OpenGL,” added Dunlop,” so our developers could concentrate on product, not on process. Yet we knew that underneath the hood was a well-written, high-performance scene-graph. Coin3D also saves us time and effort by providing cameras and in-scene manipulators, both of which are major time consumers when you have to write your own. And we use SIM’s add-on products SIMVoleon and SIM Rational Reducer, both of which combine seamlessly with the base Coin3D toolkit.”

‘Native from the Outset ’ For the 4DVista development team, the bottomline advantages of using Qt and Coin3D amount to time saved. “We streamlined our UI development process with Qt,” says Dunlop. “This resulted not only in faster results, but in a consistent and wellengineered UI across the whole product. “Our results looked native on all four platforms without any code tweaks. This saved use months of pain, and without Qt, we’d have ended up with a product that looked like a poor man’s Windows application. Instead, we have an application that looks native from the outset.” MVE also trimmed months from the project by leveraging Coin3D. “Even our less experienced developers were able to insert powerful 3D components into the application without being OpenGL experts,” says Dunlop. “By not reinventing the camera and in-scene manipulation yet again, we managed to save months, if not even a year of writing yet another painstaking OpenGL and basic mathematical primitives layer between 4DVista and OpenGL. At the same time, the Coin3D API was intuitive enough to allow us to extend where necessary.”

The team at MVE knows that rapid changes in the oil and gas industry will continue to trigger even more change within its products. Fortunately, the development environment MVE has built around Qt and Coin3D has the headroom to accommodate those changes. “Our market is and always will be  global,” says Dunlop. “With Qt, we have everything in place for future foreign language versions of our products. No other framework provides this type of internationalization.” A Reso unding Success For MVE, the experience of developing cross-platform GUIs with Qt and Coin3D was a resounding success. By Dunlop’s own estimates, the tools saved MVE programmers up to a year of time, allowing them a rare luxury in software development: the freedom to focus on product features, quality and robustness. What’s more, Qt and Coin3D have positioned MVE for efficient and intelligent development in the future, even as customer preferences change. “No matter what happens,” says Dunlop, “we’ll be able to quickly produce clean and consistent GUI code – all while keeping our coding standards high.”

Screenshots

Click on the small images to see the full-resolution image.