'Personal Projects'?

<p>Hey guys!</p>

<p>Does the admissions board like personal projects? I've worked on many computer programming related projects in my free time since I was 10, mostly computer game stuff. You can my projects on my</a> website. They invlove 3d math (vectors, matrices, quaternions), physics and stuff.</p>

<p>Will it be a contributing factor in my application?</p>

<p>Thanks for your help! ;)</p>

<p>You should add whatever you can to the basics of the application to show your uniqueness. Any kind of personal project, especially a multi-year pursuit, will show an interest for interest’s sake (and it doesn’t matter at all what it’s about). I’d try to highlight the project in a short or long essay, or in a supplement.</p>

<p>I don’t really know, but I would say yes. I have my own site but it’s of a more personal nature (nothing very inappropriate, but not something I’d broadcast to everyone I meet) so I can’t really afford to do so- although I do have countless projects of my own, but they’re done in Flash, not in C++.</p>

<p>I was pretty much discouraged to use the computer up till I was about 15 or so, and I’ve never had really time for any large projects. Pretty much all my computer skills were learned trying to get onto a workstation in any conceivable way possible. I’m not very good at C/C++ either. I picked up a book once and read through it. The only thing I can do in it really is create console apps for relatively simple algorithms- that’s about it. :|</p>

<p>

</p>

<p>I certainly understand how a vector and matrix may be applied in a 3D physics engine, but quaternions?</p>

<p>

Unit quaternions can be used for gimbal-lock-free 3d rotations. Kind of like how complex numbers in the Argand plane can be applied on 2d vectors. If a quaternion a + bi + cj + dk is written as the real ‘a’ and the vector ‘v’ which is (b, c, d), such as (a, v) then the quaternion (cos(theta/2), u*sin(theta/2)) represents a rotation of theta around an axis ‘u’. Multiplying this by a vector and the quaternion’s inverse would rotate that vector by that amount. So, qvq^-1.</p>

<p>It’s a much more computationally efficient way of implementing rotations than matrices (only 4 floats/doubles to store). It also allows easy conversion from axis-angle representations.</p>

<p>I’m in 11th grade now, still have another year to prepare after this. Hope I’ll do well. :)</p>

<p>I’m guessing you want to major in computer science?</p>

<p>

</p>

<p>Well, since I have very little experience with 3D programming I’ve never had to deal with that problem. I’m familiar with complex numbers and a bit shaky on quaternions, but I think I get what you mean. </p>

<p>Yeah, it seems more efficient than a matrix transformation. That being said, how exactly do you represent and implement complex numbers and quaternions in C++? I assume there’s some kind of class library for that.</p>

<p>

Me too. :)</p>

<p>

It’s a class with ‘w’, ‘x’, ‘y’ and ‘z’ members, useful constructors (from angle-axis, wxyz values), named member functions and operators that handle stuff (multiply quaternion by quaternion, vector by quaternion, normalize etc.), and a few static/global math functions that handle more general math.</p>

<p>This is how quaternion-vector rotation is handled (quaterion<em>vector</em>quaternion^-1):


      Vector3 uv, uuv;
        Vector3 qvec(x, y, z);
        uv = qvec.crossProduct(v);
        uuv = qvec.crossProduct(uv);
        uv *= (2.0f * w);
        uuv *= 2.0f;</p>

<pre><code>    return v + uv + uuv;
</code></pre>

<p>

</p>

<p>Follows from (a,v)*(b,u) = (ab - v . u, au + bv + v x u).</p>

