Physics (activity): Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
No edit summary
 
(88 intermediate revisions by 17 users not shown)
Line 1: Line 1:
{{Activity migrated to sl.o
[[Category:Game]]
| download=http://activities.sugarlabs.org/en-US/sugar/addon/4193 Physics

| git=http://git.sugarlabs.org/projects/physics Physics
This Wiki page is a '''work in progress''' -- and reflects the page used as a template, [[Speak]].
| homepage= http://wiki.sugarlabs.org/go/Activities/Physics Physics

}}
Feel free to help form this page, it will be finished and moved to [[Physics]] once our [[/Project_hosting_application|project hosting application]] is approved and the source files are uploaded to [http://dev.laptop.org/git?p=activities/physics;a=summary the repository].

Current work on Physics:
* [[/Project_hosting_application|Project hosting application]] being processed
* [[/Slimming]] down Elements into its bare essentials for '''(1)''' Use (Box2D, python/activity scripts) and '''(2)''' Devel, (Box2d sources, building)
--[[User:Bjordan|Brian Jordan]], OLPC summer intern

[[Image:PhysicsPlatformOverview.png|160px]] [[Image:PhysicsTriangleDraw.png|160px]] [[Image:PhysicsSquareDrawing.png|160px]] [[Image:PhysicsCircleDrawing.png|160px]]


[[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://wiki.laptop.org/images/1/18/Speak-5.xo|Speak-5}}
{{ 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 pootle|1=http://dev.laptop.org/git?p=activities/speak;a=blob_plain;f=Speak.activity/po/activity.pot;hb=HEAD}}
{{ OBX team | [[User:Bjordan|Brian Jordan]], Alex Levenson, [[User:Crazy-chris|Chris Hager]]}}
{{olpcboxbottom}}
{{olpcboxbottom}}


= Physics =
= Physics =
[[Image:PhysicsElements.png|160px|left]]
Physics is a physical world simulator -- 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'''!).
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'''!).

= Photographs =
Thanks to the [[Elements]] team and Alex Levenson for portions of this example code!

[[Image:Physics-1.JPG|320px]] [[Image:Physics-2.jpg|320px]] [[Image:Physics-3.jpg|320px]]

= Instructions =
== How to install ==
Download this .xo file from the Browse activity: [[Media:Speak-5.xo|Speak-5.xo]]

Then follow the steps here: [[Activity_installation]]

If you have an older version, you'll need to delete it before you can download the new version. There are instructions here: [[Activity_Upgrade]]

You can also use [[xo-get]] to install and/or upgrade Speak (as well as many other activities).

== How to play ==
Type something and press Enter to hear it spoken aloud. Use the toolbars at the top to change the voice's accent, rate and pitch or the shape of the eyes and mouth. After you've adjusted the settings it looks nicer in full-screen mode (Press Alt-Enter to switch).

Use the up/down arrow keys to scroll back through a history of things you have typed, or click the arrow button at the bottom right.

Use the Journal to resume your Speak activity including all voice, face and history settings.

== How to develop ==
Speak is free software, licensed under the [[GPL]]. It is partially based on Arjun Sarwal's code from Measure and of course relies heavily on the wonderful speech synthesizer espeak. You can find the source code inside the .xo bundle or here: http://dev.laptop.org/git?p=activities/speak . If you have suggestions or contributions feel free to leave a comment on the discussion page [[Talk:Speak]].

= Release Notes =
* v5
Speak now uses the default locale of the laptop to pick the default voice accent.
* v4
You can now use the arrow keys or history popup to get back to old things you typed.
All history, voice and face settings are saved in the Journal so you can resume right where you left off.
Fixed some small drawing glitches.
The eyes now follow the text cursor when you type.
The eyes now look at you when speaking.
Pressing Enter no longer clears the text entry area.
* v3
Lots of performance improvements.
* v2
First public release.


We also plan to add forces such as: magnetism, springs, and motors
= Testing =


== Shape Drawing ==
[[Media:Speak-5.xo|Speak-5.xo]] has been tested on build 690 under emulation as well as on a G1G1 running 656.
[[Image:PhysicsTriangleDraw.png|160px]] [[Image:PhysicsSquareDrawing.png|160px]] [[Image:PhysicsCircleDrawing.png|160px]]


== GUI 2D Vector Tool ==
Thanks to Troy Ihmels for beta testing for me.
[[Image:ForceImpulse2dvectortool.png|160px]]


== Get Physics! ==
= Reviews =
Click this link in browse: [http://dev.laptop.org/~bjordan/Physics-0.2.xo 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===
Read a [http://www.olpcnews.com/software/applications/xo_speak_speech_synthesis.html review by Wayan Vota on OLPC News] (with [http://revver.com/video/761721/xo-speak-for-one-laptop-per-child/ video demonstration by a child])
[http://dev.laptop.org/~bjordan/Physics-0.1.xo Physics-0.1.xo]


=Usage=
Here is an article from Chile's Un Computador por Niño web site [http://ucpn.cl/2008/03/23/aplicaciones-educativas-en-el-olpc-sintetizador-de-voz/ Aplicaciones educativas en el OLPC: Sintetizador de voz] (translated [http://translate.google.com/translate?u=http%3A%2F%2Fucpn.cl%2F2008%2F03%2F23%2Faplicaciones-educativas-en-el-olpc-sintetizador-de-voz%2F&langpair=es%7Cen&hl=en&ie=UTF8 into English via Google])
==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==
An extremely fun activity. The developer did a great job of using the speech capabilities of the app to make it easy for the user to start playing. Great job incorporating the accents for different languages. This is one of the best speech apps I've seen in a while. - Paul Russell
* '''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==
Best Activity I've found for the XO so far! My niece will love it!!! Great Job! - Dwight Harvey
===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===
See also [[Talk:Speak]]
Can you use motors to make a device that hits a ball up and down?


===Lotus===
= Bugs =
There are intermittent performance problems, especially with long sentences.
The toolbar sliders need icons or labels so you know what they do.


Reproduce the [http://lotus-shower.isunet.edu/the_lotus_effect.htm Lotus effect] in the classroom.
= Feature requests =


=Plan to Add / Requests=
* Languages should be written as native, not in English: Français rather than French, Deutsch rather than German etc. And probably some generic sound rather than words in English to test the two cursors.
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)
** I have added support for localization so that the language names can be translated. Volunteers welcome. [[User:Jminor|jminor]] 12:42, 8 March 2008 (EST)
#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 [http://dev.laptop.org/ticket/7592 #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 [http://dev.laptop.org/ticket/7585 #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.
# [[/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 =
* (fixed in v5) Set default language to another language than English.
[[Image:Housegolf.jpg|320px]]
** Speak now uses the default locale of the laptop to pick the default accent. You can also save the settings you like in the Journal and resume that entry to start where you left off. [[User:Jminor|jminor]] 12:39, 8 March 2008 (EST)
[[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 =
* (fixed in v4) Speak should save your settings to the journal.
[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 =
* You should be able to draw/make new mouth and eye shapes.


*Sorting different sized balls in to two buckets, large and small (with no jams).
* The mouth shape should be driven by espeak's phonemes rather than the audio waveform.
*A cyclic mechanism for lifting balls from the bottom of the screen to the top, again and again.
**The espeak API allows for per-phoneme callbacks which means that this should be possible. However my investigation leads me to believe that this would require significantly more time than I am able to invest in Speak. If you are interested in helping with this feature. Please contact me. [[User:Jminor|jminor]] 02:29, 2 March 2008 (EST)
*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.


* You should be able to make it sing.


* (fixed in v4) Let the text scroll back so you can repeat something without retyping it.
* My favorite list: My child name, the numbers. greetings, etc,... Pato Acevedo.


* What happens when speak is shared with the neighborhood? Is there some way to integrate it so that users can make each other's laptops talk across distances? This would enable speak to be used as a simple chat for blind users. -Lesley
** I like this idea a lot! [[User:Cjb|Cjb]] 01:14, 22 March 2008 (EDT)


{{Activity page
[[Category:Software]]
|icon=Image:Activity-physics.svg
[[Category:Speech Synthesis]]
|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:

Activity-physics.svg

Physics

PhysicsElements.png

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

PhysicsTriangleDraw.png PhysicsSquareDrawing.png PhysicsCircleDrawing.png

GUI 2D Vector Tool

ForceImpulse2dvectortool.png

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

Physics-0.1.xo

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)

  1. There are some tools that need to be added
    • Need to implement gears, prismatic and revolute joints in elements (already implemented in Box2D)
  2. Need a way to change the properties of an object (density, rotation, strength (for breaking), bounciness, friction, color - ticket #7592
  3. 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:
      1. 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
      2. 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)
      3. 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
  4. Save / Exporting scene - ticket #7585
    • Standard format interoperating with a browser-based playground
  5. 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.
  6. Sonification - ticket #7593
  7. Joystick button and Physics for game-making

Screenshots / Photographs

Housegolf.jpg PhysicsNew3.png Bridgependulum.jpg PhysicsMesh.jpg Physics-1.JPG Physics-2.jpg Physics-3.jpg PhysicsNew1.png PhysicsNew2.png

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

Icon: Sugar icon::Image:Activity-physics.svg
Genre: Activity genre::Math and Science
Activity group: ,|x|Activity group::x}}
Short description: Short description::A physics playground for the XO.
Description: 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!).
Maintainers: ,|x|Contact person::x}}
Repository URL: Source code::http://dev.laptop.org/git?p=activities/physics
Available languages: ,|x|Available languages::x}}
Available languages (codes): ,|x|Language code::x}}
Pootle URL:
Related projects: Related projects,|x|Related projects::x}}
Contributors: ,|x|Team member::x}}
URL from which to download the latest .xo bundle Activity bundle::http://dev.laptop.org/~bjordan/Physics-0.2.xo
Last tested version number: Activity version::0.2
The releases with which this version of the activity has been tested. ,|x|Software release::x}}
Development status: Devel status::3. Alpha
Ready for testing (development has progressed to the point where testers should try it out): ,|x|Ready for testing::x}}
smoke tested :
test plan available :
test plan executed :
developer response to testing :