Sunday, December 10, 2006

The End of a Thesis

Well, the inevitable has come and I have officially changed my thesis. Here's a some information as to why I would do such a drastic thing.

First off, I was getting very bored with the architecture project. It turns out that creating an architectural design program is a lot of work. Too much for one person. Who knew? Ha. It was just weighing on me that there was no innovation or discovery to the project. I was just doing what others had done and then trying to overlay a new meaning on top of that. That annoyed me and began to show through more and more as I went on. Finally, I was just plain stuck. I couldn't come up with anything to bring everything about it together. So I scraped it. It's done.

I will give it credit for two things, though. It tought me a great deal about programming that I didn't know I had in me. It also gave me a lot of insight into the thesis making process so that this next time around, I will create something 10 times better.

Stay tuned for the next post which will go into a good deal of detail about my 2nd (and final) thesis attempt.

Tuesday, November 14, 2006

UPDATE

I just wanted to post to include the latest working version of my prototype. The resize feature is completed, the start of the zoom feature is implemented, the deleting feature is finished, and some minor touch ups have been completed.

---> HERE <--- it is.

I've also started formulating a new approach to my thesis. Once I flesh it out, I'll write about it. This thing is evolving more than I originally anticipated.

Sunday, November 05, 2006

A Change of Pace

On Wednesday, in Studio I, we all gave presentations of our thesis for two other professors. They told us what we needed to do to further refine them. I got off fairly easy I think, and they told me what I was kind of expecting to hear. And that was that I need to concentrate a whole lot more on the theoretical aspect of my thesis.

So I've taken the past fews days as a reflection period along with continuing with the coding. I thought about how I can mingle a concept of Interactive Design with an architectural drafting program.

Since I have established the Modify and Scratch sections, I thought I'd play off that and expand the idea greatly. Instead of having a choice of Modify or Build from Scratch, I want to make it a really dynamic and pliable system. Instead of just those two choices, I'll present a series of questions, limitations, examples, etc. to gauge how much time, effort, knowledge, etc. that the user wants to put into the program. And based off that interaction, the program builds or doesn't build what the user would like to start off with.

It could start off with a fully built plan with all the furniture added, or just some rooms completed, or a blank page, or just an outline of 2 rooms and so on. For this, I'm going to have to study architectural interaction books (if I can find any), and learn about any existing ideas and how I can expand on them if necessary. And also pick up terms that convey exactly what I want to convey to any type of user.

----------

Now, about the coding I've completed this weekend.

I totally rewrote all the functions from scratch. This was a daunting task, but not as daunting as the writing the classes. But it allowed me to fix some past mistakes and streamline the code even more. After working with this I'll have a strong understanding in order to move to a class system.

I also did away with the old Grab Wall feature. Now, it's Select Wall. And not only can you select and unselect walls if you're in that mode, you can move and resize them. I've only got one side of the resizer working and the move feature doesn't update the wallArray, but I'm getting there. I've still yet to port over the delete wall feature, but that should take like 30 minutes. It's no biggie.

From here, I'm probably going to skip the rotate for the time being and move onto zooming in and out. After that, I'll tackle the floor system. All the while thinking about the theoretical side. Next Studio, that's what I'll be focusing on.

/sigh...lots of work to do

*edit*

LINK <--- this is the latest iteration of my prototype.

Tuesday, October 31, 2006

At Last An Update

Sorry for the delay between updates. I was working on another project for another class that kept me tied up. But just today, I was able to do a little work on this thesis.

I came up with a better visual design for the grid. It's now much easier to work with and less overwhelming. I also made it so when the walls get drawn, a more typical drafting style wall is drawn instead of just a straight line. This system isn't perfect though, in that the walls don't line up perfectly, but I'm trying to figure out a way to combat this. That should be pretty challenging.

You can also now delete and move individual walls instead of entire wall group. Eventually, I'm going to incorporate a selection system that attaches a movie when you've selected something to know that you selected it, and if you click of it, it gets deselected. From there you can delete, resize, move, etc. This is much more intuitive and more like PS or Illustrator.

I've also still got to rework the coding so it uses dynamic classes instead of all these crazy functions I've defined. But it's such a big program, that it's gonna be a pain, and I've never classed a system like this before. I don't look forward to it.

I'll edit this post later with links. SCAD's server is being a jerk at the moment.

*edit*
LINK <--- this is design document version 1.5

Thursday, October 12, 2006

Lots of success, lots left

The last few days have been great in the way of progress.

  • I made multi-dimensional arrays my bitch as I got the points to all store in a 3D one.
  • I figured out and implemented how to attach the measurements to each movie clip so they don't stack up uselessly anymore.
  • I changed the code around so when it draws each line, it puts it into it's own seperate movie clip. This way you can undo as you're going along.
  • I implemented that there undo I was just talking about.
  • I got almost finished with a rotate feature for each wall group, but came up upon a snag with the registration points. There's supposedly ways to change it, but everything I find on it doesn't do a good job in explaining it, so I got fed up with it for now. It rotates, but it rotates with a registration point of 0,0. And I just can't use that.
