It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I'd like to play around with computer vision and AI techniques without having to spend money on hardware right away. If there aren't any robotics simulation environments that model flight physics, could someone recommend the fastest/easiest way to make one? I don't want to make one from scratch, of course, but maybe it's possible to easily "glue" some existing apps together?
As far as flight simulators go, X-Plane is by far the most realistic as far as air dynamics are concerned. Not only does that make X-Plane sound like a good choice for you, but you can create planes very easily using provided software and write plugins in either C++ or Python (I believe there still is a plugin for that) that can control/modify the environment. Plus X-Plane is actively worked on.
www.x-plane.com
If you only want to simulate physics, this C++ code is very simple of following as well is well documented with well known references: http://jsbsim.sourceforge.net/
Actually, this is one of the physics model avaiable in Flightgear
A couple of ideas: First, I know Microsoft have discontinued their Flight Simulator, but it has an API and by all accounts the community surrounding it continues to thrive. That might be worth investigating.
Secondly, What about writing a quick little "simulator" that uses either Bing Maps 3D or Google Earth? Richard Brunditt (http://rbrundritt.wordpress.com/ ) wrote a simulator for Bing Maps 3D so that might be worth investigating.
Finally once you think you have something reasonably good, and if you have a lot of open space, you could try a model aircraft...
You should have a look at Simplysim they have a demo of accurately simulating a UAV
http://www.simplysim.net/index.php?p=gallery&id=2
It looks very impressive!
"The SimplyCube can be used for advanced simulation projects, such as UAV (unmanned aerial vehicle) simulations. In this UAV simulation, we have represented the DraganflyerX6 drone, which can be controlled either manually or automatically. A camera is mounted on the drone, as well as inclinometers, which permit to judge of the realism of that simulation which includes wind."
Related
I recently got interested in Theo Jensen's strandbeest, (If you haven't seen them before look them up! Such incredible engineering.) and I want to mess around with the design he has for his strandbeests' legs. However doing straight forward kinematics is waaay over my head for something like this.
Here's what I'm trying to model:
https://upload.wikimedia.org/wikipedia/commons/6/61/Strandbeest-Walking-Animation.gif
(Can't link directly because I don't have enough reputation :/)
All I really need to know is the path of the 'foot', so something visual isn't necessary.
The final goal is to be able to apply an evolutionary algorithm to it and see if I come up with the same linkage lengths as Theo did, or maybe improve them somehow, so if I there was some software that allowed scripts to be run, that'd be ideal.
Sorry if the question is kind of vague, I'm not all that sure what I'm looking for. Even if there is some maths/engineering topic that would make this easier I'd love to learn.
Thanks!
-Oisin.
Well, I searched for Physics Engine, and found a promising result.
Open Dynamics Engine seems to be an open source physics engine that could fit your needs.
The Open Dynamics Engine (ODE) is a free, industrial quality library for simulating articulated rigid body dynamics. Proven applications include simulating ground vehicles, legged creatures, and moving objects in VR environments. It is fast, flexible and robust, and has built-in collision detection.
Source: Wiki Introduction
There site is ode.org, and it looks like you should be able to evaluate it from there. "[S]imulating rigid body dynamics" is what you want, right? From what I understand, it ought to fit the bill. C++ is probably a reasonable language to attempt this in. I presume you have previous programming experience? This is not what I would consider a beginner's project.
When you get to the evolution, search for Genetic Algorithms. They're frequently used for optimization, and could help you out considerably. Another thing to consider is what you're actually optimizing for (lowest wind speed to function, fasted movement, etc).
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
As a school project i have taken up making an angry birds clone in matlab. After working on it a little bit, i have realized that perhaps i bit more then i could chew.
Currently i am working on the physics of it, and while i understand the mechanics behind the game (collisions, inertia and whatnot) i don't know how i will implement it in the game. I am new to programming but i like it and have caught on to it fairly quickly.
In angry birds we are dealing with collisions between several OBB's and i have an algorithm for detecting collisions. I have a function that checks all the corners of every box and looks to see if it is within another box. I realize this is not the best way to do it but since i couldn't visualize the separating axis theorem, i chose not to use it.
When the collision happens, the box is penetrating into another box, when this happens i do a liner interpolation between its previous point and the current point. I do this to all colliding points in one instance (this is my method to resolve multiple collisions). Using the interpolation i detect the first collision that takes place and i implement a collision response.
My issue currently is that when there is one box sitting on top of another, this method doesnt work so well, because at every instance the top box penetrates into the bottom one very slightly, and i bounce it back. This causes my entire thing to stop, because i go back in time, solve the collision, and then in the next instance the collision is happening again.
My question is, how do i solve this problem of multiple boxes sitting on top of one another.
I have looked at all of the articles on physics by http://www.wildbunny.co.uk and tried to understand his method but while i understand what he does, i have no clue how he does it. I also do not know any action script so much of his code is gibberish to me.
I have looked through several other guides on the internet but none of them seem to make sense to me.
Here is what would be of great help to me, if someone could tell me what sort of method is commonly used to implement the graphics of a game like angry-birds, specifically the multiple collisions method (is mine good enough or do i need to do speculative contacts like wildbunny talks about in his blog), and the box resting on box problem.
Is this project difficult to do withing two weeks?
Yes, Implementing a robust multiple body physics engine in matlab, from scratch, without experience working on physics engines and without programming experience is too difficult for a two week project.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I've been trying to learn GWT for quite a while, I want to build a website that is somewhat advance for my level.
I looked at a lot of documentations/books/blogs/videos, and I just keep getting more confused. Mainly due to facing new frameworks/methods/tools ... etc. in building apps using GWT.
For instance I'm having difficulty answering these questions:
1- Should I use Spring Roo/ SpringSource Tool Suite?
2- What sort of database specification/implementation should I use (JDO, JPA.. I'm a noob when it comes to Java DB issues)?
3- Should I use Google App Engine platform, how easy/useful it is for a start-up project?
4- Should I start coding now, or continue reading and confusing myself (I've started on my POJO data model)?
5- Communicating with the server, RPC or RequestFactory or something else?
Sorry for the many questions, as you can see I don't have much experience in GWT but I'm welling to challenge myself, I just need some guidance.
Thank you.
Taking each question in turn...
To start with no, its extra setting up and its sometimes nicer to be in control of your code and know exactly what is in there.
I would go for JPA with GWT as it is supported by Google App Engine. But bear in mind GAE doesn't provide a relational database and there are quite a lot of restrictions on on what is and isn'ty supported. If you're not using GAE then JPA or JDO are as good as each other.
If you're planning on using Google App Engine then use it from day one and design your app to take advantage of its facilities. If you are going to use this then I would suggest Objectify for your object mapping/"database" implementation as opposed to JPA/JDO as it's a more natural fit.
Yep, start coding now but don't expect the confusion to stop.
I would give the vanilla GWT RPC a go to see what you are dealing with, then try GWT Dispatch or the newer GWT Platform which make the whole RPC mechanism much simpler to deal. RequestFactory is fine too but has some idiosyncrasies that take some getting used to. In the end the choice will largely be personal - they all do the job and do it well.
Other suggestions
use activities and places to control application navigation
event bus for event propagation and to keep your code decoupled
MVP to separate logic/view
dependency injection (Gin client side, Guice server side) to glue it all together
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 12 years ago.
If so, please list some of them. Thanks
The operating system on the Symbolics LISP machine was written in LISP. Now you can claim that this was programming in ASM as the machine code on these machines was a limited form of LISP, but it certainly had zero C or C++ code!
The Xerox Star back in 1977 had an operating system called "Pilot", written entirely in Xerox PARCs in-house language Mesa. Additionally, the CAP Computer had an OS written in ALGOL, and the Oberon OS was written the programming language with the same name.
I don't know of any, and you're highly unlikely to find one any time soon. It also depends on what you call an operating system. A lot of people include high-level tools (commonly written in C) such as compilers as part of an operating system, and many of these tools are written in C. Also, most "higher-level" programming languages require use of a compiler/interpreter, which is typically written in C.
You could though, if you wanted to. A bit of hand-written machine code to replace the initialization assembly code, but I really don't know why you'd want to do that!
I agree with all the posters who have offered an answer (except for the guy who suggested this wasn't a valid question - looks very valid to me).
The answer I would like to propose is that, while theoretically possible, it would be extremely cumbersome to a human being and 100% impractical. However, in the near future, machines could write their own OS directly in their machine language with little or no human interaction. This code would have zero lines of code in Assembly, C and C++.
JavaOS was written mostly in Java. But of course it is built atop a virtual machine which in turn is probably implemented using C/C++/Asm.
On the other hand, every programming environment will somehow rely on libraries which are eventually coded in Assembler...
Zero C or C++ is theoretically possible. But as far as I know all Operating Systems are written in a mix of C and ASM.
However, I don't think you can get away with an OS without assembly code since there are some very low level init instructions in all current platforms that you will definitely need to write in assembly code I guess...
You could bit-bang a bootloader with a text editor, but there are very few people who would actually waste their time doing this today when tools like ASM and C/C++ exist.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 13 years ago.
Out in the dev lang there are many many, frameworks for all types of languages. For instance, javascript has jQuery, which I use all the time without even thinking about it. Then for php there is Zend and CodeIgnitor, Ruby has rails, Python has django. That's just a few off the top of my head.
I have always been the type of person that was against a framework, especially for PHP. I was always under the impression that using a framework would make people conceive you as lazy developer or to have the inability to code in the raw format. However, for a while now I notice large projects are being made in these frameworks.
I am very curious as to what the opinions are of everyone. Does using a framework make you less of a developer then using raw code, also lets add in a variable and say that you don't already know all the ends and outs of the primary language?
I always lived by the idea that it's better to write everything yourself...
... just to see how it works, then throw it away and use stable frameworks :)
While this may sound like a joke, there's much truth here -- rolling up something yourself will teach you a lot. And what you learn will allow you to better utilize what is already available.
See Not Invented Here.
Using the right framework gives you the ability to get actual, real work done. This means, IMO, you're more of a programmer, not less.
A good framework is indispensable in Javascript, to tide you over all kinds of incompatibilities between browsers that would otherwise drive you crazy. In languages where you have more control over the runtime environment, it's not indispensable, but it can supply you with a lot of useful functionality and stop you from reinventing the wheel -- so using the right framework for the task (which may not necessarily be the most popular one, if what you're doing is a better match for a different framework, perhaps a lighter-weight or somewhat specialized one) doesn't make you a lesser programmer, it makes you an intelligent one;-).
Understanding what's going on at (at least) just below the layer of abstraction you're coding to is an excellent idea (partly due to Joel's "law of leaky abstractions"), but that's no reason not to use a lower level of abstraction than available and suitable, except in a "learning and experimenting way" (i.e. not in production work;-).
Not using one makes you sure hell of a lot less productive however!
The only way to use 'raw code' is to write your programs in 0s and 1s. Otherwise, you are using a 'framework' of some sort. C is a layer on top of assembly which is a layer on top of machine code. That doesn't make a C programmer any less or a programmer - she is just working at a different level. In the same way, using a framework on top of PHP means you are just working at a different level. There are good programmer who build Zend (and other frameworks), and there are good programmers who use those frameworks to build business applications. Being an application level programmer is nothing to be ashamed of - it is hard work to do it right, whether or not you use a framework.
Davidmoreen, does using ASCII make you less of a programmer? I say, go ahead and make your life easier.
alt text http://prontiso.com/images/hardcore_keyboard.jpg
No more than using a language instead of raw binary does.
As the complexity of the tasks we are trying to accomplish increase, our only choice is to build on the foundations that others create. The main goal of any programmer should be to solve a business problem in a cost effective manner. If you don't solve real problems in a cost effective way then you definately less of a programmer.
I beleive it's important to understand the fundamentals of your tools and know how they work. THere'll be times when you need to work on the framework itself or just understand and debug what it's doing.
That said do you really need to remember to call session_start() at the beginning of every page load, or include the config files, or establish a database connection, or any one of the other minuetae that a framework will do for you and leave you to get on with creating the "unique" portions of your application?
I disagree with learining and using a framework without understanding the undelying language and concepts, but choosing to use one gives your code structure and makes you a lot more productive.
Being entirely dependent upon a framework makes you less of a developer. Using one as part of your toolkit when the need is there does not.
There is zealotry on both sides of the argument. You have the ones so starry-eyed about one particular framework that they use it for /everything/ (I usually see them in the form of beginner Railers or PHP programmers). Then you have the ones that are "hardcore" and as such "don't need hand holding", which more or less translates to them using last generation's frameworks instead (beacuse, after all, it's turtles all the way down).
It really comes down to knowing your framework. I would posit that using a framework without knowing its strong and weak points does indeed make you less of a programmer (if you are the one in charge of the decision), and should be counted as a cardinal sin. Study the frameworks, study the problem domain, make the informed choice, not the biased one.
Being able to make these kinds of decisions is what seperates good programmers from the... not-so-good ones.