The next alpha version of The Forge is nearing completion. This new version will solve a lot of the bigger problems with The Forge and also be the first release to have a User's Manual. Version 1.0.4a is not expected to be the last alpha version in the 1.0 series. In fact, we will likely have two more, beyond 1.0.4 before moving to beta status.
The only thing remaining is to finish up the first draft of the User's Manual.
Wednesday, November 4, 2009
Wednesday, October 7, 2009
The Forge 1.0.3.91a Released!
A new alpha version of The Forge has been released on SourceForge! This version is still an alpha version, but it contains a whole slew of interesting upgrades and bug fixes. Anyone using an older version should upgrade. I double-checked both the i586 and amd64 packages, and both should be working without any problems this time.
If you discover any bugs, please report them to our bug tracker on SourceForge. If you have any ideas for improvements, you can also post those on our feature tracker on SourceForge, or on our Wiki page at http://theforge.wikidot.com/.
If you discover any bugs, please report them to our bug tracker on SourceForge. If you have any ideas for improvements, you can also post those on our feature tracker on SourceForge, or on our Wiki page at http://theforge.wikidot.com/.
Monday, October 5, 2009
The Forge 1.0 alpha released on SourceForge!
The Forge 1.0 is finally at an alpha state (for real this time)! With the recent feature freeze, we were able to determine exactly what needs to be in this version of The Forge, and what can wait until version 1.1.
We've got it all set up on our page over on SourceForge.net: https://sourceforge.net/projects/theforge/
Download a copy today! We have working versions for both AMD 64-bit architectures and i586 architectures, so that should cover everyone on Windows. If you're on an AMD 64-bit system, click the View All Files button. Open up the .zip file and run the .bat file.
Note: It looks like the i586 version requires you to make a single change to get it to work correctly. When you unpack the .zip file, rename the .jar file from 1.0.1.75a.jar to TheForge.jar
We've got it all set up on our page over on SourceForge.net: https://sourceforge.net/projects/theforge/
Download a copy today! We have working versions for both AMD 64-bit architectures and i586 architectures, so that should cover everyone on Windows. If you're on an AMD 64-bit system, click the View All Files button. Open up the .zip file and run the .bat file.
Note: It looks like the i586 version requires you to make a single change to get it to work correctly. When you unpack the .zip file, rename the .jar file from 1.0.1.75a.jar to TheForge.jar
Friday, October 2, 2009
Menu Items with Options
While version 1.0.1.69dev was officially released yesterday, I continue to struggle to find a decent way to deploy applications to the world. My current host, Wikidot, only allows files up to 10MB in size. The actual Forge application is much much smaller than that, but with all of the OpenGL libraries that are needed, it puts it just a little beyond that limit. If I deploy with Java Web Start, I can link to some online JOGL files, but Wikidot isn't properly configured for Web Start. Perhaps my only real option is to move ahead with SourceForge right away....
Anyway, while that is going on, I'm moving ahead with wrapping up an alpha version of the program. As of right now, the only real feature left to complete is to allow menu items to have specific options that they can configure with a button on the right side of the menu item. Wings' version is shown below:
I've now got that showing up in the menus of The Forge, as shown below:
I still have some code cleanup to do, and I need to wire it to actually work. This is the last feature needed for a working alpha version (for real this time).
Anyway, while that is going on, I'm moving ahead with wrapping up an alpha version of the program. As of right now, the only real feature left to complete is to allow menu items to have specific options that they can configure with a button on the right side of the menu item. Wings' version is shown below:
I've now got that showing up in the menus of The Forge, as shown below:
I still have some code cleanup to do, and I need to wire it to actually work. This is the last feature needed for a working alpha version (for real this time).
Thursday, October 1, 2009
The Forge 1.0 User Interface Complete
The user interface is now basically complete, as we take another big step towards a completed version 1.0. This version updates the menus to the requirements for version 1.0, including a select menu, a view menu, and renaming the window menu. It also adds in the rest of the Geometry Window toolbar, allowing for quick access to opening and saving files, as well as undo and redo.
Check out the screenshot below:
Check out the screenshot below:
The Forge 1.0.0.63dev Released
The Forge is finally available for download! The first public release of The Forge, version 1.0.0.63dev has been released over on our Wikidot page.
The version on the web only works for AMD 64 bit architectures. We're running in to some complications from the Wikidot framework, so that is all we're going to be able to post for the moment, but I'm in the process of working out a better solution that will allow for deployment on virtually any architecture, including i586 Windows, Mac, and Linux. That may be in place by the next public release.
Feel free to download a copy and give me some feedback!
http://theforge.wikidot.com/downloads
The version on the web only works for AMD 64 bit architectures. We're running in to some complications from the Wikidot framework, so that is all we're going to be able to post for the moment, but I'm in the process of working out a better solution that will allow for deployment on virtually any architecture, including i586 Windows, Mac, and Linux. That may be in place by the next public release.
Feel free to download a copy and give me some feedback!
http://theforge.wikidot.com/downloads
Wednesday, September 30, 2009
Version 1.0 Feature Freeze
OK, in the last post I said that we had reached 1.0 alpha, but once again, I'm going to have to take that back. I've been thinking about it, and there are a few more features that we need in version 1.0. So in this post, I'm going to list those extra features here. But this is the final list of features for version 1.0. Any other new features will have to wait until version 1.1. This is the 1.0 feature freeze!
1. Change the View menu to a Window menu.
2. Add a view menu that lets the user reset the view, or view along a coordinate axis (like the x-axis).
3. Add a select menu, that has the option to deselect everything (space bar) or select more (selects adjacent objects).
4. Allow for advanced modifier/primitive options. For instance, you want to add a cylinder, which has a certain number of sides by default. But lets say you want more or less than the default of 16 sides. You can click on the little box on the right end of the menu item to choose specific options before adding in the cylinder. Many modifiers do not have this, but a few do. Wings indicates that you can do this with a simple box on the right side of the menu item.
Those are the only requirements left for version 1.0. Additionally, there are a number of other things that still need to be done before the final version of 1.0 is released, including some form of a User's Guide, the mouse cursor needs to be hidden (and not actually move) when you activate a modifier, normals need to be fixed, the menu bar needs to be readjusted to center the mode buttons and add in open, save, undo, and redo buttons on the left side, and I would like to also start putting together an art gallery of work made in The Forge. Many of these things will only come in time.
Also, one further note. In my last post, I mentioned that I had an alpha version ready, but it was extremely buggy. I said at the beginning of this post that it was technically not an alpha version yet, but I've fixed the real killer bugs in it, and it is fairly stable now. Not perfect, but reasonable. I will be releasing the first public version of The Forge within a few days. I'm just working out the details of a good deployment scheme, and the world will be able to get a free copy of The Forge! Speaking of that, let's add one more thing to the list of things that need to be done by the final release of version 1.0: a good deployment scheme.
1. Change the View menu to a Window menu.
2. Add a view menu that lets the user reset the view, or view along a coordinate axis (like the x-axis).
3. Add a select menu, that has the option to deselect everything (space bar) or select more (selects adjacent objects).
4. Allow for advanced modifier/primitive options. For instance, you want to add a cylinder, which has a certain number of sides by default. But lets say you want more or less than the default of 16 sides. You can click on the little box on the right end of the menu item to choose specific options before adding in the cylinder. Many modifiers do not have this, but a few do. Wings indicates that you can do this with a simple box on the right side of the menu item.
Those are the only requirements left for version 1.0. Additionally, there are a number of other things that still need to be done before the final version of 1.0 is released, including some form of a User's Guide, the mouse cursor needs to be hidden (and not actually move) when you activate a modifier, normals need to be fixed, the menu bar needs to be readjusted to center the mode buttons and add in open, save, undo, and redo buttons on the left side, and I would like to also start putting together an art gallery of work made in The Forge. Many of these things will only come in time.
Also, one further note. In my last post, I mentioned that I had an alpha version ready, but it was extremely buggy. I said at the beginning of this post that it was technically not an alpha version yet, but I've fixed the real killer bugs in it, and it is fairly stable now. Not perfect, but reasonable. I will be releasing the first public version of The Forge within a few days. I'm just working out the details of a good deployment scheme, and the world will be able to get a free copy of The Forge! Speaking of that, let's add one more thing to the list of things that need to be done by the final release of version 1.0: a good deployment scheme.
Saturday, September 26, 2009
The Forge at Initial Alpha
Good news! The Forge is at the initial alpha version! That means that all major features for version 1.0 have been implemented! There is a long way to go before there's a stable release version of 1.0, but the project has come a long way as well.
I'll be straitforward though. This version is extremely buggy. I need to get it a bit more stable before I'll feel comfortable releasing an alpha version to the world. Most of the serious bugs that I'm running into (they're bad enough to make the program alltogether useless) come from operations that leave the mesh invalid (messing up the winged-edge data structure). So I've written some code to validate a mesh, and ensure that it is valid. Once this is working for all of the modifiers and the primitives, I'll be uploading a copy to the web so others can play around with it. Even when those bugs are worked out, there will still be a ways to go. And let's not forget that version 1.0 is as simplified as it possibly can be, and only minimally useful. But this is just the first step in what will hopefully be a useful program at some point in the future!
I'll be straitforward though. This version is extremely buggy. I need to get it a bit more stable before I'll feel comfortable releasing an alpha version to the world. Most of the serious bugs that I'm running into (they're bad enough to make the program alltogether useless) come from operations that leave the mesh invalid (messing up the winged-edge data structure). So I've written some code to validate a mesh, and ensure that it is valid. Once this is working for all of the modifiers and the primitives, I'll be uploading a copy to the web so others can play around with it. Even when those bugs are worked out, there will still be a ways to go. And let's not forget that version 1.0 is as simplified as it possibly can be, and only minimally useful. But this is just the first step in what will hopefully be a useful program at some point in the future!
Wednesday, September 23, 2009
New Changes and Thesis Plans
I've spent a little time working on the point deletion modifier over the last little bit, and added in some stuff for making sure that a mesh is valid. It is still not complete, but all I'm working on is the point deletion and face deletion modifiers, and then we'll have a functioning alpha version.
Also, I set up Mantis (a bug tracker) locally, but when my new website is built, it will be migrated online. I'm pretty excited about all of that!
Now for the bad news.... I just spent an hour doing this, when I should have been either asleep, or working on my thesis. I think I'm going to have to put a temporary ban on all of my fun projects until the end of the month, including this one. Sorry :(
Also, I set up Mantis (a bug tracker) locally, but when my new website is built, it will be migrated online. I'm pretty excited about all of that!
Now for the bad news.... I just spent an hour doing this, when I should have been either asleep, or working on my thesis. I think I'm going to have to put a temporary ban on all of my fun projects until the end of the month, including this one. Sorry :(
Saturday, September 19, 2009
Not Dead Yet
I just wanted to post a short note to say that this project is not dead yet, just temporarily on hold. I'm still trying to finish my thesis, and I've decided that some of these extra projects are just taking up too much time. So I've put many of them on hold until after my thesis is complete.
In addition, I have been bogged down with rebuilding my own website, so that I can move my tutorials off of Wikidot. I used to really like Wikidot, but they've started adding in a bunch of ads and other junk to all of the pages (which they promised they wouldn't do). In addition, Wikidot doesn't have all of the features that I would have liked, so I figure it is about time to move away from Wikidot and on to my own platform, which I've been working on in my spare time.
But within a couple of months, I should be able to move forward with this project. In the meantime, you still might be able to hope for a few small fixes, and possibly a public development release.
Once I move away from Wikidot, I'll be able to set up things like a bug/feature tracker, which will make this project much more useable in the future. Perhaps it is not still unreasonable to have version 1.0 release candidates by the end of 2009.
In addition, I have been bogged down with rebuilding my own website, so that I can move my tutorials off of Wikidot. I used to really like Wikidot, but they've started adding in a bunch of ads and other junk to all of the pages (which they promised they wouldn't do). In addition, Wikidot doesn't have all of the features that I would have liked, so I figure it is about time to move away from Wikidot and on to my own platform, which I've been working on in my spare time.
But within a couple of months, I should be able to move forward with this project. In the meantime, you still might be able to hope for a few small fixes, and possibly a public development release.
Once I move away from Wikidot, I'll be able to set up things like a bug/feature tracker, which will make this project much more useable in the future. Perhaps it is not still unreasonable to have version 1.0 release candidates by the end of 2009.
Wednesday, July 8, 2009
Edge Deletion Modifier Fixes
I've had a number of other things come up the last week or so, and I haven't had much time to work on The Forge, but today, I fixed the major bugs that were left in the edge deletion modifier.
There are only two things left to work on before the first alpha release: fixes for vertex deletion, and implementing face deletion.
There are only two things left to work on before the first alpha release: fixes for vertex deletion, and implementing face deletion.
Saturday, June 27, 2009
Selection Box Complete
I've completed work on the selection box tool. You can now drag a box across the screen to select everything inside of it. For example, in the image below, with this tool you can easily select all of the edges in a cylinder along the sides by dragging a box that contains these edges.
The selection box tool works in all modes, including vertices, edges, faces, and objects.
The selection box tool works in all modes, including vertices, edges, faces, and objects.
Friday, June 26, 2009
Selection Box
Thursday, June 25, 2009
OBJ Importer Complete
The OBJ importer is now complete! I'm sure it's not bug free, but it is functional. I was surprised that the adjacency/winged-edge stuff just kind of fell together without much trouble. Then I worked on importing materials as well. Since The Forge does not currently support texturing, basically all texture information within the file is ignored.
Below is my knot that was in Wings3D, colored and everything.
I exported it as an OBJ file, and then imported it back into The Forge:
It actually doesn't look as nice in The Forge right now, because the normals aren't being calculated correctly, so there's no shading being done. But having this importer done is a huge step in the right direction.
Below is my knot that was in Wings3D, colored and everything.
I exported it as an OBJ file, and then imported it back into The Forge:
It actually doesn't look as nice in The Forge right now, because the normals aren't being calculated correctly, so there's no shading being done. But having this importer done is a huge step in the right direction.
A Start on the OBJ Importer
I'm really down to only three major things: some work on the deletion modifiers, box selection, and an OBJ importer. All of these are going to be challenging to pull off and will probably take some time. I've done some work on each of these, so in a sense, you could say that every significant component in The Forge has at least been started on.
Right now, I'm working on the OBJ importer, and making good progress. The geometry is read in and assembled, and you can see in the image below, that this seems to be working. The winged edge data structure isn't being assembled correctly yet, though. I'll need to do some work to determine which edges are adjacent to other edges, and to let each vertex know of an edge that they are adjacent to. Beyond that, I still need to import the material information as well, which will take up a bit more time.
Right now, I'm working on the OBJ importer, and making good progress. The geometry is read in and assembled, and you can see in the image below, that this seems to be working. The winged edge data structure isn't being assembled correctly yet, though. I'll need to do some work to determine which edges are adjacent to other edges, and to let each vertex know of an edge that they are adjacent to. Beyond that, I still need to import the material information as well, which will take up a bit more time.
Monday, June 22, 2009
Sphere Primitive
The sphere primitive is now essentially complete. It still has some problems with normals, but I suspect that is actually caused by the normal calculation, rather than the sphere primitive itself. All of the primitives have this problem. It is one of the first bugs that will need to be addressed.
Below is a screenshot of the sphere primitive. At the same time, I decided to add in a lot of polygons to see how much it could handle. It seemed to work just fine, though I have a decent graphics card, which might explain why. This sphere has over 2000 polygons, which I suppose isn't an extremely large amount, but it is enough that I feel safe claiming The Forge can handle small models just fine.
Below is a screenshot of the sphere primitive. At the same time, I decided to add in a lot of polygons to see how much it could handle. It seemed to work just fine, though I have a decent graphics card, which might explain why. This sphere has over 2000 polygons, which I suppose isn't an extremely large amount, but it is enough that I feel safe claiming The Forge can handle small models just fine.
Undo/Redo
I've gotten the undo/redo system working now. I feel lucky, because it is one of those rare times where you type in some code, run it, and it works the first time. Of course, I haven't tested it thoroughly yet, that will come in time. But some basic tests show that is is working for the most part.
Sunday, June 21, 2009
Version 1.0 Plans
I just wanted to make a short post about what's left to do for version 1.0. I'm getting to the point where all major features have been implemented. There are only a few things left to do.
First, I want to implement an undo/redo system. This is important, because you occasionally make mistakes, and of course, you need the program to be forgiving, and allow you to go back.
Second, I want an importer that can read in OBJ files. The exporter for OBJ files is already complete. The importer will be a bit more complicated.
Third, I'm planning on implementing group selection, so that instead of selecting everything one item at a time, you can drag a box across the screen and select everything inside of it.
Fourth, I still need to do some work on the deletion modifiers. In particular, you can't delete faces at all, and the vertex and edge deletion modifiers are limited and buggy.
Fifth, I still need to finish my sphere primitive, which is only partly implemented.
Once these five steps are complete, we'll have a functional alpha version that has all major features implemented, though likely still quite buggy.
After version 1.0 is complete, I'm planning on developing a version 1.1, that has a few more primitive types (cone and torus) as well as a couple more modifiers (especially ones along normals, and possibly an extrude region) and a few more importers and exporters (.dae, .fbx, and .3ds, all of which can be done with the FBX SDK).
First, I want to implement an undo/redo system. This is important, because you occasionally make mistakes, and of course, you need the program to be forgiving, and allow you to go back.
Second, I want an importer that can read in OBJ files. The exporter for OBJ files is already complete. The importer will be a bit more complicated.
Third, I'm planning on implementing group selection, so that instead of selecting everything one item at a time, you can drag a box across the screen and select everything inside of it.
Fourth, I still need to do some work on the deletion modifiers. In particular, you can't delete faces at all, and the vertex and edge deletion modifiers are limited and buggy.
Fifth, I still need to finish my sphere primitive, which is only partly implemented.
Once these five steps are complete, we'll have a functional alpha version that has all major features implemented, though likely still quite buggy.
After version 1.0 is complete, I'm planning on developing a version 1.1, that has a few more primitive types (cone and torus) as well as a couple more modifiers (especially ones along normals, and possibly an extrude region) and a few more importers and exporters (.dae, .fbx, and .3ds, all of which can be done with the FBX SDK).
Manual (Keyboard) Entry for Modifiers
When I was originally working on the framework for modifiers, I made some good progress with manual entry with a keyboard. This is useful because when you are handling the modifier with the mouse, you can see visually what's going on, but you may not be very precise. For instance, let's say you want to rotate something 45 degrees. With the mouse, you can rotate it until it looks about right, but you might be off by several degrees. With manual entry, a dialog pops up that allows you to type in specific values for the parameters, with zero error. I had some strange bugs in it that made it useless when the original modifier stuff was done, but now I've gone back and fixed the problems that it was having originally, and the manual input system works like a charm. Press TAB to activate it.
Export as OBJ
The Forge now gives you the ability to export a model as an OBJ model, so you can load it up in various other programs. For instance, take the cube below, with color materials, made by The Forge.
I've taken this model, which was exported as an OBJ and imported it into Wings 3D, shown below:
Importing will be a bigger challenge, because I'll have to assemble a winged edge structure from the data in the file. I've made lots of OBJ importers before, but they've never required assembling a winged edge data structure from the data. Importing is the next big step.
I've taken this model, which was exported as an OBJ and imported it into Wings 3D, shown below:
Importing will be a bigger challenge, because I'll have to assemble a winged edge structure from the data in the file. I've made lots of OBJ importers before, but they've never required assembling a winged edge data structure from the data. Importing is the next big step.
Friday, June 19, 2009
Materials
I've completed work on color materials. The materials weren't actually to bad to implement, it was the GUI for editing and selecting materials that took the time. So now The Forge allows you to create and apply materials to objects.
The outliner shows you the materials that are in your project, and allows you to edit them. You can see the outliner in the picture below.
Below are a couple of pictures of a few simple objects with materials applied to them. I'm not really able to show this with more complicated models, because for some reason, when I added normals, the program suddenly got really buggy. It crashes on most of the modifiers, as well as with the cylinder primitive. I think I know what the problem is for those though, so they shouldn't take long to fix. In the mean time, check out the images below.
Yes, that's cornflower blue, and yes, that yellow material is emissive, so the shading is obscured by the "glow".
The outliner shows you the materials that are in your project, and allows you to edit them. You can see the outliner in the picture below.
Below are a couple of pictures of a few simple objects with materials applied to them. I'm not really able to show this with more complicated models, because for some reason, when I added normals, the program suddenly got really buggy. It crashes on most of the modifiers, as well as with the cylinder primitive. I think I know what the problem is for those though, so they shouldn't take long to fix. In the mean time, check out the images below.
Yes, that's cornflower blue, and yes, that yellow material is emissive, so the shading is obscured by the "glow".
Thursday, June 18, 2009
Normals, Smooth Shading, and Material Editor
Progress the last couple of days has been slow. I've had other things that I've been working on, and a couple of bugs that gave me problems for a long period of time. But it's time for some updates.
I got normals into the model, mostly. When modifiers change the model, they'll need to recalculate the normals. Once I got the normals in there, I put in smooth shading, and I'm debating on allowing the user to switch back and forth between smooth and flat shading in version 1.0.
Also, I got started on color based materials. Texturing won't come until after version 1.0, but color materials are coming soon. Below is a screenshot of the material editor that is in place right now. I still have some work to do to assign materials to faces.
I still have a way to go, but over the last two days, I've begun tackling the two biggest features left: normals, and materials. I also finished up most of the menu items, and there are only a few things left to do before The Forge reaches an alpha state. (For The Forge, an alpha stage is one where all major features are implemented, but still buggy.) If I keep finding time to work on it, this might happen in about a week.
I got normals into the model, mostly. When modifiers change the model, they'll need to recalculate the normals. Once I got the normals in there, I put in smooth shading, and I'm debating on allowing the user to switch back and forth between smooth and flat shading in version 1.0.
Also, I got started on color based materials. Texturing won't come until after version 1.0, but color materials are coming soon. Below is a screenshot of the material editor that is in place right now. I still have some work to do to assign materials to faces.
I still have a way to go, but over the last two days, I've begun tackling the two biggest features left: normals, and materials. I also finished up most of the menu items, and there are only a few things left to do before The Forge reaches an alpha state. (For The Forge, an alpha stage is one where all major features are implemented, but still buggy.) If I keep finding time to work on it, this might happen in about a week.
Tuesday, June 16, 2009
Connect Vertices Complete
I've (sort of) finished the last creation modifier: connecting vertices. It actually doesn't work in quite the same way as Wings yet. For instance, if in Wings, you have a rectangle with eight vertices selected on one side and another eight on the opposite side, and choose connect from the menu, it will make eight connections. This doesn't do that yet, because the mechanics are a bit complicated, but it is something I'm planning on for the future.
At any rate, now I'm essentially done with the creation modifiers, and I'm moving on to the deletion modifiers. Once that is complete, I'll be headed towards a pre-alpha release version that people will be able to download.
At any rate, now I'm essentially done with the creation modifiers, and I'm moving on to the deletion modifiers. Once that is complete, I'll be headed towards a pre-alpha release version that people will be able to download.
Monday, June 15, 2009
Extrude Complete
I've completed the Face > Extrude modifier. It was quite a bit of work, mentally, keeping track of all of the edges and vertices. But I can tell you, I already miss having the ability to do Face > Extrude > Normal that Wings3D provides. In fact, all of the modifiers that I have, I'll eventually want to add in versions that work in the direction of the normal.
Beyond that, the fact that I'm still missing Face > Extrude Region is a big limitation as well!
Enough complaints though. The fact that extrusion is working is a big deal. It took quite a bit of time, but this feature makes The Forge tons more powerful, and it leaves only one creation modifier to go: Vertex > Connect.
You can see in the image below, that now, I'm suddenly able to do quite a bit more with The Forge.
Things are progressing....
Beyond that, the fact that I'm still missing Face > Extrude Region is a big limitation as well!
Enough complaints though. The fact that extrusion is working is a big deal. It took quite a bit of time, but this feature makes The Forge tons more powerful, and it leaves only one creation modifier to go: Vertex > Connect.
You can see in the image below, that now, I'm suddenly able to do quite a bit more with The Forge.
Things are progressing....
File Chooser Improvements
I've had limited time today, and I will probably have limited time for a few days in a row here, since I've got a few pressing matters that I need to deal with.
Still, though, I've accomplished a number of things that will be helpful. I've made a number of improvements to the save/load process, including displaying icons for *.forge files, and adding on .forge to the end of filenames of they don't have it already. This way, if you just type in "Junk", it will name the file "Junk.forge". Of course, this has one limitation: if you call the file "Junk.eisqwt", the program will call it "Junk.eisqwt.forge". So ultimately, I'll need to go back and make it so that it only does this if there is not another file extension already.
Below is a screenshot of the current file chooser:
Still, though, I've accomplished a number of things that will be helpful. I've made a number of improvements to the save/load process, including displaying icons for *.forge files, and adding on .forge to the end of filenames of they don't have it already. This way, if you just type in "Junk", it will name the file "Junk.forge". Of course, this has one limitation: if you call the file "Junk.eisqwt", the program will call it "Junk.eisqwt.forge". So ultimately, I'll need to go back and make it so that it only does this if there is not another file extension already.
Below is a screenshot of the current file chooser:
Sunday, June 14, 2009
Edge Cut Complete
The first creation modifier is complete: Edge > Cut. This allows you to take an edge and split it into two with a new vertex in the middle. There are three planned creation modifiers for version 1.0: edge cutting, connecting vertices, and extruding faces.
These, along with the existing transformation modifiers, and a few deletion modifiers will give a fairly complete set of tools for doing basic modeling. In later versions, these modifiers will likely be turned into plugins, and more modifiers will be added.
These, along with the existing transformation modifiers, and a few deletion modifiers will give a fairly complete set of tools for doing basic modeling. In later versions, these modifiers will likely be turned into plugins, and more modifiers will be added.
Transformation Modifiers Complete
Of the modifiers that will be available in The Forge 1.0, there are three basic types: transformations, which take existing geometry and move it around; creations, which add new geometry to the model; and deletions, which remove geometry from the model. All of the planned transformation modifiers for version 1.0 are implemented now. This is a huge step, since this means that you can do some basic modeling. As a result, I'm making the current version of The Forge be version 0.2.
Saving and Loading
Well, saving and loading to a file is complete now. It was actually quite simple, since I just used serialization. It appears to be working well. You can see in the image below that the menu items are now enabled, and the model that is shown in the Geometry window was saved and loaded later.
Because I used serialization, it wasn't much work to do, and even as I make future modifications to the model class, I won't ever have to change anything about the saving and loading component.
The drawback is, it won't be easy to read in files from a previous version of the model class in some situations (if we remove something). I don't think that will be a problem, but if it becomes one, I suppose I can make a converter for it.
Because I used serialization, it wasn't much work to do, and even as I make future modifications to the model class, I won't ever have to change anything about the saving and loading component.
The drawback is, it won't be easy to read in files from a previous version of the model class in some situations (if we remove something). I don't think that will be a problem, but if it becomes one, I suppose I can make a converter for it.
Saturday, June 13, 2009
Movement Modifiers
I've finally gotten a system ready for modifiers, which are the basic editing component of The Forge. Any tool that you use to modify a model is a modifier. Some modifiers do not require user input, like for instance, one that does smoothing on the model, or the transition modifiers, which change what is selected in a model when you go from one mode to another (for example, the end points of any selected edge get selected when you switch over from edge mode to vertex mode). Other modifiers require user input. In Wings and in The Forge, this is typically done by turning on the modifier and moving the mouse around, which applies the input values to the modifier. For example, you choose Move > X from the menu, and then you can move the mouse side-to-side, see visually where the movement will put the selected stuff, and then apply or cancel the modification.
It took quite a bit of time between yesterday and today to design and develop a system for handling various modifiers, but it is basically going now. You can see in the screenshot below, that you can do some basic editing of the model's mesh.
Right now, the only things you can do are move vertices, edges, faces, and meshes. I'm still planning on rotation around an axis, as well as scaling (uniform, axis, and radial), along with a few modifiers to add to the mesh (connect two vertices, cut edges, and extrude faces), as well as modifiers to delete parts of a mesh.
The other day I said that once these things are going, the state of the program would move from pre-alpha to alpha, which I think I'd better retract. Once these things are going, you will indeed be able to do basic modeling, but there are a number of other features that would need to be implemented still, so the program would still be in a pre-alpha state. Having said that, though, having the underlying modifier system in place means huge progress!
It took quite a bit of time between yesterday and today to design and develop a system for handling various modifiers, but it is basically going now. You can see in the screenshot below, that you can do some basic editing of the model's mesh.
Right now, the only things you can do are move vertices, edges, faces, and meshes. I'm still planning on rotation around an axis, as well as scaling (uniform, axis, and radial), along with a few modifiers to add to the mesh (connect two vertices, cut edges, and extrude faces), as well as modifiers to delete parts of a mesh.
The other day I said that once these things are going, the state of the program would move from pre-alpha to alpha, which I think I'd better retract. Once these things are going, you will indeed be able to do basic modeling, but there are a number of other features that would need to be implemented still, so the program would still be in a pre-alpha state. Having said that, though, having the underlying modifier system in place means huge progress!
New Icon for The Forge
New icons all around!
I didn't think I'd have much time to do anything with The Forge today, but turns out, I did, but not much. I did some small adjustments to the main logo icon, to make it shiny, and remade the About box icon and logo to reflect those changes. I also added an icon to the main window.
In addition to that, I redid the colors on the Geometry Window tool bar to reflect the colors of the logo, shown below.
I finished creating the basic context menus, though they don't do anything yet. I'm still in the process of designing the underlying architecture for these menu commands. It is something that needs to be pretty flexible, since these are eventually going to be plugins, so I want to take some time to design it well, so that it requires the least amount of changing later, as well as provides the most flexibility, though I think I've got a system that will work well. Perhaps tomorrow, after I've finished up a few things for work and stuff, I'll be able to get some basic editing going....
In addition to that, I redid the colors on the Geometry Window tool bar to reflect the colors of the logo, shown below.
I finished creating the basic context menus, though they don't do anything yet. I'm still in the process of designing the underlying architecture for these menu commands. It is something that needs to be pretty flexible, since these are eventually going to be plugins, so I want to take some time to design it well, so that it requires the least amount of changing later, as well as provides the most flexibility, though I think I've got a system that will work well. Perhaps tomorrow, after I've finished up a few things for work and stuff, I'll be able to get some basic editing going....
Thursday, June 11, 2009
Beginnings of Context Menus
One of the big things that Wings has that is nice is their context menus. The Forge is going to have these as well, and will be operated in a similar manner. Basically, rather than piling a bunch of icons on the screen, and hoping that you'll be able to find the one that does the job you want, only the options that are valid at a particular point in time will be available.
Today I got started on making those menus, though there is a long way to go before they will be fully developed. In fact, I'd say that when they are functioning like they should, it will be time to move from 'Pre-Alpha' to 'Alpha', since you'll be able to model things.
Wednesday, June 10, 2009
Selection Mode Changing and an About Box
The Forge is coming along nicely, though it obviously still has a ways to go. Today, I added in functionality for switching between various selection modes, and having the selected pieces of the model respond appropriately. (For example, if you have a vertex selected, and switch to edge mode, adjacent edges will be selected as well.)
Below is a screenshot of the current development of The Forge.
Additionally, we've added in an about box, which was just something that I didn't think would take very long to do, and I could just do before going to bed, but it took over an hour to make the image and everything. Here's what it looks like. I have to say I'm pretty proud of the way it turned out.
Below is a screenshot of the current development of The Forge.
Additionally, we've added in an about box, which was just something that I didn't think would take very long to do, and I could just do before going to bed, but it took over an hour to make the image and everything. Here's what it looks like. I have to say I'm pretty proud of the way it turned out.
Tuesday, June 9, 2009
Launch of The Forge development blog
I've been spending quite a bit of time lately working on my new 3D modeler, The Forge. It is based on Wings3D, and I'm hoping that because it is implemented in Java, it will take off as an open source project. Of course, I'm not sure at this point whether this will be open source or not, but I'm thinking it will be.
Anyway, today, after spending some time cleaning up my picking/selection code, I moved forward with starting to implement modifiers. Modifiers will be the basic building block of the modeling process. It is what you'll choose from the menus to make things happen.
I've started working on some simple modifiers for when you change the selection state (e.g. from vertex mode to face mode). I've still got a ways to go on that, but hopefully tomorrow or the next day, that will be complete, and I can start doing things like moving vertices and stuff.
Anyway, today, after spending some time cleaning up my picking/selection code, I moved forward with starting to implement modifiers. Modifiers will be the basic building block of the modeling process. It is what you'll choose from the menus to make things happen.
I've started working on some simple modifiers for when you change the selection state (e.g. from vertex mode to face mode). I've still got a ways to go on that, but hopefully tomorrow or the next day, that will be complete, and I can start doing things like moving vertices and stuff.
Subscribe to:
Posts (Atom)