From KitwarePublic
Jump to: navigation, search

Week 1

Stage :: Planning

Creating the project plan...
Meeting points:
  • Initial project specifications
  • Ideas
  • How to approach the project - pre-planning.

Week 2

Stage :: Planning

Finalising the version of the plan to use as initial plan.
Meeting points:
  • Cover research - how to choose what to study
  • Communication - more emails
Comparing and choosing 3D applications to compare

Stage :: Research :: Study of 3D software :: Graphics See study details

Project Status Report Media:3DWidgets_Part2_Status_Report_01.pdf

Week 3

Received initial response from project lead, started to update this Wiki.
Plan for phone conference this week to discuss project.
Plan to complete study of 3D graphics then to start on the construction based 3D software.
Phone conference with Will Schroeder helps me get a better idea of where we are going:
  • What is a 3D widget?
    • A 3D Widget derives from an InterActor Observer - hence is oriented towards user-scene interactions. A 3D Widget can have an effect with or without a geometric representation.
  • What is the driving force of the project?
    • It is good to focus on the requirements of the client - what do they want and what are they likely to want in the future? NA-MIC and the 3D Slicer project are highly likely to use more 3D widgets so contact and feedback from those related to such need to be gained.
  • Are there already some widgets under development?
    • Yes, but none likely to come up in this project.
  • Is there any other 3D software that could be useful to study?
    • Yes, MiaVis(sp? awaiting confirmation of software).

Stage :: Research :: Study of 3D software :: Graphics See study details A short week and a long weekend allow me to get on with the graphics study, but I will start the next study next week.

Week 4

Delay in getting hold of construction software, so I started instead on the medical software.

Stage :: Research :: Study of 3D software :: Medical See study details

I was unable to find a lot of 3D software for medical use, and of those only one that I could easily get hold of to try out. This meant that the actual study went relatively quickly and I was able to get started on other things.

I started looking at the tests of existing widgets, these are used to try out different classes. All the current widgets listed from vtk have at least one test. My study is to look at these tests and make sure that I can write similar tests for any widgets I create during this project. See test study details

Project Status Report Media:3DWidgets_Part2_Status_Report_02.pdf

Week 5


I changed slightly the organisation of Wiki pages in order to make project information easier to find and edit.


To continue the study, I look at a number of the existing tests and try to find out the "anatomy" of the test code. I can the use this "anatomy" as a template for coding tests for new widgets.

See test study details

Stage :: Research :: Study of 3D software :: Construction See study details

As the software studied herein is larger and more complex than those of graphics and medical, I included a session with a user of the software in order to better understand it and study it.

Project Status Report Media:3DWidgets_Part2_Status_Report_03.pdf

Week 6

Continuing with research on construction software CATIA. Looking over reply from Steve Pieper, I asked for information from Will Schroeder and am currently awaiting a reply.

Stage :: Research :: Study of 3D software :: Construction See study details

CATIA study finished. This is a very large piece of software with a steep learning curve. In order to get started I needed to spend a lot of time with colleagues who use CATIA regularly.

Also have Maya (Personal Edition) to try out as suggested by Will Schroeder. Stage :: Research :: Study of 3D software :: Maya See study details

Project Status Report Media:3DWidgets_Part2_Status_Report_04.pdf

Week 7

Testing. Three ideas for test code template - "copy and paste", class and function set. Research, added Maya Personal Learning Edition to research widgets as suggested by Will Schroeder.

I have tried two or three ideas regarding tests, with functions, classes and copy-and-paste techniques. Although I would like to see a class implemented as this would greatly reduce repeated code, my initial attempts have not met with great success.

I have also had to spend a lot of time with Maya, getting to know its interface has been relatively quick after using 3DS Max, but there is still a lot to look at. Stage :: Research :: Study of 3D software :: Maya See study details

Project Status Report Media:3DWidgets_Part2_Status_Report_05.pdf

Week 8

Had a minor upset with my main development machine at the end of last week, currently trying to reinstall everything 8( Windows XP Home as main OS, with SuSE Linux running in a VMWare wirtual machine. I also tried Kubuntu as I don't need a huge basic install (SuSE's base install clocks in at over 2GB) but had trouble installing CMake and vtk.

OK, mid Tuesday morning and I seem to have got things working again 8) Nearly three days due to a computer error 8(! Hopefully the latest version of VMWare Server won't bug me, although it is a memory hog - its services take up 180+MB of RAM and churns my HDD when the app itself is not running!

That said and done, I really needed to spend time to complete my comparisons of widgets so that I could to developing some ideas during hte last part of the project.

After making a table of the most likely widgets and tools, I was able to compare these and make a proposition as to which I could develop for this project.

Project Status Report Media:3DWidgets_Part2_Status_Report_06.pdf

Week 9

Had more trouble with VMWare - so I made a second partition on my development machine and created a fresh install of SuSE as a dual boot OS. This did not take much time as I was able to apply knowledge gained through my experiences over the past few months.

Project Status Report Media:3DWidgets_Part2_Status_Report_07.pdf

Week 10

New widgets. Building on replies from project lead, I was able to really get my teeth into development. This I was able to do by providing ideas and developing them for the separated functions of the Box Widget with mouse over effect.

Mouse over is an interesting feature, but getting it started had some teething problems.

Project Status Report Media:3DWidgets_Part2_Status_Report_08.pdf

Week 11

Getting a functioning mouse over makes things seem better. It seems showing off known bugs to my professor helps me to better understand where I go wrong - helping me identify and correct said bugs.

The initial problems out of the way, I am able to focus on my mini-widget ideas. Although the basic functions are relatively simple to get working, I found that I had to spend a lot of time trying to work out how Picker worked. I found that there was very little documentation, and of the documentation that there was, was incomplete or rather unhelpful.

So, I had to attack the problem the hard way - trial and error.

Over the weekend I took a break and rebooted into Windows. Looking over the vtk website, I suddenly wondered whether or not I could get VTK working on Windows. So, I downloaded CMake and hunted for a CVS program for Windows. I already had a MinGW C++ compiler installed, but downloaded the latest version too. Then I did things in the order and manner learned by so many reinstalls on SuSE. The result? An effective and responsive Windows installation!

Project Status Report Media:3DWidgets_Part2_Status_Report_09.pdf

Week 12

The final week. Running through my final code - tried to iron out as many bugs as possible and test that code works on Linux and Windows.

Known bugs:

  • Mini-widget picking, transformation does not seem to "save" correctly when changing object.
  • When nothing is selected previous representation is not removed from rendered scene.
  • Stopping interaction can cause crash.
  • Rotation seems to be too fast.
  • SelectBox widget does not display representation.

Project Status Report Media:3DWidgets_Part2_Status_Report_10.pdf

KWWidgets: [Welcome | Site Map]