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.