Research and Development of a Physics Engine by Timmy Loffredo.

Slides:



Advertisements
Similar presentations
Rigid Body Dynamics Jim Van Verth
Advertisements

INNER WORKINGS OF UNITY 3D. WHAT WE ARE GOING TO COVER Intro to Unity Physics & Game Objects Cameras & Lighting Textures & Materials Quaternions and Rotation.
CS4455 Physics Engines Maribeth Gandy Jeff Wilson Clint Doriot
1Notes. 2 Building implicit surfaces  Simplest examples: a plane, a sphere  Can do unions and intersections with min and max  This works great for.
Level 2 Mobile and Games Programming Modules Cathy French K233.
Manipulator Dynamics Amirkabir University of Technology Computer Engineering & Information Technology Department.
Introduction What is this ? What is this ? This project is a part of a scientific research in machine learning, whose objective is to develop a system,
Mechanics, Dynamics & Aesthetics The Complexity of Games Expectations of Players Efficiency Game Mathematics o Collision Detection & Response o Object.
CS 282 Simulation Physics Lecture 1: Introduction to Rigid-Body Simulation 1 September 2011 Instructor: Kostas Bekris Computer Science & Engineering, University.
1cs426-winter-2008 Notes. 2 Velocity fields  Velocity field could be a combination of pre-designed velocity elements E.g. explosions, vortices, …  Or.
Virulent SophtWear Virul-Glider V1.0 Josh Smallman Mjumbe Poe Zach Clegg.
3.7. O THER G AME P HYSICS A PPROACHES Overview of other game engine physics approaches.
CS 4730 Physical Simulation CS 4730 – Computer Game Design.
Feature-length films: Games: Desktop Animations: Computer Animation.
An Introduction to Physics Engines Michael Sundqivst TV10S1M3.
RNA Folding Simulation by Giff Ransom RNA Folding Simulation.
Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
Physics simulation in a 3D environment Sylvain EUDIER MSCS Candidate Union College May 28 th, Spring 2004.
Game Physics – Part IV Moving to 3D
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
Constraints-based Motion Planning for an Automatic, Flexible Laser Scanning Robotized Platform Th. Borangiu, A. Dogar, A. Dumitrache University Politehnica.
DYNAMICS Part I Physics Engine By Willis (The Magnificent) Louie Fei (The Coyote) Liao.
Leslie Luyt Supervisor: Dr. Karen Bradshaw 2 November 2009.
A Spring 2005 CS 426 Senior Project By Group 15 John Studebaker, Justin Gerthoffer, David Colborne CSE Dept., University of Nevada, Reno Advisors (CSE.
Spring Rigid Body Simulation. Spring Contents Unconstrained Collision Contact Resting Contact.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Collisions & Contact.
Lecture Fall 2001 Physically Based Animation Ordinary Differential Equations Particle Dynamics Rigid-Body Dynamics Collisions.
Developing An Educational Rigid Body Dynamics Physics Engine By Neal Milstein.
Kinematics Jehee Lee Seoul National University. Kinematics How to animate skeletons (articulated figures) Kinematics is the study of motion without regard.
Advanced Computer Graphics Rigid Body Simulation Spring 2002 Professor Brogan.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Physics for Games Spring 2012.
1 Frisbee Physics Simulation Charles George Advisor: Brian Postow 03/05/05.
Asteroid Modeling and Prediction Introduction Asteroid impact with Earth is an ever present danger for the inhabitants of our planet. The desire to be.
Spring Rigid Body Simulation. Spring Contents Unconstrained Collision Contact Resting Contact.
Computer Game Design and Development
Developing An Educational Rigid Body Dynamics Physics Engine By Neal Milstein.
Kinematics of a Rubber Bouncy Ball A Simulation of a Rubber Bouncy Ball Yun Chung Lu Physics 210 Final Project Presentation Affiliation: University of.
CS274 Spring 01 Lecture 7 Copyright © Mark Meyer Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
Problem 3 ME 115 Final – Troy Topping. Initial Construction A box with m = 1250 kg is input to simulate the forklift Only half the mass is used since.
Rigid Body Dynamics: A Graphical Simulation Eugene Paik
1 Rocket Science using Charm++ at CSAR Orion Sky Lawlor 2003/10/21.
Advanced Games Development Game Physics CO2301 Games Development 1 Week 19.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Rotational Motion – Part I AP Physics C. The radian  There are 2 types of pure unmixed motion:  Translational - linear motion  Rotational - motion.
Dynamics. Motion with Regard to Mass Particle Dynamics Mass concentrated in point Newton’s Equation Governs Motion f = M x.
Computer Graphics Imaging Ying Zhu Georgia State University Lecture 29 Soft Bodies and Rigid Bodies.
Feature-length films: Games: Desktop Animations:.
Game programming 1.
Advanced Computer Graphics Rigid Body Simulation
Physically Based Simulations For Games
Graphical Display of a Physics Simulation
2D Simulation of Rigid Bodies
Done already for your convenience!
CS-378: Game Technology Lecture #15: Physically Based Simulation
Kinematics Introduction to Motion
Rigid Body Dynamics Simulation
Stylized Environmental Rendering
3.7. Other Game Physics Approaches
Navigation In Dynamic Environment
CSCI1600: Embedded and Real Time Software
Brute Force Approaches
Advanced Computer Graphics Spring 2008
Physics 111 Practice Problem Solutions 09 Rotation, Moment of Inertia SJ 8th Ed.: Chap 10.1 – 10.5 Contents 11-4, 11-7, 11-8, 11-10, 11-17*, 11-22, 11-24,
Computer Animation Algorithms and Techniques
Advanced Games Development Game Physics
Computer Graphics Lecture 15.
TJHSST Systems Lab Rigid Body Dynamics Simulation
Introduction to Fluid Mechanics
GPAT – Chapter 7 Physics.
Presentation transcript:

Research and Development of a Physics Engine by Timmy Loffredo

As the processing power of modern computers grows, it is becoming more and more feasible to create accurate, graphical simulations of three dimensional physics. In the field of computer games, for example, powerful 3D physics engines are starting to become standard practice. Introduction A screenshot from Half Life 2, demonstrating its superior physics.

This project aims to research modern physics modeling techniques and create a rudimentary but powerful physics engine. Most games focus on rigid body dynamics, a small but important subset of all physics, and so did this project. A small foray into spring modelling was made, also. Goal and Scope of Study

Background There are a multitude of publicly available physics engines out there, some of commercial product quality, some not. I have chosen, initially, to model my engine after a previous engine written by Chris Hecker. In a series of 4 articles for a programming magazine, Hecker presents a simple method for creating a 3D physics simulator capable of collisions for rigid, polygonal solids.

Theory There is a large branch of game development devoted to the production of physics engines. Here are a few examples of the theory involved. Acceleration must be integrated into velocity, and velocity into position. This requires a numerical integrator, like Euler's algorithm from calculus. The one detailed above is called leapfrog. 3D rotation is a tricky thing to implement. My project uses 3x3 matrices to represent orientation, as opposed to Euler angles or axis- angle rotation.

Design Criteria and Resources Used The criteria for a successful physics engine is that (a), it looks real, and (b), it accurately simulates physics. My personal goal was to implement 3D collisions between arbitrary polygonal solids, which, in the end, proved too difficult to work well. Other things, however, like spring demonstrations and the pool game, turned out splendidly. I will be using Java for my programming language, Netbeans IDE for my programming environment, and LWJGL, an openGL port to Java, for my graphics engine.

Workplan ● Framework – setting up window etc. ● Kinematics – acceleration, velocity, position ● Angular Kinematics – orientation, rotation ● Dynamics – forces on objects ● Springs – fixed or free springs ● Collision Detection – decide when things collide ● Collision Handling – responding to collisions ● Rest – special module for objects resting on a surface ● Pool Game – just what it sounds like ● 2D Soft Pressure bodies – bendable things, just for fun at the end

Testing Some tests I've run: A network of springs designed to simulate cloth. A box with spheres bouncing around in it.

Testing My personal favorite, the pool game:

Everything up to Dynamics worked just as planned. It seems a powerful rigid body simulator is feasible for large projects, since the time taken for each step of physics calculation was almost a tenth of the time for graphical calculations. Results Collisions have been less successful. Spherical collisions are easy enough and work well, but polygonal collisions sometimes have odd results. The objects bounce off each other in unusual directions. Springs were surprisingly effective and useful in a variety of ways. They can do much more than cloth simulation; they could be the basic unit for an entire physics engine. Sometime, I would like to explore more about spring physics.

Conclusion Physics simulation is a blossoming field with many applications in the near future. I have learned that it is a much wider field than I initially imagined, from water effects to particle effects to rigid body collisions to spring models. Any programming team could spend years working on a physics engine without ever exploring all the possibilities. I suggest that the next physics project explore a different aspect of physics – whatever seemingly small subfield that interests you most.