brucedjones

Members
  • Content count

    36
  • Joined

  • Last visited

Community Reputation

850 Good

About brucedjones

  • Rank
    Member
  1. Random Circles in a Circle

    There is a whole field devoted to this problem, as someone noted with the wikipedia page. I have spent some time on this problem for work, and in general I follow one of two approaches.   A) Place circles at random, and relax their positions until no overlap occurs (if possible). To do this, you can link the particles with springs. The springs apply a force to the circle centers, which is proportional to the circle overlap. You use this force to find acceleration, carry out time integration to update circle centers until a non overlapping state is achieved. The downside of this is that you have to write an iterative particle motion solver, but on the upside you get to choose circle sizes and a non overlapping state will likely be found if one is possible.   B) Place non overlapping circles with very small radius at random. Iteratively increase the circle radii for all circles. As circles begin to touch or overlap, you remove them from the list of circles who's radius is to be increased, and continue to iteratively increase the radius of the remaining circles. This algorithm is simpler to implement, but suffers from the fact that you have less freedom in final circle sizes.   And as with anything, if what you are doing now is good enough, then stick with that!
  2. 3D printer for hobby robotics

    Some bad advice above. 3D printing is a perfect compliment to a robotics hobby. You can do gears just fine, and its great for all those oddly shaped brackets necessary for a robot. They may not produce the most beautiful parts, but they will be perfectly functional.   A CNC is a great suggestion, but a 3D printer is just a more versatile tool. In an ideal world, you would have both plus a laser cutter to boot. But if you can only get one, get the 3d printer. https://www.reddit.com/r/3Dprinting/ is a great place to get advice, opinions on which printer to get are very subjective.   Disclaimer: I have 3d printed quadrotors and robotic arms.
  3. Life in the UK and Ireland

      1. Almost every town/city is linked by the national rail network. Buses coverage is very good in all towns/cities, not so great in rural areas. If you live in a town/city you do not need a car. That said, if you have a license, you can buy used cars very cheaply. At the lowest end, maybe 300-500 pounds for a disposable car (wont pass its MOT next year). 2. The country is pretty homogeneous, standard of living doesnt really vary. That said, cost of living can vary a lot like everywhere, London being the most expensive, and typically getting cheaper the further north you go. 3. Postal service is fine. Only really comes up nowadays for online purchases and christmas cards. 4. Bills are usually paid with direct debit. 5. Cheques are not widely used anymore. 6. Packages can be held at the nearest depot. (this may be the one circumstance where a car is useful as depots are not always conveniently located) 7. Weather in the south is good, south east especially. Gets steadily worse as you go north. 8. 220v in general, bathroom sockets will do 110v 9. Healthcare is covered by the NHS, you pay for this out of your wages (before tax). Everyone pays the same regardless of circumstance, and you cannot opt out. 10. Private health insurance is available, but typically not required. 11. NHS covers *some* dental expenses, but expect to pay additionally for fillings, crowns, etc. The cost of these things is however much lower than in the USA. 12. A typical job offers little in the way of benefits, as the state provides enough to keep you healthy.   Having moved from the UK to USA in the last 3 years, there are certainly differences in lifestyle, but these differences are really not that great.
  4. Smoothed Particle Hydrodynamics

    The density of an SPH particle can (and does) change, however the mass implicitly remains constant. This is required to enforce conservation, from this we conclude that the volume a particle represents actually varies with density. This fact about SPH is often missed when one relies on the particle interpretation, SPH particles are not rigid particles, they are overlapping volume elements.   Your gravity implementation is indeed incorrect if it includes a density term. Gravity should be implemented by applying an additional acceleration to the particle, which is determined as the particle mass multiplied by gravitational acceleration.   Without having looked at your code I cannot say whether this will solve all your problems.
  5. Idea for a GoogleMaps Strategy Game

    Learn to code, learn the maps API, implement a minimal prototype. Is it fun? then you have answered your questions.
  6. ParaView and the VTK library are a good example you could learn from. ParaView is a scientific visualisation package, which has a reasonable amount of data manipulation functionality. The functionality of ParaView is provided by the VTK library, where ParaView is essentially a QT wrapper for VTK. Both ParaView and VTK are open source, and there are a number of books published on them, just search Amazon.
  7. Why NASA Switched from Unity to Blend4Web

    Title is a bit misleading since the article is just your speculation.   Also, I would think the reason is more likely to be "Someone else eventually got the contract who preferred blend4web"
  8. Impulse based physics issues with mass

    I haven't been through the code in detail, but maybe can offer some thoughts.   First, for the elevator to stop moving the force exerted on the player by the ceiling must equal the force exerted by the player on the elevator, which must equal the force applied to the elevator in the upwards direction. Inspection of these forces may help you.   Second, when the player initially falls, it doesn't bounce. Though this may be the behavior you desire, I *think* the way it is implemented with restitution is what is causing your problem. If you set your restitution to 0.9, the model appears to reach the resting state you desire. However, the player now bounces when it hits the elevator, and the resting state takes a lot longer to achieve.
  9. gnuplot is very popular, as well as matplotlib for python. Personally, I do my plotting in matlab, and convert the figure to tikz which can be compiled with latex using the pgfplot package. Once I have the tikz file, I do some manual edits there to beautify.
  10. 3D Printing

    Vacu-form still requires skills and cleanup. I'm also skeptical that the voids below the sculptures chin and belly will turn out well.   edit: you also need a positive of the sculpture in the first place...
  11. 3D Printing

    Code fox, I don't really agree with any of your points. Why? try carving that sculpture you showed, in less time than it took to print no less.   3D printing is great for *functional* parts. If you don't care about form then you can use them as is, yes you may need to turn some parts in to assemblies but that requires only a few skills compared to machining.   For aesthetic parts, you have to spend time sanding, polishing and painting. This is no different to a machined part.
  12. Estimating Effort for Small Projects

    I prefer to follow Scotty's Law. Increase your best estimate by an order of magnitude, report that figure. The captain will be pleased when you take a day to do something you said would take a week :)
  13. force and torque

      This says it all really. Your questions are interesting and well informed, but I think you have come to the wrong place for the answers. Game developers frequently (and need to) fudge the physics to get something that works at a reasonable frame rate. The techniques used are often ad-hoc and found empirically.   Your objective appears to be different to this, you want a correct and accurate simulation. For that, you will benefit by looking at more appropriate forums that deal with physics and simulation explicitly. One simulation technique that would be relevant to your line of questioning would be the Discrete Element Method, that's a good place to start. Once you understand the most accurate techniques, how to fudge them will be much more obvious.
  14. Towards a Simpler, Stiffer, and more Stable Spring

    h4tt3n, you would define the global timestep based on the limiting stiffness. That is, you would compute the eigen-frequency for all springs in your system, and base your global timestep on the maximum. If the stiffnesses are constant for all springs, you only ever have to do this once so its hardly impractical.     What you have done basically relies on the critical timestep. Look at the equations in the link again and you will see the critical stiffness is,   K_crit = 4m/(dt^2)   Which is suspiciously similar to the form of your coefficients in the equation that follows the "reintroducing coefficients" section, ie Cm/(dt^2) for the first term. Your formulation and guidance therefore sets the stiffness well below the critical stiffness for the chosen timestep.   I feel this article would benefit from a discussion of the critical timestep and how it relates to your work. Despite my comments I like the conceptual explanation of the coefficients relating to rigid and springy springs.   PS. Your quote from the YADE docs's refers to the case where timestep leads to very large displacements relative to the system size, your formulation would suffer problems in this case also.
  15. Towards a Simpler, Stiffer, and more Stable Spring

      Your motivation for all this is flawed. This "unkown threshold" is actually a known threshold, the term that applies here is the critical timestep. You can compute the critical timestep from known quanitities of mass and stiffness. Further reading is found here (see the section for a general mass-spring system):   https://yade-dem.org/doc/formulation.html   Now in a game environment there are likely limitations on timestep. However it is very easy to do a "back of the napkin" calculation to see if a simple mass-spring system will work in your case.