The next things to work on unless more pressing concerns arise will be:

  • Finishing the first iteration of the final design document. This is due in class on Monday by the way.
  • Fixing that damn rotate.
  • Coming up with and implementing a scale feature. Maybe one for both wall groups and one for single walls, or maybe just wall groups. Dunno yet.
  • Tweaking the measurement algorithms so I get more consistent measurements.
  • Ceiling height
  • Clone room (maybe)
In the farther future, after I'm comfortable with all that and whatever ugly things have reared their heads, I'll be starting on these things:

  • Attaching rooms to exterior wall groups
  • Naming and zooming into interior wall groups (rooms)
  • A viable 2nd and 3rd floor system that makes sense
  • Adding doors, windows, and other things that visually effect walls.
I'll be getting into some really complicated stuff soon. Wish me luck.

p.s. Here's is the latest .swf. (---> LINK <---)

Friday, October 06, 2006

Hey Look. A .swf File.

Here at the ---> LINK <--- is the lastest iteration of my Build From Scratch feature.

Keep in mind that this is only for figuring out the code. The final product will look nothing like this.

I just implemented the moving closed wall groups feature and the delete a wall group feature. I'm still working on getting the measurements to move and delete with it. Everything would be much smoother if I could wrap my mind around the multi-dimensional array thing. But I'm getting there.

Thursday, October 05, 2006

Multi-Dimensional Arrays Are The Devil

Well, they're not that bad. But I just had some initial trouble setting one up. I received some help from the prof, but it's still coming slowly. I plan on working on the whole thing all day tomorrow. I should be able to fix it along with implementing the undo and delete feature. And hopefully the figure out something the prof showed me in Illustrator. The point adjustment feature. If I can figure that out, I can grab individual end points of a wall and drag and drop them to any place I need to. The wall would then update in the new position. This would effectively get rid of the single wall edit tool.

Wish me luck. Next I'll post the .swf file of what I have so far.

Tuesday, October 03, 2006

Progresso!

I made some decent progress today. Here's what I've implemented dynamically and completely with ActionScript so far with the Design From Scratch feature.

  • Set up a grid system. (1000 X 700)
  • Allowed user to specify whether he wants to draw an exterior or interior wall.
  • Set up the draw feature, where a user clicks down once, the temporary line shows up, along with a measurement of how long the line is in feet (2 feet = 10 pixels), and connects the two points of the line wherever the user drags the second points. Kind of like the polygon lasso tool in PS.
  • When the user clicks down again, a semi-permanent line is placed where the temporary line showed, the points are entered into an array for later use, the measurement of the line is converted into feet and placed in the exact middle of the line.
  • The user can then draw as many lines as he wants and each one is entered into the array via the endpoints, and semi-permanantly drawn.
  • When the user connects the last line with the start point of the first line, a circle appears indicating you can close off the line. Once clicked and closed the array point info is taken out and used to draw the permanent movie clip onto the stage represented a closed off shape. (this will later be used to move, resize, rotate, name, etc)
  • The user is free to start over with a new shape to draw. Each shape will have it's own identity.
Now for the problems I'm having that need to be fixed in my next iteration, as well as some ideas for improvement.

  • The area to select what kind of wall to draw needs to take off the mouseClickListener so you don't draw at the same time as selecting a choice. (This is a minor issue that probably won't have any bearing on later iterations.)
  • The overall look needs to be improved obviously, but this is also not a big issue since this is early on.
  • The most pressing concern is to figure out an Undo Feature to take one step back if you mess up a single wall and later a delete feature to delete an entire shape.
  • I need to also find a way to make the array creation dynamic so I don't overwrite the array for every new shape. There might be ways around it that I can overwrite it and it be ok, but I think it would improve the flexibility of the code if I found a way to make it more dynamic. Maybe it can save the info into a new array everytime a shape is completed, but the problem is I can't figure out how to dynamically name the arrays so it incrementally creates a new one. There's gotta be a way.
That's all I can think of for now. This post might get updated. Be on the lookout.

Sunday, October 01, 2006

Tentative Schedule and Additions

Here at this ---> LINK <--- is where you can find the detailed schedule for my Studio I class in .pdf format. Right now I'm mired in phase 2. I've got a few questions and a couple problems with it, but nothing unattainable. Also, these list of additions to the site is in the schedule, but I'd better list them here for posterity.
  • Floor additions must make sense
  • Jump to any step previously done
  • Ceiling height
  • Windows
  • Doors
  • Better visuals
  • Calculates square footage and price
  • Draw outside walls
  • Draw inside walls
  • Add label to each room
  • Room editor (rotate, resize (drag and input box), lock, clone, delete, move)
  • New types of styles for Modify section
  • Grid system
  • Zoom feature for individual room setup
  • Ability to put in basic furniture for room size comparison
  • Bigger overall size
  • Roof styles
  • Explanation of different styles
  • Tips for building and designing
  • Fireplace
  • Breakfast Nook
  • Limit the user's options better and more dynamically


