Physics (activity): Difference between revisions
No edit summary |
|||
(53 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
{{Activity migrated to sl.o |
|||
[[Category:Games]] |
|||
| download=http://activities.sugarlabs.org/en-US/sugar/addon/4193 Physics |
|||
| git=http://git.sugarlabs.org/projects/physics Physics |
|||
| homepage= http://wiki.sugarlabs.org/go/Activities/Physics Physics |
|||
}} |
|||
[[Category:Games]][[category:software]][[category:physics]][[category:science]] |
|||
{{olpcboxtop|toptext=[[{{PAGENAME}}|Physics]]}} |
{{olpcboxtop|toptext=[[{{PAGENAME}}|Physics]]}} |
||
{{ OBX activity | [[Image: Activity-physics.svg|40px]]|extra}} |
{{ OBX activity | [[Image: Activity-physics.svg|40px]]|extra}} |
||
{{ OBX source dev|activities/physics}} |
{{ OBX source dev|activities/physics}} |
||
{{ OBX xobundle|http://dev.laptop.org/~bjordan/Physics-0. |
{{ OBX xobundle|http://dev.laptop.org/~bjordan/Physics-0.2.xo|Physics-0.2}} |
||
{{ OBX team | [[User:Bjordan|Brian Jordan]], [[User:alexlevenson|Alex Levenson]], [[User:Crazy-chris|Chris Hager]]}} |
{{ OBX team | [[User:Bjordan|Brian Jordan]], [[User:alexlevenson|Alex Levenson]], [[User:Crazy-chris|Chris Hager]]}} |
||
{{olpcboxbottom}} |
{{olpcboxbottom}} |
||
Line 14: | Line 20: | ||
== Shape Drawing == |
== Shape Drawing == |
||
[[Image:PhysicsTriangleDraw.png|160px]] [[Image:PhysicsSquareDrawing.png|160px]] [[Image:PhysicsCircleDrawing.png|160px]] |
|||
''Now Implimented (mostly)!'' |
|||
== GUI 2D Vector Tool == |
|||
[[Image:PhysicsTriangleDraw.png|160px]] [[Image:PhysicsSquareDrawing.png|160px]] [[Image:PhysicsCircleDrawing.png|160px]] |
|||
[[Image:ForceImpulse2dvectortool.png|160px]] |
|||
Some discussion is required here... most shapes can't be defined simply by a single line. Any shape with fixed (relative) dimensions can, but that's not always what you want. |
|||
== Get Physics! == |
== Get Physics! == |
||
Click this link in browse: [http://dev.laptop.org/~bjordan/Physics-0. |
Click this link in browse: [http://dev.laptop.org/~bjordan/Physics-0.2.xo Physics-0.2.xo] |
||
''OR'' (for the development version...) |
|||
''OR'' |
|||
Open up the Terminal activity and follow these steps: |
|||
sudo yum install git |
sudo yum install git |
||
cd ~/Activities/ |
cd ~/Activities/ |
||
git clone git://dev.laptop.org/activities/physics |
git clone git://dev.laptop.org/activities/physics |
||
mv physics Physics.activity |
|||
# Then press ctrl + alt + erase to restart sugar. |
|||
# The newest version of physics is installed! (but may not be stable!) |
|||
===Old versions=== |
|||
[http://dev.laptop.org/~bjordan/Physics-0.1.xo Physics-0.1.xo] |
|||
=Usage= |
|||
=Progress= |
|||
==Drawing objects== |
|||
Here is what we have so far: |
|||
* '''Boxes''' - Rectangles of any dimension |
|||
*Draw the following shapes: |
|||
** Use: click (top-left corner) drag + release (bottom left corner) -- like dragging a selection box in a photo editor |
|||
**'''Boxes''' |
|||
* |
* '''Circles''' - Circles of any radius |
||
** |
** click (center) drag + release (outer edge) |
||
* '''Triangles''' - Triangles (equilateral) of any size and initial rotation |
|||
**'''Circles''' |
|||
** |
** Use: click (center of base) drag + release (tip) |
||
* '''Polygons''' - As many sides as you would like. Draw your own N-gon. |
|||
**'''Triangles''' |
|||
** Use: '''Click''' for each point, '''to end''': right click, or left click in the circle around the original point |
|||
***Equilateral triangle of any size and rotation |
|||
* '''Magic Pen''' |
|||
***click (center of base) drag + release (tip) |
|||
** Use: Click and hold to draw any shape you'd like! |
|||
**'''Polygons''' |
|||
***Click for each point of the polygon |
|||
==Using tools== |
|||
***Right click to end OR left click in the circle around the original point |
|||
* '''Grab''' - Drag existing objects around with the mouse |
|||
**'''Magic Pen''' |
|||
* '''Connect''' |
|||
***Click and hold to draw any shape you'd like! |
|||
** Click on any object, drag to another object + release to create a distance joint |
|||
*Use the following tools |
|||
** Click on any object to add a revolute joint (like a push pin!) |
|||
**'''Grab''' |
|||
* '''Destroy''' - Click on an object to destroy it, or draw a line of destruction--destroying everything in its path! |
|||
***Drag existing objects around with the mouse |
|||
**'''Joint''' |
|||
==Class Challenges== |
|||
***Click on any object, drag to another object + release to create a distance joint |
|||
===Egyptian Pyramid=== |
|||
**'''Destroy''' |
|||
How did the Egyptians build the pyramids using just human effort? They didn't have cranes, trucks or even cars. Make a block with a high mass and use a weak grab tool. How can you get it across the screen? |
|||
***Click on an object to destroy it |
|||
*Menus |
|||
===Vertical Tennis=== |
|||
**Using elements built in menus |
|||
Can you use motors to make a device that hits a ball up and down? |
|||
===Lotus=== |
|||
Reproduce the [http://lotus-shower.isunet.edu/the_lotus_effect.htm Lotus effect] in the classroom. |
|||
=Plan to Add / Requests= |
=Plan to Add / Requests= |
||
These are the features we would like to add, and if you think you can help us out please do! |
These are the features we would like to add, and if you think you can help us out please do! (currently being placed into Trac) |
||
#There are some tools that need to be added |
#There are some tools that need to be added |
||
#*Need to implement gears, prismatic and revolute joints in elements (already implemented in Box2D) |
|||
#*delete / remove tool -- done! |
|||
#Need a way to change the properties of an object (density, rotation, strength (for breaking), bounciness, friction, color - ticket [http://dev.laptop.org/ticket/7592 #7592] |
|||
#*fixate tool (object doesn't move / hangs in space) |
|||
#*fixed joint tool (a joint that doesn't move / hangs in space) |
|||
#Need a way to change the properties of an object |
|||
#*density |
|||
#*rotation |
|||
#*strength (for breaking) |
|||
#*bounciness |
|||
#*friction |
|||
#*color |
|||
#Activity needs to be "Sugarized" |
|||
#*Needs a sugar toolbar and sugar friendly context menus |
|||
#More physics! |
#More physics! |
||
#*Magnetism |
#*Magnetism |
||
#*Springs |
#*Springs -- via prismatic joints? |
||
#*Motors |
|||
#*Breakable bodies |
#*Breakable bodies |
||
#*Note: We are using a ''rigid body simulator'' (box2D). All of the above need to be implemented using forces on rigid bodies. Breakable bodies can be achieved a few different ways: |
#*Note: We are using a ''rigid body simulator'' (box2D). All of the above need to be implemented using forces on rigid bodies. Breakable bodies can be achieved a few different ways: |
||
Line 78: | Line 83: | ||
#*#When a body 'breaks' it is removed from the physics engine and is replaced by some new (smaller, fragment-like) rigid bodies (kind of like an explosion) |
#*#When a body 'breaks' it is removed from the physics engine and is replaced by some new (smaller, fragment-like) rigid bodies (kind of like an explosion) |
||
#*#When a body 'breaks' it is removed from the physics engine, it's shape is calculated and then split into smaller polygons which are then added as rigid bodies |
#*#When a body 'breaks' it is removed from the physics engine, it's shape is calculated and then split into smaller polygons which are then added as rigid bodies |
||
# Save / Exporting scene - ticket [http://dev.laptop.org/ticket/7585 #7585] |
|||
#We need a way to save / export the state of a scene |
|||
#* Standard format interoperating with a browser-based playground |
|||
#*Should set up a standard format for an elements scene |
|||
# Objectives and constraints |
|||
#Need to add objectives and limits |
|||
#*Incredible machine style objectives (get the ball into the basket, knock the triangle off the screen, etc) |
#*Incredible machine style objectives (get the ball into the basket, knock the triangle off the screen, etc) |
||
#*You only have 4 boxes, 1 meter of magic pen, and one triangle, etc. |
#*You only have 4 boxes, 1 meter of magic pen, and one triangle, etc. |
||
# [[/Sounds|Sonification]] - ticket [http://dev.laptop.org/ticket/7593 #7593] |
|||
#* See: http://n.clavaud.free.fr/processing/boucingballsmidi/video.html |
|||
#* and [[User:Bjordan/GSoC_2008#Physics_Sound_.28API.29]] |
|||
#* and [http://en.wikipedia.org/wiki/Sonification Sonification on Wikipedia] |
|||
# Joystick button and Physics for [[/Game-making|game-making]] |
|||
= Screenshots / Photographs = |
|||
[[Image:Housegolf.jpg|320px]] |
|||
[[Image:PhysicsNew3.png|320px]] [[Image:Bridgependulum.jpg|320px]] |
|||
[[Image:PhysicsMesh.jpg|320px]] [[Image:Physics-1.JPG|320px]] |
|||
[[Image:Physics-2.jpg|320px]] [[Image:Physics-3.jpg|320px]] |
|||
[[Image:PhysicsNew1.png|320px]] [[Image:PhysicsNew2.png|320px]] |
|||
= Videos = |
|||
[http://www.google-melange.com/gci/work/download/google/gci2013/5883999431950336?id=5718998062727168 Demonstration of how to use Physics] |
|||
[http://www.google-melange.com/gci/work/download/google/gci2013/5883999431950336?id=5639274879778816 Example of a Physics project] |
|||
= Ideas to try = |
|||
*Sorting different sized balls in to two buckets, large and small (with no jams). |
|||
*A cyclic mechanism for lifting balls from the bottom of the screen to the top, again and again. |
|||
*Try dropping 2 different mass objects at the same time. |
|||
*Experiment with pendulums of different lengths and masses. |
|||
*Try building a mechanical binary clock. |
|||
*Convert rotation into parallel motion using pistons. |
|||
*Experiment with touching one motorised circle against one pinned circle of various sizes. |
|||
*Try building a rag-doll puppet and make it dance in a convincing way. |
|||
*Use just links and circles to make a structurally sound Eiffel Tower. |
|||
*Try building a ratchet |
|||
*Try building an analogue clock face where the min hand goes around 60 times for each hour. |
|||
= Photographs = |
|||
Thanks to the [[Elements]] team and Alex Levenson for portions of this example code! |
|||
{{Activity page |
|||
[[Image:Physics-1.JPG|320px]] [[Image:Physics-2.jpg|320px]] [[Image:Physics-3.jpg|320px]] |
|||
|icon=Image:Activity-physics.svg |
|||
[[Image:PhysicsNew1.png|320px]] [[Image:PhysicsNew2.png|320px]] [[Image:PhysicsNew3.png|320px]] |
|||
|genre=Math and Science |
|||
|short description=A physics playground for the XO. |
|||
|long description=A physical world simulator and playground -- you can add squares, circles, triangles, or draw your own shapes, and see them come to life with forces (think gravity, Newton!), friction (scrrrrape), and inertia (ahh, slow down!). |
|||
|contact person=User:Alexlevenson,User:Bjordan |
|||
|activity source=http://dev.laptop.org/git?p=activities/physics |
|||
|language=English |
|||
|language codes=en |
|||
|related project=x2o |
|||
|team=User:ewjordan |
|||
|bundle URL=http://dev.laptop.org/~bjordan/Physics-0.2.xo |
|||
|activity version=0.2 |
|||
|releases=7.1.2 (656), 8.1.0 (703), 8.1.1 (708) |
|||
|devel status=3. Alpha |
|||
}} |
Latest revision as of 21:18, 24 November 2013
?Sugar icon}} | This activity is now hosted at the Sugar Activity Library. The information here is likely to be out-of-date. Consult the new pages for "Physics (activity)" first: |
|
Physics
Physics is a physical world simulator and playground -- you can add squares, circles, triangles, or draw your own shapes, and see them come to life with forces (think gravity, Newton!), friction (scrrrrape), and inertia (ahh, slow down!).
We also plan to add forces such as: magnetism, springs, and motors
Shape Drawing
GUI 2D Vector Tool
Get Physics!
Click this link in browse: Physics-0.2.xo OR (for the development version...) Open up the Terminal activity and follow these steps:
sudo yum install git cd ~/Activities/ git clone git://dev.laptop.org/activities/physics mv physics Physics.activity # Then press ctrl + alt + erase to restart sugar. # The newest version of physics is installed! (but may not be stable!)
Old versions
Usage
Drawing objects
- Boxes - Rectangles of any dimension
- Use: click (top-left corner) drag + release (bottom left corner) -- like dragging a selection box in a photo editor
- Circles - Circles of any radius
- click (center) drag + release (outer edge)
- Triangles - Triangles (equilateral) of any size and initial rotation
- Use: click (center of base) drag + release (tip)
- Polygons - As many sides as you would like. Draw your own N-gon.
- Use: Click for each point, to end: right click, or left click in the circle around the original point
- Magic Pen
- Use: Click and hold to draw any shape you'd like!
Using tools
- Grab - Drag existing objects around with the mouse
- Connect
- Click on any object, drag to another object + release to create a distance joint
- Click on any object to add a revolute joint (like a push pin!)
- Destroy - Click on an object to destroy it, or draw a line of destruction--destroying everything in its path!
Class Challenges
Egyptian Pyramid
How did the Egyptians build the pyramids using just human effort? They didn't have cranes, trucks or even cars. Make a block with a high mass and use a weak grab tool. How can you get it across the screen?
Vertical Tennis
Can you use motors to make a device that hits a ball up and down?
Lotus
Reproduce the Lotus effect in the classroom.
Plan to Add / Requests
These are the features we would like to add, and if you think you can help us out please do! (currently being placed into Trac)
- There are some tools that need to be added
- Need to implement gears, prismatic and revolute joints in elements (already implemented in Box2D)
- Need a way to change the properties of an object (density, rotation, strength (for breaking), bounciness, friction, color - ticket #7592
- More physics!
- Magnetism
- Springs -- via prismatic joints?
- Breakable bodies
- Note: We are using a rigid body simulator (box2D). All of the above need to be implemented using forces on rigid bodies. Breakable bodies can be achieved a few different ways:
- When a body 'breaks' it is removed from the physics engine and some kind of graphical animation indicates that it has been broken and dissipated
- When a body 'breaks' it is removed from the physics engine and is replaced by some new (smaller, fragment-like) rigid bodies (kind of like an explosion)
- When a body 'breaks' it is removed from the physics engine, it's shape is calculated and then split into smaller polygons which are then added as rigid bodies
- Save / Exporting scene - ticket #7585
- Standard format interoperating with a browser-based playground
- Objectives and constraints
- Incredible machine style objectives (get the ball into the basket, knock the triangle off the screen, etc)
- You only have 4 boxes, 1 meter of magic pen, and one triangle, etc.
- Sonification - ticket #7593
- Joystick button and Physics for game-making
Screenshots / Photographs
Videos
Demonstration of how to use Physics Example of a Physics project
Ideas to try
- Sorting different sized balls in to two buckets, large and small (with no jams).
- A cyclic mechanism for lifting balls from the bottom of the screen to the top, again and again.
- Try dropping 2 different mass objects at the same time.
- Experiment with pendulums of different lengths and masses.
- Try building a mechanical binary clock.
- Convert rotation into parallel motion using pistons.
- Experiment with touching one motorised circle against one pinned circle of various sizes.
- Try building a rag-doll puppet and make it dance in a convincing way.
- Use just links and circles to make a structurally sound Eiffel Tower.
- Try building a ratchet
- Try building an analogue clock face where the min hand goes around 60 times for each hour.
Activity Summary