<p>My latest fun feature has been Python interpretter integration (you can run Python scripts from a console, that interacts directly with C++ ‘native’ objects too), and serialisation. You can see a video of the Python stuff [url=<a href=“http://www.vimeo.com/5530082]here[/url”>http://www.vimeo.com/5530082]here[/url</a>] (it’s toward the end, video’s kinda old though, there’s more eye candy now). That’s from ‘GraLL 2’, the sequel to my previous game. I’m working on it right now. :)</p>

<p>BTW, kemcab, are you at MIT?</p>

<p>Lol, no, I’m not at MIT. I hope to be, possibly next year. :P</p>

<p>On that note, I’m not sure if I want to major in computer science. I never felt I was really strong at it, for one, but there’s always time to build on my current knowledge and learn.
I’ll look at it in detail in the morning; I have to go to bed. I think I get the general concept behind it though. It’s very interesting, and I did look at GRaLL. I’ll download it in the morning. :D</p>

<p>Could I see the class file?</p>

<p>

</p>

<p>Sounds like fun. I guess it’s easier to use some kind of API, and you can build on it too. I’ve done mainly PHP/Perl stuff with a little bit of Actionscript 3.0 and Processing thrown into the mix. :/</p>

<p>The original GraLL code is available [here[/url</a>]. GraLL 2’s code (which I’d say is much more interesting) is available on [url=<a href=“http://github.com/nikki93/grall2/tree]GitHub[/url”>http://github.com/nikki93/grall2/tree]GitHub[/url</a>].

Sure, [url=<a href=“http://github.com/nikki93/ngf/tree]NGF[/url”>http://github.com/nikki93/ngf/tree]NGF[/url</a>] (nikki’s Game Framework :stuck_out_tongue: ) has a Python ‘plugin’ which handles the PythonGameObject stuff. Allows to make ‘GameObjects’ easily Python scriptable from a uniform interface. Check out ‘[url=<a href=“http://nikki93.github.com/blog/2009/09/10/grall2door.html]Generic”>http://nikki93.github.com/blog/2009/09/10/grall2door.html]Generic</a> Door](<a href=“http://s.nikhilesh.googlepages.com/grall.tar.gz]here[/url”>http://s.nikhilesh.googlepages.com/grall.tar.gz)’ (which I just implemented today) for an example. It builds on a ‘MovingPlatform’ native object to make something more complex (a sliding door).</p>

<p>Ah, okay. It’s very interesting to look at. </p>

<p>I’m thinking maybe I should commit myself to some kind of project this year. I’ve been doing some thinking and since usually I’m scribbling something about vectors or double integrals on a piece of paper when the rest of the class is learning about limits, maybe I do have the time. At least, the time to think about it more, and I do have a lot of free time that I could be doing something useful (instead of playing TF2).</p>

<p>

</p>

<p>I see that you made the original GRaLL with that framework and you’re doing the same with GRaLL 2. Very nice. I actually checked out the generic door post last night. :D</p>

<p>I used to play around in Gmod, which uses Lua to create new weapons, objects, etc. I see how it can definitely help because the Source engine doesn’t normally allow for that- everything had to be programmed in C++.</p>

<p>

Yeah, GMod is fun. It’s basically a C++ MOD for the Source engine, that also has a Lua interpretter.</p>

<p>NGF has turned into a pretty mature framework now. Real fun to use. :D</p>

<p>

</p>

<p>Exactly. It’s very flexible and at the same time generally easy to use. The only problem I have with GMod is that for complex things it has a really high RAM requirement; like SpaceBuild, for one- I can’t build really huge spaceships like I’ve always wanted to. :(</p>

<p>But it’s very useful for modding other Source games, which is nice.</p>

<p>I’ve always been interested in creating a game engine or general framework for a game much rather than actually creating a game itself. I don’t really know why but I think I like the idea of versatility more than actually creating a game that uses wholly new concepts.</p>

<p>

</p>

<p>Ha, wow. It seems like a real breeze to use, instead of, say, programming levels and such. </p>

<p>Again, this is pretty much why I need to get into C++. C# and Java are nice but they don’t have the power of C++. And since I’ve developed many bad habits from using high-level scripting languages, I think I need to really start from the first page when I get back to C++. Where do you recommend I start? From anything to what compiler you may prefer to what common pitfalls to avoid.</p>

<p>

Get a good book. ‘C++ Primer’ is a book I found to be quite good. Try random programs and stuff, and then if you want to get into graphics programming you could try the Ogre tutorials on the Ogre wiki.</p>

<p>One tip: If you notice someone doing something new, don’t try to assume what it means. Search on the internet, ask someone experienced. It’ll take you a long way. One of the main cause for a lot of problems is misconseptions.</p>

<p>And about programming levels, well, it reads a level from a ‘.ngf’ file, and creates the GameObjects accordingly. The GameObjects are themselves children of the ‘GameObject’ class, each type implement some kind of behaviour. GameObjects can store ‘properties’ and stuff. There’s a lot of things to it, I also wrote a small Manual and Tutorial to explain it.</p>

<p>Absolutely put personal projects! I got into MIT largely on personal projects (I had OK scores)</p>

<p>I put my personal site <a href=“http://theplaz.com%5B/url%5D”>http://theplaz.com</a> all over my college apps. I have a lot of stuff on my site, and I do broadcast it to everyone I meet. But, I think that helped me a lot. The admissions director remembered my site during CPW, and thus remembered me. I figure if you can stick out for a good reason among thousands of apps - that’s golden.</p>

<p>Most certainly talk about personal projects!</p>

<p>Wow, theplaz, cool site man, I’ll sure check it out.</p>

<p>And thanks for the advice! There’s a lot of stuff on my site (I think) they should like. Physics, math, programming stuff.</p>

<p>Also, I noticed you registered just to reply to my post. Thanks. :D</p>

<p>Jesus christ theplaz, thanks for making me feel bad about my admittedly well-designed but sparse SEO/design website.</p>

<p>Well, his site’s taught me to put everything, absolutely everything on my site (except stuff I don’t want people to know about of course).</p>

<p>One of the main reasons for my site was I got bored of answering, “So what do you do?”, and “How did you get into all of this?”, type questions. Now I just give 'em a brief introduction, and tell 'em to check my site out. :)</p>

<p>

</p>

<p>There’s really nothing wrong with that. [I</a> have my own site](<a href=“http://www.t3hparty.org%5DI”>http://www.t3hparty.org) and I would have no problem with showing it to admissions officers at all, except for the fact that it has users and I cannot regulate what they post. I have a front-end which showcases some of my stuff and a simple blog, and then there’s the forums which have restricted access. The only reason I restrict access is mainly to keep the spammers out, as well as keep whatever’s said inside the site.</p>

<p>I added a biography to my site and gave my latest game project it’s own page. [Check</a> it out](<a href=“http://nikki93.github.com/index.html]Check”>http://nikki93.github.com/index.html)!</p>

<p>kemcab, cool site! Yeah, I guess putting a lot of stuff on the site helps, it acts as a kind of ‘portal’.</p>

<p>I’ve been reading CC for about a year now - but decided to post now that I’m at MIT. I’m actually very careful about what I post. For instance, I did not put anything about where I was applying/where I wanted to go in case an admissions officer checked it - even on CC.</p>

<p>You won’t find any information about my family or girlfriend (perhaps some leaks on flickr). Or much about my interests not in tech (perhaps in delicious) like politics (course 17 :slight_smile: or architecture (4). So it’s certainly NOT everything. But I understand where the impression comes from.</p>

<p>As for what your users post - the admissions office understands that (they seem to be the only school that lets people comment on THEIR website). Think about it though - what’s the culture like on your site? My site the culture is professional - so it works.</p>

<p>

</p>

<p>I try to be. I don’t really use this name now except here and on there. I don’t really mention personal details either, for obvious reasons. I’m writing here because there really can’t be too much harm if whatever I reflect here is going to be on the application. I’m not really a politically minded person in the usual sense. Ultimately I believe in pragmatism over ideals. I have opinions and I’m not that afraid to express them (unless I sound too brash) but I don’t really think that my site is really the place for it.</p>

<p>

</p>

<p>Your site is pretty interesting. From what I see it functions partly as a blog and partly as a compendium of general knowledge. MediaWiki isn’t exactly the most versatile software for content management in my opinion but you’ve seem to do very well with it. Also, you’ve had the site for several years where I’ve only had mine for maybe two and whereas yours is public mine is generally private. </p>

<p>My site is, in essence, a community. Although it’s my site I try not to make it entirely about myself. Its only mission is to provide entertainment to its users in a generally appropriate manner. I’m not really sure how to describe it. I try to keep the front end that you see as formal as possible. The actual forum is less so, varying from more serious boards where either political or technical discussion takes place to the spam board where almost anything goes.</p>

<p>I try to keep it as tasteful as I can possibly manage. No pornography anywhere. Nothing dreadfully inappropriate. I can’t censor people to a great extent (or I would get a virtual riot on my hands) but the best I can do is to portray the site in the best manner possible. I’ve turn the public part of my site into a bit of a showcase of what the community’s done and some of my personal interests. Right now I don’t have much to show since we can never, ever get things done.</p>

<p>It’s hardly professional. If I were to show it to them (not sure if I will, probably not) it would mainly be to illustrate that my hobbies and interest include web design/web application development, among other things. Your portfolio (of sorts) is much, much better than mine. Even though I may be able to say that I’m as proficient as you in PHP I have never been creative enough to create something new such as SeniorQuoter.</p>