Sunday, November 14, 2010

RugWeaver is deployed.




The last couple of days have been extremely productive in bringing RugWeaver to a usable state. All of the classes have been rewritten and all of the non-iterative shapes can now be used with the iteration codelets. The two pictures show the RugWeaver Applet running with the default script executed. The first shows a stamping of rectangles that get progressively lighter, where the Pattern object is selected (red boxes around purple circles). The second shows the applet running the default script with the grid codelet being used to turn off the coordinate grid.

It is very exciting to see the program finally in a usable state. I look forward to receiving feedback from the students who use it!
The deployment is available here.

Monday, October 25, 2010

Rug Weaver almost there...



Rug Weaver is nearly complete in terms of being a drawing program. I have added in functionality for drawing triangles, triangular iteration, linear iteration, and the needle class which replaces lines, points and rectangles. I just noticed that the needle class needs a 'fade' codelet, and I know I have to play with the hit tests to make sure that they all work. The rest of the program as described works great. The image above was created interactively, demonstrating each of the shapes, with no complaints from the software. I also greatly cleaned up the code and deleted all files that are no longer used!

Sunday, October 17, 2010

Programmable Rug Weaver



The programmable version of RugWeaver is on it's way. I have converted the classes to be just 'Needle', and 'Icon'. Icon is transparent to the user and does the work of drawing the individual shapes on the canvas for 'Needle'. The picture shows Rug Weaver after programmatically creating and 'Begin'ing a rectangle.

I have noticed that the Control codelets have difficulty in certain areas. For example, if you look where the codelet box 'Move Left 1()' is, it was extremely difficult to get that codelet in that spot. That is also where I would have put 'Move Down 1()' however I could not get the 'green bar' to insert it there once the 'Move Left 1' was in. Notice that I have used a 'Repeat While' with a nested 'Repeat N', very nice to have iteration working so well!

It of course is no where near perfect, however it is very satisfying to have the program create a shape in the way it was intended to.

Tuesday, October 5, 2010

Files and Mantis

This is sort of a catch up post for all of the things that have been happening in the past few weeks.

The prototype applets have all been loaded onto the ccd.rpi.edu server. They all consistently work on Windows 32, 64, and Linux. On mac they seem to load only via the .jnlp file link, though this also seems to depend on the mac used to launch the software.

Skate Border
Graffiti Grapher
Freedom Quilt
Cornrow Curves
Mangbetu
Rug Weaver

I have been reading on customizing the Mantis software installation that we will be using as a bug tracker application. I've added some well known feature requests to the bug tracker software that are currently being worked on. I think that the mantis software offers a great opportunity to help keep the software development effort organized.

Mantis is available here.

In my travels, I have also been looking up information about snapshots for the csdt tools. Adding the ability to take a picture will allow the kids to create artifacts to be posted on the community site without complicating the process of doing so too much. It would really be nice to record a motion picture for the simulation tools, but the logistics of that definitely still need to be worked out.

Tuesday, August 24, 2010

It has been a pleasure working with the other developers this summer. All of the CSDT tools have come so far in such a short time. Here is an image of the Rug Weaver tool with my attempt at a Kente pattern that I found online...




Eddie has made really great progress on the outstanding Core issues. I am working at becoming a greater help to him, as I have been reading quite a lot to improve my java skills, I aspire to be as competent as he is someday. I have started to rethink how Rug Weaver could be reworked using iteration, although that code is not far enough along to demo at this point.

I look forward to continuing my work on these projects this fall.

Tuesday, August 10, 2010

Over the last few work periods, I have spent a fair amount of time figuring out textures. Along the way I have discovered that my implementation is correct (or at least seems to reliably work) except when the applet window is dragged to be bigger than when it is first drawn to the screen. Initially thought to be a flaw in my implementation, I now suspect that the code that responds to the viewport listener resize event is not quite correct.

I have started working on bounding boxes for the various shapes available in rug weaver. Point and Rectangle are done, Line needs to be figured out for diagonal drawings, Triangle is mostly done but needs to respond differently depending on the orientation of the triangle. So this is still a work in progress. Here is an image showing the bounding box drawn about the triangle as that is the selected object in the picture.



