Sunday, November 19, 2006

We need better presentation software


Let's face it: OpenOffice.org Impress is a lame, boring presentation program. What if you want to do something really fancy? Something Keynote fancy?

Well, if you're a Linux user, you're out of luck. OpenOffice.org Impress is the best you can do, but it's not for a lack of other people trying. A few years ago, GNOME's Agnubis was a potential candidate for a some new presentation software, but it unfortunately never took off. Even more recently, Criawips (aka AbiShow) seemed to show some promise, but never ended up making it very far. Currently, the project looks dead.

So in 2006, if you're going to make a presentation on Linux, it's going to look like it's from 1995. If you're a serious developer looking for a new project, the libraries seem to have fallen into place since Criawips in order to make this a viable project:

  • Cairo provides a nice SVG 2D graphics canvas.
  • GStreamer (which has finally reached maturity) makes it easier to handle embedded audio and video.
  • OpenGL (which has been there all along) is also a fairly straightforward graphics API (can do 2D as well as 3D), and can be used to do funky 3D transitions and such easily.
  • Hell, even SDL would be a good choice for the graphics API.
  • If you're feeling rather C#, Mono's Tao provides bindings for both OpenGL and SDL. I can't vouch for how strong GStreamer# is, but it at least seems to exist.
Maybe someone can fill me in as to why nobody's created the killer open source presentation application yet. The libraries are there to handle the fancy stuff, and the simple stuff (allowing creation of text-boxes and insertion of images) should be straightforward to do.

Discuss.


Digg!

19 comments:

Martin Hedberg said...

I am a meteorologist and photographer working with climate change issues. I do lots of presentations, -with a ThinkPad X40, XP Pro and ppt. I think it works fairly well for basic presentations, but I want to do more. Do I have to go for a Mac to reach the next level or is there an embryo for a Linux solution?

GameGod said...

Hi Martin,

I think you pretty much have to go for a Mac/Keynote (or find some better presentation software for Windows).

Unfortunately, I haven't heard of anything new on the horizon for Linux since I posted this. I wish this wasn't the case...

Jon said...

I wish I did more software development... I only took computer science in my grade 12 year. Unfortunately don't practice what I have learned.

Perhaps starting February I could learn stuff since a really good Keynote-esque presentation suite is needed.

I did a slideshow with KPresenter (of the KOffice Suite) and I managed to conjure something really nice-looking, however it lacked even simple transitions and movements that powerpoint is known for.

cengiz said...

I'm glad to see your post. I would like to share some of my ideas that I've been cooking for a while now.

I come from an academic environment and I write papers and make presentations in LaTeX. The recent PDFTeX extension allowed me to make portable PDF presentations with hyperlinks, etc., that can be viewed on any Acrobat reader-capable computer.

I know that this is far from your cry to find a program to produce better and cooler-looking presentations. However, I do have an idea for cool and still to keep it simple and compatible.

I propose a presentation generation system that takes an XML input to produce a well-defined and fluent presentation that can be navigated in an out-of-the-box way. Everything is displayed using accelerated openGL graphics. For me openGL provides navigational capabilities more important than cool-looking transitions: it can be used to zoom in to parts of a well-structured page, or to pan to parts of a large chart or graph quickly and elegantly.

All of this may sound complex, and you may think that it will make presentations bulky and difficult to control. However, the input language will force the presentations to end up exactly the way you intended them to be, and avoid confusion by defining well-behaved set of simple constructs. For instance, you can define a view (a page or a slide) that contains four subviews arranged in a box. You can specify to show the big picture in the opening page. Then, when you press the forward button, it can zoom into the upper left quadrant, and you can explain that part of the picture in more detail. The parts to be zoomed in are specified similarly to the way tabbing order is specified in HTML pages. You can specify views and transitions between them. You can even specify mouse gestures (e.g., howevering on a part of the page will temprorarily zoom it in), or custom navigation keys.

You may say "Who's going to type XML to get a presentation?", and the obvious answer is that the system will have a visual interface (GUI) that writes the intermediate XML for you. The reason to define an input language is to provide a well-defined programming interface to the system and reduce the complexity of the software by partitioning the problem of visual interface and actual task of design and generation of a presentation. This will also allow programmers to complete to provide better front-ends to the same backend.

The unfortunate part is that I have been too lazy to implement anything so far. I have prototype programs that show openGL views using Java3D, but I have not defined the input language yet. So all of this is a bunch of dreams ;)

