Getting data and images out of Apex

February 25, 2019

Another short video showing some progress on Apex.  Here one can see the workflow for defining a cylinder through the dataset, seeing the concentration profile inside the cylinder, and copying the data from the concentration profile into excel.  Also, it shows copying the mass spectrum data into excel — note how the mass range matches the selected range of the window — and also copying the mass spectrum image, demonstrating how it works seamlessly with an image editor like Acorn.

As always, please contact me if you are interested in Apex.

Getting the mass spectrum working

February 18, 2019

The mass spectrum is rendering nicely now.   Here’s a video which shows the state of work:  

When no ions are selected, the mass spectrum shows the spectrum for all ions in the sample.  When some ions are selected, it shows a spectrum for just the ions that are selected,  The units on the x axis are AMU, and the units on the y axis are the fraction of ions that appear in a given histogram bin, divided by the bin width.  This means the area under the curve should equal 1.

As always, let me know if you are interested in Apex.

Reviving Apex

February 13, 2019

So, I’ve been working on getting Apex up and running once again.  It is a significant project.  

The original Apex was written in C++, and I had started work moving it to ObjectiveC quite a while ago, in order to take advantage of new Apple technologies.   It took longer than I expected, and meanwhile MacOS has moved ahead making a number of changes.  Mort significantly, OpenGL support has not been the best, and with Mojave (MacOS 10.14), Open GL is deprecated.  This prompted a decision to switch to Metal as the rendering engine.

The past few weeks I’ve gotten the Metal rendering working and hooked up, and finally there is something to show for the efforts:



As always, let me know if you are interested in Apex.

Popular decomposition

December 28, 2013





Regular Solution Model spinodal decomposition applied to image from popular culture,  temperature = 0.6 Tc.


Apex a48 is live

March 13, 2008

The first update in a long time. This includes the planes UI I screencasted a few days ago, and plenty of other new bits in the UI and under the hood. The conversion away from DITL resources over to Interface builder nibs is complete. I’ll be screencasting more in the next few days.

Screencast demo of the new planes feature

March 12, 2008

Here’s a screencast I did showing the new UI for manipulating and exploring planes. There’s a high resolution version on Viddler, which really works great in full screen mode. When embedded in another page, like this YouTube link, its hard to see what’s on the screen.

I’ll be releasing a new version of Apex with this feature in it soon.

An Introduction to Using Apex

March 9, 2008

Here’s a step-by-step intro to some first steps with Apex. I’ll be trying to add content to this document as I am able.


Moved the Blog to WordPress

March 9, 2008

This blog previously lived here:

Where the links should still be active. I’m trying to move the old content over here to WordPress.

A Movie Example

March 9, 2008

Here’s a movie I made to show off some of the 3D graphics of Apex. The rotation sequence is produced from a script — the other bits are screengrabs from Apex with different atoms visible in the display.

Its all thrown together with iMovie with a voiceover I recorded late one night, so I sound a little sleepy.

Improvements in Apex a47

July 23, 2007

A number of improvements since the last update from a few months ago.

All dialogs have moved to .nib format.

QuickTime movie code to use the objective C APIs of QTKit. QTKit will be the supported QuickTime platform going forward for Apple, so its good to move there now.

OpenGL code now uses quite a bit more of the graphics card capability, so OpenGL images draw much more quickly. Also changed the lighting angle a little bit for more consistent colors using OpenGL.

Next will be code for viewing only a fraction of a dataset, so those large datasets are a little more manageable.