I need to finish up the bounding box implementations - figuring out orientation for Triangles, and deciding how the irregular shapes should be bound.

I have also updated the saved xml files to work with the new version of rug Weaver, and I have implemented all codelets with default values.

I also think that the random naming convention for objects needs to change. Something meaning full like 'Object_1' for the first object created etc. is more meaningful than the current random string.

Tuesday, July 27, 2010

Image support in rug weaver.

It has been a very interesting couple of days. I am about half way through adding image support in Object Rug Weaver... here is a clip...


The script version of Rug Weaver no longer works. Having added image support there, I was surprised to find that the core no longer allows multiple instances of an object with different parameters. For example if you drag over a rectangle and fill in the parameters, and drag over a second Rectangle, the second Rectangle parameters are overriden by the first. Object Rug Weaver is coming along nicely, and I look forward to when core allows for creation of objects in the object pane.

Tuesday, July 20, 2010

Object Rug Weaver

Rug Weaver now exists in two forms. There is the script based drawing tool form of Rug Weaver and now there is Object Rug Weaver. I think it is very exciting to have the program function as objects, because clearly the core is designed to work with objects. Here is a screen shot of the default script loaded in objectRW...


Here is a screenshot of the Event queue with an object listed, the object on the right, and the default Codelets on the left...


Next Steps...

Weave is not implemented at all currently, so that needs to happen. There will be another object specific weave codelet (like object position, object color) for weave. This will move weave back to the shape classes from its own class.

Hit tests, as it turns out, are not all implemented correctly so I need to figure these out.

In my opinion, it would be tremendously helpful...
If there were a code example to follow to access the object pane.
If there were a code example to follow to access/clear the codelets in the Event Queue pane.

Wednesday, July 14, 2010

I have been working on debugging Rug Weaver while using the program to build reasonably complex images.

This symbol is called NKYINKYIM meaning "twisting" which is a symbol of initiative, dynamism and versatility in African symbols known as adinkra. Such symbols are commonly used in the west African country of Ghana...



In addition, I found this pattern while searching for the image above, however upon investigation it may not have any significance as far as adinkra is concerned...



The next steps are to investigate changing how the codelets choose color, so that RGB values can be automatically filled in from selecting a color using 'colorChooser', and to continue testing Rug Weaver with additional patterns.

My thanks to www.adinkra.org for their wonderful website that decodes traditional adinkra symbols. It will certainly be a source for additional inspiration in coding more of the adinkra symbols in the Rug Weaver tool.

Wednesday, June 30, 2010

New Version posted

Rug Weaver has come a long way in the last few days. All of the codelets have been implemented including the Weave codelets. Everything also fades. The code has been massively cleaned up.

Each object is not reliably created and cleared, and the all null pointer exceptions have been handled.

The next step is to take care of the hit test code.

Here is the link...

http://www.cs.rpi.edu/~babbiw/RW/RWAppletLaunCS.htm

Saturday, June 19, 2010

RW deployed as Applet

Many issues were resolved this week. All of the drawing codelets were connected to the code that actually does the drawing and color issues were resolved.

The weave codelet setup is complete. Each drawing class reports the last object drawn to the Engine class for use by Weave. Weave now needs to take the information from the Engine and fill in the white space between the stiches in an appropriate way.

The Applet has been deployed at http://www.cs.rpi.edu/~babbiw/RW/RWAppletLaunCS.htm although the deployment needs some more tweaking.

This next week will be taken up with fully implementing the Weave codelet and tweaking the deployment.

Friday, June 11, 2010

I think this has been a very productive few days.

I have successfully compiled RW for the first time.

I have successfully implemented all of the codelets (yesterday), and sorted out the color value passing from the codelets to the draw methods (today).

I also figured out the onBegin() method to have it clear the previous drawings so old items are no longer present. (Thank you Jason for your direction).

The good news is that point, line, rectangle, and triangle work fine.

The bad news is that the iteration codelets are somewhat flaky. For example, if you draw a line iteration or a triangle iteration and then click on the drawn object all of the codelets disappear in the prgrammed pane and the Methods pane... poof! Nothing I've tried gets them back, you have to restart the applet.

I have committed my changes, so the next step is to deploy it on the CS server for everyone to tryout.

Wednesday, May 26, 2010