I would be willing to collaborate to bring some of this to reality if anybody is motivated to help.

Cengiz Gunay

Raphael said...

keyjnote does more or less what you want: zooming, overview, nice transitions, highlighting, etc.
As it is written in Python (with pyGL) adapting it to your specific needs is very easy.

Peter C said...

I'm excited to have found this thread. Like others, I've been dreaming for ages about presentation software for Linux that works as we think, not in the horribly linear, frame-by-frame model of PowerPoint. I'd love to be able to have objects you can click on, that expand tree-like into groups of subtopics, and can then be collapsed again; progress bars at the foot of the screen that help the audience to follow the overall thread of your message; gorgeous transitions, like Keynote; and heaps of other ideas that exist only in my dreams right now.

I'd be willing to contribute to a programming effort. It's a long time since I programmed, but I did a lot in the early 90's.

This would be an area in which Linux could gain a clear advantage over Windows. Now that *would* be exciting...

Peter C, Hong Kong

GameGod said...

Unfortunately, my time is already committed to another open source project currently (not to mention I'm a student too... school needs some time too, lol)

KeyJNote is definitely closer to what I had in mind that anything else out there it appears, but I still think we can do a lot better.

If I might add, I'm currently trying to design a knock-out presentation, and I've started doing it in Blender. ( http://www.blender.org ) My presentation is based on a powerpoint/OO impress version that I did last year, but now I'm not only throwing in fancy transitions, but I'm also making it a bit more immersive (it's hard to explain without giving it all away) :P

I guess I should throw in that my presentation is going to end up being a movie (MPEG or something), and I'll have to stop the movie by hand (with a remote) whenever a new slide comes on. I think it's still going to turn some heads though....

(I've basically mapped some of my slides as textures on planes/cubes, and mapped some videos to these objects as well. I didn't think it'd be easy to embed video in Blender, but it was.)

Jeremy said...

Strange you should mention blender that way since I was just considering the possibility of using blender and python to build presentation capabilities into blender. I don't know if it's feasible or not but I am looking into it to see. My church could use a good presentation software. Impress/Powerpoint just seems to be a little to boring and blah.

Yang said...

I use KeyJNote but am very much with GameGod on this - the presentation state of affairs can be vastly improved.

In the meantime, I hope you release your slide materials (when it's done)! I'm sure many people are now curious to see your mind-blowing presentation visuals. I'll be honest - I just came across this post via Google so I won't remember to check back on your blog, but if you wouldn't mind contacting me when this happens, my contact info is on http://www.mit.edu/~y_z/.

I have to say that a video might not be a great idea. Compressed video/low-res => unacceptable quality, uncompressed/high-res => impossible performance; you might as well stick to running a custom OpenGL program, as risky as that sounds.

Anonymous said...

Have any of you read Presentation Zen? Fancy transitions just distract the audience from what you're telling them, and you don't need anything more than text and great images to give a good presentation. Hell, I made a presentation using Google Presentation and it was received with great enthusiasm.

Go to the site at presentationzen.com. The one thing I am missing is that I can't get nice looking 2D graphs and pie charts like you can from Keynote. That's it. That's all I need. Putting efforts into silly transition effects are completely unnecessary.

maswey said...

thank you nice sharing
cep programsymbian programnokia programhtml kodlarıbedava cep oyunlarıcilt bakımı

blog said...

thank you nice sharing
Atv Euro 2008 izleAtv Euro 2008 şifre

Janis said...

Maybe 280 Slides (http://280slides.com/) is what you're looking for ;)

maswey said...

MSN Şifresi Değiştirmek (resimli anlatım)

Anonymous said...

beamer

Arlene said...

Strongly agree there needs to be better presentation software! There is no replacement for powerpoint. In my engineering company we use ppt because 1) we show mpg movies in presentations 2) we must display presentations on customer's Microsoft computers. Impress contains no built-in mpg viewer and does not have a compact show-only program that can be sent with the presentation which allows the presentation to be shown on a MS (any) OS. I like keynote but it is a MAC-only product but shows on most anything. I am stuck with a dual-boot and powerpoint.

Manas Pathak said...

latex + beamer + tikz is all you need

Waseem said...

Like the idea....very interesting...thanks you share it.

Church Software

The Geeks said...

Thanks for review, it was excellent and very informative.
thank you :)