Summer of Code/2015/kvasnyk Turtle Blocks 3D Javascript


Personal Information

Name: Kamil Kwaśny

E-mail address: kamilkwasny92@gmail.com

Skype: kamilkwasny92

Sugar Labs wiki username: kvasnyk

IRC nickname: kvasnyk

Languages: Polish (native), English (advanced)

Location: Wrocław (Poland - UTC + 1)

My name is Kamil and this year I started Masters studies. I have been studying Computer Science at the University of Wrocław (Poland). I like my studies because I can learn a lot of theoretical and practical basis of computer science. Besides studying I have to work for a living. I had about 1,5 year of C# experience and currently I am working as a Django developer. Of course, if I was chosen to the Google Summer of Code 2015 I would have a long summer holiday in my job so that I will be able to focus only on the GSoC's project.

I think I am creative and hard-working person. I didn't have problems when looking for a job. I have nearly 2 years of experience as a programmer so now I can say that I can work both individually and in a team. And there is one more thing I have to say - I really love challenges!

You can find samples of my code on GitHub:

https://github.com/kvasnyk


Project Information

Project title: Turtle Blocks 3D Javascript

The Python version of Turtle Blocks 3D is based on GTK since Sugar uses GTK and GTK is largely incompatible with OpenGL. In a Javascript version, we could use OpenGL and take advantage of many more graphics libraries, such as 3D lighting models and texture mapping.

The main thing is to answer the question: how to combine WebGL and the block rendering (which is currently done using EaselJS)? Actually, it is said that the simplest answer is always the better one. I think doing the new (WebGL) implementation for each block should be the best option. It probably requires more work but it is a better solution in the long run.

In my opinion the technical part of the project is not the most important. Each technical problem can be resolved. I think the most important in each software project is cooperation and communication. Working in methodology alike Scrum will probably be the most resultful method. I would like to send daily and weekly reports to my mentors so that our communication will be at a high level I hope. I think it is also a pretty good idea to create some blog where I will be able to place information about the progress and current problems, issues and questions.


Milestones

There are several milestones in the project described above:

0. Preparations for the project

a) experimenting with Turtle Blocks and existing Turtle Blocks code, bug fixing, getting familiar with the Sugar Labs community,

b) detailing the plan and schedule, discussing necessary details with mentor(s).

1. Discussing important questions and project specification.

2. Splitting blocks into three groups (basic, medium-hard, hard).

3. Designing and implementing the group of the basic blocks.

4. Designing and implementing the group of the medium-hard blocks.

5. Designing and implementing the group of the hard blocks.

6. Making sure all groups work great together.

7. Testing, bug fixing and polishing the project.


Schedule (refers to milestones)

One of the most important parts of each project is the plan. I created one which you can see below.


30.03 - 26.04 (4 weeks) - 0a

27.04 - 24.05 (4 weeks) - 0b

25.05 - 07.06 (2 weeks) - 1, 2

08.06 - 14.06 (2 weeks) - 3

15.06 - 28.06 (2 weeks) - 4

29.06 - 12.07 (2 weeks) - 5

13.07 - 26.07 (2 weeks) - 6, 7


Please note that I did not planned three weeks (27.07 - 16.08) but I left it for possible delays (unfortunately, no plan is perfect).


Time availability

Unfortunately, in Poland the studies term is finishing on the 15th of June. I was trying to make the plan as feasible as possible so I think I will be able to work about 20 hours a week for the first three weeks and then at least 40 hours a week for the remaining weeks.

I hope this is not a big problem. If it is needed I will work for more than 40 hours a week since 16th of June.

As I mentioned before, I am currently working as Django developer but I will take a long summer holiday once I know that I am chosen for the Google Summer of Code 2015 program.


Miscellaneous

Great learning experience I had as a child

There was a computer science teacher in my primary school which was very involved in his work. He was teaching us (12-years-old kids) many really fine programming things - HTML, building our own web site etc.


A few words for the end

Unfortunately, this term is a little bit of hard for me because I have a lot of classes and I have to work for a living. I did not have time to do much work for your organization before submitting proposal but I will try to make up for and do some work for the next weeks (as I mentioned in 0a milestone).

I would love to participate in this year's edition of the Google Summer of Code program. It is sometimes really hard to study and work together so thanks to the program I will be able to realize many of my plans. I hope you understand my position.