I'm constantly adding and taking away from this list so it's by no means comprehensive or final. That's all for now, though.

Saturday, September 30, 2006

Concept Introduction

The following is a little better description of what my thesis project is, along with some basic user goals. It's not as thorough as I would like to describe it, but for now it's decent. There has since been tons of features that I've made up my mind to add, but those will come in a later post. This is taken pretty much word for word from my Interface Design class statement.



My chosen interface design comes from a field that I have been interested in for quite some time, but never actually pursued professionally or academically. That field is architecture. Personal residential architecture to be precise. Due to my interest in the area I want to develop a website that contains a step-by-step Design Your Own Floor Plan interface that users can use to fully customize and completely control what they desire in a house. It will be dynamic and fully responsive every step of the way so that the users can see what changes they’ve made at anytime and change whatever they want at anytime. They would send off the plans to the website’s administration and architectural design team who would officiate, perfect, and modify in order to send it back to the user for final approval.



The great thing about this system is that the existing floor plan and housing web sites don’t offer this kind of interaction. They only provide you with existing floor plans for a price. You enter what you want and they send you several plans in the mail. It isn’t very convenient. The only other direct user-controlled options are expensive software programs that you must purchase separately and take a lot of time to learn on your own before you start. This website would attempt to cut out that middleware and give the customers something to immediately work with and take shape. In addition, there is no direct competition in this area to worry about as no formal website as of yet offers this service.


User Goals

• Complete a step-by-step guide for designing your own floor plan within several minutes (Modify an Existing Design) or several hours (Design From Scratch) depending on the user’s desired level of complexity
• Save your design in the site’s database to be referred back to and picked up at later dates
• Send design to professional architects for official approval, professional modification (heavy or light) depending on the user’s needs


For the class, I basically finished an interface for just the Modify an Existing Design portion of the system. I only picked the simpler of the two parts for the Interface class since it was all that was required. It, of course, wasn't as detailed as I'd hoped and will definitely be improved upon during my Studio and Thesis classes.

Now that I'm in Studio I, I'm beginning anew on the project. For this, I'm focusing on the Design From Scratch portion of the system and beginning from the ground up. I've already come into contact with some intermediate algorithms and coding techniques, but no unmanageable problems as of yet.

Stay tuned for detailed schedules, addition lists, and my first progress report! Riveting.

Informal Thesis Statement

Here's my informal thesis statement.



For my thesis I would like to develop a Flash-based website that contains a step-by-step Design Your Own Floor Plan interface that users can use to fully customize and completely control what they desire in a home floor plan. It will be dynamic and fully responsive every step of the way so that the users can see what changes they’ve made at anytime and change whatever they want at anytime. There will be a Design From Scratch section and a Modify An Existing Design section. With this thesis project, I will show that it is possible, over a web based application, to develop a fully interactive and pliable system that lets a user create a viable and structurally sound architectural floor plan.

Here's a little background into it. Last summer, I took an online class in Interface Design. Pretty standard class. Nothing too intriguing in it. Since it was online, I didn't feel I got as much out of it as I could have. But anyway, the thesis came from there.

It's the idea from the comprehensive project in that class. We had to come up with a unique idea that used some type of interface. Very open-ended kinda thing. So this idea about a build your own floorplan site just popped in my head. I'd never seen one before and after visiting that acclaimed Converse Customize Your Own Shoe site, I thought, why not?

So, I developed the idea further, drew some sketches, wrote down new things as they came to me and came up with an interface design (a template, I guess) that did a satisfactory job and got me a decent grade. But it was no one near where I wanted it to be. So I just thought I'd hold on to the idea for some future date and kind of put it into the back of my mind.

Cue a couple months later and the requirement of thinking up a permanent thesis comes up. So I naturally pulled out the idea of the Architecture Site. I'm glad too. I was sweating earlier this year. Now I just gotta follow through with this and make something worth a damn.

Friday, September 29, 2006

Welcome, Justin

Welcome to the fold, Justin.

Thanks, it's nice to be here. I've never done this before. Started a real "blog", I mean. I have a mySpace, but that hardly counts seeing as it embarrasses me and I'm afraid of who might have found me every time I log in. I need to delete that thing.

Well, what are you even doing here? It's not like you do this kind of thing everyday.

Good question. I'm glad you asked. What I'm doing here is something somewhat professional if you can believe that. This blog has been created in the hopes of aiding my thesis for my masters in Interactive Design at SCAD. Simply put, I'm going to use this as a way of helping me in the creative process and as a feedback tool to get in touch with interested parties like yourself.

Wow. That's very noble of you. I didn't think you had it in you. So who told you to do it?

Well I'm glad to see your confidence in me is ever unwavering, justin. And so what if I was told to do it? I'm happy to do it! I would've done it anyway, I tell you. Right.

But enough of this talking to myself. Time to get started. This was my introduction. More detailed information will be in the next post. You can't wait.

Peace.