Thursday, December 28, 2006

Hey hey, kids

Not an update about freyja, but useful. In OpenOffice you can force embedd images by choosing the menu Edit > Links... then select the images you wish to embedd and click [Break Links]. If you're working on HTML -> PDF docs this is very nice. ;)

Wednesday, December 27, 2006


I might get some time to update the codebase tomorrow. I had food poisoning today, and was out for holidays before that. I'm going to finish up my holiday shopping tomorrow by using some gift cards. I hope to get a nice cook's or paring knife if I can afford it. It's a lot of basic transform code that's the most annoying for users now. Now is the time to fix the low hanging fruit. ;)

I'll try and make time to get all these quick transform changes:
  • Rotation cursor fixes for rendering vs actual transform.
  • Multi-object modes might get a new UI design to avoid confusing the user.
  • Basic geometry previews will use blend vertices buffer to avoid changing actual data.
  • Hook up UV transforms, and flesh them out.
  • Update the ABI with new transforms, and avoid doing transform algorithms in client.

Sunday, December 24, 2006

UI refactoring

Finally getting around to cleaning up the UI side of freyja. I'm going to try and get all transforms under a central method, and finally get full undo/redo for all object types. Right now certain modes don't offer undo and I think builds still have redo disabled. A lot of these are easy to implement, but I have to get policies in place that make sense. I found a bug in the aging libhel that might have to be addressed before I can finish the UI refactor. How do I test transforms you ask? Apparently I can make a sweet Cobra Commander helmet by randoming transforming any object without even extruding. It also gets me thinking about custom group colors, since groups do double duty in 0.9.5 for smoothing and quick transforms. Why pink, orange, yellow, and gray you ask? I don't have the answer other than that's the only colors I could think of at the time. Maybe I should add custom colors while I'm thinking about it. =)

I've also recently checked some new features into the backend for allowing ye olde geometry lists like in 0.9.3 and previous versions. I might even make ABI wrappers for them, since you can avoid having to use flags for various operations that support the lists. The backend is certianly more robust than the UI, so that's why I'm going to shift to refactoring the front end.

Saturday, December 23, 2006

Oh noes!

Yes, is down. It's a good thing the freyja website is a container. The fourms [ ] and this blog are still up anyway. I also got a crash fix, and a new dialog feature in svn since last post. Ah, the holidays are a great time to fix up OSS projects. =)

win32 patch

Got a new patch up to fix the missing tool tips, and clean up the deprecated API use in the Gtk+ binding. If you wonder why I post so many win32 builds then you should ask who's filing the most bug reports. Also I assume most linux users can do a 'make native' or 'make ubuntu' on svn source and don't need near daily builds. =)

Thursday, December 21, 2006

Win32 fixes and building a future

Win32 build love
Thanks to leileilol for the Windows build bug report! I fixed the new win32 bundling issues, and I disabled the 60fps cap until I can properly fix the win32 timer. The new bundle has all the model, image, and ui plugins as well as some sample glsl shaders. I spent about the entire day at hospital in a metal donut. It's great I could come home and still knock out some bundling issues so fast.

This should make rendering in Windows builds much, much better. Yes, I'm using only wine to test the Windows builds right now. I'll have to drag out vmware (and maybe an old windows box) more often. ;)

TODO or not TODO
If you read the TODO and BUGS files in the project you might wonder how features and fixes sometimes just 'pop-up' seemingly from out of nowhere. There are two main reasons for this:
  1. I often find and fix bugs with a higher priority than what is in the BUGS file.
  2. I often add features out of order, since I have no 'ship date'.
That's how Python plugins and GLSL support 'poped up' in svn in a single day. I saw a lot of requests for the features, and I found ways to implement both in a day. Sure there are some more basic and flat out more important things I could be doing. I'm just one guy banging this stuff out, so I have to adjust very quickly. Also these same features off loaded a ton of other features from my TODO. How do you ask?

Python let's users write cross platform scripts and plugins with a commonly known language. You can basically do anything you can think of in a freyja Python script/plugin. How did I implement support overnight? I wrote a simple python script to examine my C ABI for libfreyja and generate a working Python API to wrap it. Everyone thought I was nuts shuffling around the ABI, and grinding on it so much relative to easy payoffs like fixing skinning. I can now simply generate C# and Python APIs with scripts instead of just having skinning done, which is the better payoff knowing that? I can always fix skinning later, since 0.9.3 had removed the feature no one expects it right now anyway. I will get that fixed soon I promise. ;)

GLSL offloads all kinds of rendering and effects work from me. I provide a few example shaders like per-pixel lighting and such, however I expect people to be able to do more with the material editor than they dreamed now you can assign shaders per material. It's almost unlimited potential there. I'm going to get the texture control system done soon so multitexture, gloss, normal maps, etc can be done in shaders with a simple to use uniform system. Basically you'll be able to assign a texture list dependency in the material editor and have your shader treat those textures however you want. How is that for moving more work off my stack? I hope these two examples show how I work with Open Source to try and get more bang for my buck in terms of time put into the project. I am working on all those "A" bugs, but if you read the Changelog you'll see they're not on a due list yet. Ah, beta prerelease. Keep sending in those bug reports and feature requests. =)

Wednesday, December 20, 2006

First post!

Well, like every other Time Person of the Year I need my own blog. I put off getting one for the longest time due to the fact I rant and rave on IRC more than enough. This blog is not about my cat or dog sadly, but I'm going to give a trial run of posting about Open Source development on here. At least until it's a waste of time or boring. Here's the same boring screenshot showing off the new GLSL support for Linux and Windows builds of freyja. One man can make a 3d modeler and a game engine alone, but it sure takes a while. =)