<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.physicsbook.gatech.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jaeleeps</id>
	<title>Physics Book - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.physicsbook.gatech.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jaeleeps"/>
	<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/Special:Contributions/Jaeleeps"/>
	<updated>2026-04-29T17:05:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.7</generator>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31952</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31952"/>
		<updated>2018-04-19T02:08:04Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Difficult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:EarthandMoon.GIF]]&lt;br /&gt;
&lt;br /&gt;
Trinket Link&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
VPython code&lt;br /&gt;
 &lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
 from visual.graph import *&lt;br /&gt;
 scene.width=1024&lt;br /&gt;
 scene.height=760&lt;br /&gt;
&lt;br /&gt;
 # CONSTANTS&lt;br /&gt;
 G = 6.7e-11&lt;br /&gt;
 mEarth = 6e24&lt;br /&gt;
 mcraft = 15000&lt;br /&gt;
 deltat = 60&lt;br /&gt;
 t = 0&lt;br /&gt;
 mMoon = 7e22&lt;br /&gt;
 scale = 800000&lt;br /&gt;
 c=2.99792e8&lt;br /&gt;
&lt;br /&gt;
 #OBJECTS AND INITIAL VALUES&lt;br /&gt;
 Earth = sphere(pos=vector(0,0,0), radius=15e6, material = materials.BlueMarble)&lt;br /&gt;
 # Add a radius for the spacecraft. It should be BIG, so it can be seen.&lt;br /&gt;
 craft = sphere(pos=vector(-60160000,-192000,0), radius=2e6, material = materials.marble)&lt;br /&gt;
 Moon =  sphere(pos=vector(4e8,0,0), radius=1.75e6, material = materials.marble)&lt;br /&gt;
 vcraft = vector(735,2849,0)&lt;br /&gt;
 pcraft = mcraft*vcraft&lt;br /&gt;
&lt;br /&gt;
 trail = curve(color=craft.color)    # This creates a trail for the spacecraft&lt;br /&gt;
 #scene.autoscale = 1000000                 # And this prevents zooming in or out&lt;br /&gt;
&lt;br /&gt;
 pscale = Earth.radius / mag(pcraft)&lt;br /&gt;
 fscale = Earth.radius/ ((G*mEarth*mcraft)/mag(craft.pos-Earth.pos)**2)&lt;br /&gt;
 dpscale = 500 * Earth.radius/mag(pcraft)&lt;br /&gt;
&lt;br /&gt;
 r_EarthMoon = Moon.pos - Earth.pos #Relative position vector from Earth to Moon&lt;br /&gt;
 r_EarthMoon_mag = mag(r_EarthMoon)&lt;br /&gt;
 F_EarthMoon_mag = (G*mcraft*mEarth)/(r_EarthMoon_mag**2)&lt;br /&gt;
 r_EarthMoon_hat = r_EarthMoon/r_EarthMoon_mag&lt;br /&gt;
&lt;br /&gt;
 Force_EarthMoon = (-r_EarthMoon_hat)*F_EarthMoon_mag #Force on Moon due to Earth&lt;br /&gt;
 pMoon = Force_EarthMoon / deltat&lt;br /&gt;
&lt;br /&gt;
 # CALCULATIONS&lt;br /&gt;
 print(&amp;quot;p=&amp;quot;,  pcraft)&lt;br /&gt;
 while t &amp;lt; (10e10):&lt;br /&gt;
    rate(500)   # This slows down the animation (runs faster with bigger number)&lt;br /&gt;
    rE =  craft.pos - Earth.pos&lt;br /&gt;
    rEmag = mag(rE)&lt;br /&gt;
    FEmag = (G*mcraft*mEarth)/(rEmag**2)&lt;br /&gt;
    rEhat = rE/rEmag&lt;br /&gt;
    FEnet = (-rEhat)*FEmag&lt;br /&gt;
&lt;br /&gt;
    rM =  craft.pos - Moon.pos&lt;br /&gt;
    rMmag = mag(rM)&lt;br /&gt;
    FMmag = (G*mcraft*mMoon)/(rMmag**2)&lt;br /&gt;
    rMhat = rM/rMmag&lt;br /&gt;
    FMnet = (-rMhat)*FMmag&lt;br /&gt;
    &lt;br /&gt;
    Fnet = FMnet+FEnet&lt;br /&gt;
&lt;br /&gt;
    pcraft_i = pcraft + vector(0,0,0)&lt;br /&gt;
    pcraft_ii = mag(pcraft_i)    &lt;br /&gt;
    pcraft = pcraft + ((Fnet)*deltat)&lt;br /&gt;
    pcraft_f = pcraft&lt;br /&gt;
    pcraft_ff = mag(pcraft)&lt;br /&gt;
    vavg = pcraft/mcraft&lt;br /&gt;
    speedcraft = mag(vavg)&lt;br /&gt;
    craft.pos = craft.pos + vavg*deltat&lt;br /&gt;
&lt;br /&gt;
    Fnet_tangent = ((pcraft_ff-pcraft_ii)/deltat)*(pcraft/mag(pcraft))*pscale&lt;br /&gt;
    Fnet_perp = Fnet - Fnet_tangent&lt;br /&gt;
&lt;br /&gt;
    r_EarthMoon = Moon.pos - Earth.pos #Relative position vector from Earth to Moon&lt;br /&gt;
    r_EarthMoon_mag = mag(r_EarthMoon)&lt;br /&gt;
    F_EarthMoon_mag = (G*mcraft*mEarth)/(r_EarthMoon_mag**2)&lt;br /&gt;
    r_EarthMoon_hat = r_EarthMoon/r_EarthMoon_mag&lt;br /&gt;
    &lt;br /&gt;
    r_craftMoon = Moon.pos - craft.pos#Relative position vector from spacecraft to Moon&lt;br /&gt;
    r_craftMoon_mag = mag(r_craftMoon)&lt;br /&gt;
    F_craftMoon_mag = (G*mcraft*mEarth)/(r_craftMoon_mag**2)&lt;br /&gt;
    r_craftMoon_hat = r_craftMoon/r_craftMoon_mag    &lt;br /&gt;
&lt;br /&gt;
    Force_EarthMoon = (-r_EarthMoon_hat)*F_EarthMoon_mag #Force on Moon due to Earth&lt;br /&gt;
    Force_craftMoon = (-r_craftMoon_hat)*F_craftMoon_mag#Force on Moon due to spacecraft&lt;br /&gt;
    Fnet_Moon = Force_EarthMoon + Force_craftMoon #Net force on Moon&lt;br /&gt;
&lt;br /&gt;
    momentum_Moon = pMoon + Fnet_Moon*deltat#Update momentum of Moon&lt;br /&gt;
    vavg_Moon = momentum_Moon/mMoon&lt;br /&gt;
    Moon.pos = Moon.pos + vavg_Moon * deltat #Update momentum of Moon&lt;br /&gt;
&lt;br /&gt;
    trail.append(pos=craft.pos)  &lt;br /&gt;
    t = t+deltat&lt;br /&gt;
    pcraft = pcraft_f&lt;br /&gt;
    deltap = pcraft - pcraft_i&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=Template:Hidden&amp;diff=31946</id>
		<title>Template:Hidden</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=Template:Hidden&amp;diff=31946"/>
		<updated>2018-04-19T02:06:38Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=Template:Hidden&amp;diff=31943</id>
		<title>Template:Hidden</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=Template:Hidden&amp;diff=31943"/>
		<updated>2018-04-19T02:05:49Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: Created page with &amp;quot;from __future__ import division from visual import * from visual.graph import * scene.width=1024 scene.height=760  # CONSTANTS G = 6.7e-11 mEarth = 6e24 mcraft = 15000 deltat...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;from __future__ import division&lt;br /&gt;
from visual import *&lt;br /&gt;
from visual.graph import *&lt;br /&gt;
scene.width=1024&lt;br /&gt;
scene.height=760&lt;br /&gt;
&lt;br /&gt;
# CONSTANTS&lt;br /&gt;
G = 6.7e-11&lt;br /&gt;
mEarth = 6e24&lt;br /&gt;
mcraft = 15000&lt;br /&gt;
deltat = 60&lt;br /&gt;
t = 0&lt;br /&gt;
mMoon = 7e22&lt;br /&gt;
scale = 800000&lt;br /&gt;
c=2.99792e8&lt;br /&gt;
&lt;br /&gt;
#OBJECTS AND INITIAL VALUES&lt;br /&gt;
Earth = sphere(pos=vector(0,0,0), radius=15e6, material = materials.BlueMarble)&lt;br /&gt;
# Add a radius for the spacecraft. It should be BIG, so it can be seen.&lt;br /&gt;
craft = sphere(pos=vector(-60160000,-192000,0), radius=2e6, material = materials.marble)&lt;br /&gt;
Moon =  sphere(pos=vector(4e8,0,0), radius=1.75e6, material = materials.marble)&lt;br /&gt;
vcraft = vector(735,2849,0)&lt;br /&gt;
pcraft = mcraft*vcraft&lt;br /&gt;
&lt;br /&gt;
trail = curve(color=craft.color)    # This creates a trail for the spacecraft&lt;br /&gt;
#scene.autoscale = 1000000                 # And this prevents zooming in or out&lt;br /&gt;
&lt;br /&gt;
pscale = Earth.radius / mag(pcraft)&lt;br /&gt;
fscale = Earth.radius/ ((G*mEarth*mcraft)/mag(craft.pos-Earth.pos)**2)&lt;br /&gt;
dpscale = 500 * Earth.radius/mag(pcraft)&lt;br /&gt;
&lt;br /&gt;
r_EarthMoon = Moon.pos - Earth.pos #Relative position vector from Earth to Moon&lt;br /&gt;
r_EarthMoon_mag = mag(r_EarthMoon)&lt;br /&gt;
F_EarthMoon_mag = (G*mcraft*mEarth)/(r_EarthMoon_mag**2)&lt;br /&gt;
r_EarthMoon_hat = r_EarthMoon/r_EarthMoon_mag&lt;br /&gt;
&lt;br /&gt;
Force_EarthMoon = (-r_EarthMoon_hat)*F_EarthMoon_mag #Force on Moon due to Earth&lt;br /&gt;
pMoon = Force_EarthMoon / deltat&lt;br /&gt;
&lt;br /&gt;
# CALCULATIONS&lt;br /&gt;
print(&amp;quot;p=&amp;quot;,  pcraft)&lt;br /&gt;
while t &amp;lt; (10e10):&lt;br /&gt;
    rate(500)   # This slows down the animation (runs faster with bigger number)&lt;br /&gt;
    rE =  craft.pos - Earth.pos&lt;br /&gt;
    rEmag = mag(rE)&lt;br /&gt;
    FEmag = (G*mcraft*mEarth)/(rEmag**2)&lt;br /&gt;
    rEhat = rE/rEmag&lt;br /&gt;
    FEnet = (-rEhat)*FEmag&lt;br /&gt;
&lt;br /&gt;
    rM =  craft.pos - Moon.pos&lt;br /&gt;
    rMmag = mag(rM)&lt;br /&gt;
    FMmag = (G*mcraft*mMoon)/(rMmag**2)&lt;br /&gt;
    rMhat = rM/rMmag&lt;br /&gt;
    FMnet = (-rMhat)*FMmag&lt;br /&gt;
    &lt;br /&gt;
    Fnet = FMnet+FEnet&lt;br /&gt;
&lt;br /&gt;
    pcraft_i = pcraft + vector(0,0,0)&lt;br /&gt;
    pcraft_ii = mag(pcraft_i)    &lt;br /&gt;
    pcraft = pcraft + ((Fnet)*deltat)&lt;br /&gt;
    pcraft_f = pcraft&lt;br /&gt;
    pcraft_ff = mag(pcraft)&lt;br /&gt;
    vavg = pcraft/mcraft&lt;br /&gt;
    speedcraft = mag(vavg)&lt;br /&gt;
    craft.pos = craft.pos + vavg*deltat&lt;br /&gt;
&lt;br /&gt;
    Fnet_tangent = ((pcraft_ff-pcraft_ii)/deltat)*(pcraft/mag(pcraft))*pscale&lt;br /&gt;
    Fnet_perp = Fnet - Fnet_tangent&lt;br /&gt;
&lt;br /&gt;
    r_EarthMoon = Moon.pos - Earth.pos #Relative position vector from Earth to Moon&lt;br /&gt;
    r_EarthMoon_mag = mag(r_EarthMoon)&lt;br /&gt;
    F_EarthMoon_mag = (G*mcraft*mEarth)/(r_EarthMoon_mag**2)&lt;br /&gt;
    r_EarthMoon_hat = r_EarthMoon/r_EarthMoon_mag&lt;br /&gt;
    &lt;br /&gt;
    r_craftMoon = Moon.pos - craft.pos#Relative position vector from spacecraft to Moon&lt;br /&gt;
    r_craftMoon_mag = mag(r_craftMoon)&lt;br /&gt;
    F_craftMoon_mag = (G*mcraft*mEarth)/(r_craftMoon_mag**2)&lt;br /&gt;
    r_craftMoon_hat = r_craftMoon/r_craftMoon_mag    &lt;br /&gt;
&lt;br /&gt;
    Force_EarthMoon = (-r_EarthMoon_hat)*F_EarthMoon_mag #Force on Moon due to Earth&lt;br /&gt;
    Force_craftMoon = (-r_craftMoon_hat)*F_craftMoon_mag#Force on Moon due to spacecraft&lt;br /&gt;
    Fnet_Moon = Force_EarthMoon + Force_craftMoon #Net force on Moon&lt;br /&gt;
&lt;br /&gt;
    momentum_Moon = pMoon + Fnet_Moon*deltat#Update momentum of Moon&lt;br /&gt;
    vavg_Moon = momentum_Moon/mMoon&lt;br /&gt;
    Moon.pos = Moon.pos + vavg_Moon * deltat #Update momentum of Moon&lt;br /&gt;
&lt;br /&gt;
    trail.append(pos=craft.pos)  &lt;br /&gt;
    t = t+deltat&lt;br /&gt;
    pcraft = pcraft_f&lt;br /&gt;
    deltap = pcraft - pcraft_i&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31940</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31940"/>
		<updated>2018-04-19T02:05:18Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Difficult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:EarthandMoon.GIF]]&lt;br /&gt;
&lt;br /&gt;
Trinket Link&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{hidden&lt;br /&gt;
|Title VPython code&lt;br /&gt;
|Body text line 1&amp;lt;br/&amp;gt;Body text line 2&lt;br /&gt;
|headerstyle=background:#ccccff&lt;br /&gt;
|style=text-align:center;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:EarthandMoon.GIF&amp;diff=31938</id>
		<title>File:EarthandMoon.GIF</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:EarthandMoon.GIF&amp;diff=31938"/>
		<updated>2018-04-19T02:03:45Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31935</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31935"/>
		<updated>2018-04-19T02:02:27Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Difficult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
[[File:EarthandMoon.JPG]]&lt;br /&gt;
&lt;br /&gt;
Trinket Link&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
VPython&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31902</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31902"/>
		<updated>2018-04-19T01:49:33Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Difficult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div src=&amp;quot;https://trinket.io/embed/glowscript/d0f6adde7e?start=result&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;356&amp;quot; frameborder=&amp;quot;0&amp;quot; marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:&amp;lt;iframe src=&amp;quot;https://trinket.io/embed/glowscript/6ddb3d237e?start=result&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;600&amp;quot; frameborder=&amp;quot;0&amp;quot; marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31894</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31894"/>
		<updated>2018-04-19T01:45:46Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Difficult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:&amp;lt;iframe src=&amp;quot;https://trinket.io/embed/glowscript/6ddb3d237e?start=result&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;600&amp;quot; frameborder=&amp;quot;0&amp;quot; marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31893</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31893"/>
		<updated>2018-04-19T01:45:21Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Difficult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;https://trinket.io/embed/glowscript/6ddb3d237e?start=result&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;600&amp;quot; frameborder=&amp;quot;0&amp;quot; marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31885</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31885"/>
		<updated>2018-04-19T01:39:45Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Difficult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:&amp;lt;iframe src=&amp;quot;https://trinket.io/embed/glowscript/6ddb3d237e&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;600&amp;quot; frameborder=&amp;quot;0&amp;quot; marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;]]&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31879</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31879"/>
		<updated>2018-04-19T01:37:41Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Difficult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;https://trinket.io/embed/glowscript/6ddb3d237e&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;600&amp;quot; frameborder=&amp;quot;0&amp;quot; marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31876</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31876"/>
		<updated>2018-04-19T01:36:10Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Difficult */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:https://trinket.io/glowscript/6ddb3d237e]]&lt;br /&gt;
&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31875</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31875"/>
		<updated>2018-04-19T01:35:35Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Applying Texture&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://trinket.io/glowscript/6ddb3d237e]&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31861</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31861"/>
		<updated>2018-04-19T01:15:13Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;buzz&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:BuzzTexture.JPG&amp;diff=31860</id>
		<title>File:BuzzTexture.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:BuzzTexture.JPG&amp;diff=31860"/>
		<updated>2018-04-19T01:14:18Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: Jaeleeps uploaded a new version of &amp;amp;quot;File:BuzzTexture.JPG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:BuzzTexture.JPG&amp;diff=31858</id>
		<title>File:BuzzTexture.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:BuzzTexture.JPG&amp;diff=31858"/>
		<updated>2018-04-19T01:11:56Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31856</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31856"/>
		<updated>2018-04-19T01:11:39Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Material/Texture */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
[http://www.pythonware.com/products/pil/#pil117]&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;buzz&amp;quot;&lt;br /&gt;
 width = 64 # must be power of 2&lt;br /&gt;
 height = 64 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;flower&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;rectangular&amp;quot;) &lt;br /&gt;
 buzzbox = box(pos = (2,0,0), length=1, height=1, width=1, material = tex)&lt;br /&gt;
 buzzsphere = sphere(pos = (-2,0,0), radius = 1, material = tex)&lt;br /&gt;
&lt;br /&gt;
[[File:BuzzTexture.JPG]]&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31833</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31833"/>
		<updated>2018-04-19T00:45:42Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Creating your own texture */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
=====Making a text from a photo=====&lt;br /&gt;
&lt;br /&gt;
You can create a texture with a image file, using PIL, the Python Image Library.&lt;br /&gt;
To do this,PIL must be installed on the computer and the function &amp;quot;Image&amp;quot; should be imported.&lt;br /&gt;
&lt;br /&gt;
 from visual import *&lt;br /&gt;
 import Image # Must install PIL&lt;br /&gt;
&lt;br /&gt;
And the basic syntax is&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;flower&amp;quot; &lt;br /&gt;
 width = 128 # must be power of 2&lt;br /&gt;
 height = 128 # must be power of 2&lt;br /&gt;
 im = Image.open(name+&amp;quot;.jpg&amp;quot;)&lt;br /&gt;
 #print(im.size) # optionally, see size of image&lt;br /&gt;
 # Optional cropping:&lt;br /&gt;
 #im = im.crop((x1,y1,x2,y2)) # (0,0) is upper left&lt;br /&gt;
 im = im.resize((width,height), Image.ANTIALIAS)&lt;br /&gt;
 materials.saveTGA(name,im)&lt;br /&gt;
&lt;br /&gt;
You can use the texture &amp;quot;im&amp;quot;, which is created with an image file &amp;quot;flower&amp;quot;, using following code&lt;br /&gt;
&lt;br /&gt;
 tex = materials.texture(data=im, mapping=&amp;quot;sign&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31809</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31809"/>
		<updated>2018-04-19T00:34:14Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&#039;&#039;&#039;Wood&#039;&#039;&#039;&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rough&#039;&#039;&#039;&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Marble&#039;&#039;&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plastic&#039;&#039;&#039;&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Earth&#039;&#039;&#039;&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diffuse&#039;&#039;&#039;&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emissive&#039;&#039;&#039;&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unshaded&#039;&#039;&#039;&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Shiny&#039;&#039;&#039;&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chrome&#039;&#039;&#039;&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blazed&#039;&#039;&#039;&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Silver&#039;&#039;&#039;&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BlueMarble&#039;&#039;&#039;&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bricks&#039;&#039;&#039;&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=Main_Page&amp;diff=31804</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=Main_Page&amp;diff=31804"/>
		<updated>2018-04-19T00:30:51Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* VPython */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= &#039;&#039;&#039;Georgia Tech Student Wiki for Introductory Physics.&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
This resource was created so that students can contribute and curate content to help those with limited or no access to a textbook.  When reading this website, please correct any errors you may come across. If you read something that isn&#039;t clear, please consider revising it for future students!&lt;br /&gt;
&lt;br /&gt;
Looking to make a contribution?&lt;br /&gt;
#Pick one of the topics from intro physics listed below&lt;br /&gt;
#Add content to that topic or improve the quality of what is already there.&lt;br /&gt;
#Need to make a new topic? Edit this page and add it to the list under the appropriate category.  Then copy and paste the default [[Template]] into your new page and start editing.&lt;br /&gt;
&lt;br /&gt;
Please remember that this is not a textbook and you are not limited to expressing your ideas with only text and equations.  Whenever possible embed: pictures, videos, diagrams, simulations, computational models (e.g. Glowscript), and whatever content you think makes learning physics easier for other students.&lt;br /&gt;
&lt;br /&gt;
== Source Material ==&lt;br /&gt;
All of the content added to this resource must be in the public domain or similar free resource.  If you are unsure about a source, contact the original author for permission. That said, there is a surprisingly large amount of introductory physics content scattered across the web.  Here is an incomplete list of intro physics resources (please update as needed).&lt;br /&gt;
* A physics resource written by experts for an expert audience [https://en.wikipedia.org/wiki/Portal:Physics Physics Portal]&lt;br /&gt;
* A wiki written for students by a physics expert [http://p3server.pa.msu.edu/coursewiki/doku.php?id=183_notes MSU Physics Wiki]&lt;br /&gt;
* A wiki book on modern physics [https://en.wikibooks.org/wiki/Modern_Physics Modern Physics Wiki]&lt;br /&gt;
* The MIT open courseware for intro physics [http://ocw.mit.edu/resources/res-8-002-a-wikitextbook-for-introductory-mechanics-fall-2009/index.htm MITOCW Wiki]&lt;br /&gt;
* An online concept map of intro physics [http://hyperphysics.phy-astr.gsu.edu/hbase/hph.html HyperPhysics]&lt;br /&gt;
* Interactive physics simulations [https://phet.colorado.edu/en/simulations/category/physics PhET]&lt;br /&gt;
* OpenStax intro physics textbooks: [https://openstax.org/details/books/university-physics-volume-1  Vol1], [https://openstax.org/details/books/university-physics-volume-2  Vol2], [https://openstax.org/details/books/university-physics-volume-3  Vol3]&lt;br /&gt;
* The Open Source Physics project is a collection of online physics resources [http://www.opensourcephysics.org/ OSP]&lt;br /&gt;
* A resource guide compiled by the [http://www.aapt.org/ AAPT] for educators [http://www.compadre.org/ ComPADRE]&lt;br /&gt;
* The Feynman lectures on physics are free to read [http://www.feynmanlectures.caltech.edu/ Feynman]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Commonly used wiki commands [https://en.wikipedia.org/wiki/Help:Cheatsheet Wiki Cheatsheet]&lt;br /&gt;
* A guide to representing equations in math mode [https://en.wikipedia.org/wiki/Help:Displaying_a_formula Wiki Math Mode]&lt;br /&gt;
* A page to keep track of all the physics [[Constants]]&lt;br /&gt;
* A page for review of [[Vectors]] and vector operations&lt;br /&gt;
* A listing of [[Notable Scientist]] with links to their individual pages &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
==Physics 1==&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Help with VPython====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Python Syntax]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Vectors and Units====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[SI Units]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====VPython====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[VPython]]&lt;br /&gt;
*[[VPython basics]]&lt;br /&gt;
*[[VPython Common Errors and Troubleshooting]]&lt;br /&gt;
*[[VPython Functions]]&lt;br /&gt;
*[[VPython Lists]]&lt;br /&gt;
*[[VPython Loops]]&lt;br /&gt;
*[[VPython Multithreading]]&lt;br /&gt;
*[[VPython Animation]]&lt;br /&gt;
*[[VPython Objects]]&lt;br /&gt;
*[[VPython 3D Objects]]&lt;br /&gt;
*[[VPython Reference]]&lt;br /&gt;
*[[VPython MapReduceFilter]]&lt;br /&gt;
*[[VPython GUIs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Vectors and Units====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[SI Units]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Interactions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Types of Interactions and How to Detect Them]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Velocity and Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton&#039;s First Law of Motion]]&lt;br /&gt;
*[[Velocity]]&lt;br /&gt;
*[[Mass]]&lt;br /&gt;
*[[Speed and Velocity]]&lt;br /&gt;
*[[Relative Velocity]]&lt;br /&gt;
*[[Derivation of Average Velocity]]&lt;br /&gt;
*[[2-Dimensional Motion]]&lt;br /&gt;
*[[3-Dimensional Position and Motion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Momentum and the Momentum Principle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Momentum Principle]]&lt;br /&gt;
*[[Inertia]]&lt;br /&gt;
*[[Net Force]]&lt;br /&gt;
*[[Derivation of the Momentum Principle]]&lt;br /&gt;
*[[Impulse Momentum]]&lt;br /&gt;
*[[Acceleration]]&lt;br /&gt;
*[[Momentum with respect to external Forces]]&lt;br /&gt;
*[[Relativistic Momentum]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Iterative Prediction with a Constant Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton’s Second Law of Motion]]&lt;br /&gt;
*[[Iterative Prediction]]&lt;br /&gt;
*[[Kinematics]]&lt;br /&gt;
*[[Newton’s Laws and Linear Momentum]]&lt;br /&gt;
*[[Projectile Motion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Analytic Prediction with a Constant Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Analytical Prediction]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Iterative Prediction with a Varying Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Predicting Change in multiple dimensions]]&lt;br /&gt;
*[[Spring Force]]&lt;br /&gt;
*[[Hooke&#039;s Law]]&lt;br /&gt;
*[[Simple Harmonic Motion]]&lt;br /&gt;
*[[Iterative Prediction of Spring-Mass System]]&lt;br /&gt;
*[[Terminal Speed]]&lt;br /&gt;
*[[Determinism]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Fundamental Interactions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Main Idea==&lt;br /&gt;
&lt;br /&gt;
*[[Gravitational Force]]&lt;br /&gt;
*[[Fluid Mechanics]]&lt;br /&gt;
*[[An Application of Gravitational Potential]]&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Reciprocity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Conservation of Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Conservation of Momentum]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Properties of Matter====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Kinds of Matter]]&lt;br /&gt;
*[[Ball and Spring Model of Matter]]&lt;br /&gt;
*[[Density]]&lt;br /&gt;
*[[Length and Stiffness of an Interatomic Bond]]&lt;br /&gt;
*[[Young&#039;s Modulus]]&lt;br /&gt;
*[[Speed of Sound in Solids]]&lt;br /&gt;
*[[Malleability]]&lt;br /&gt;
*[[Ductility]]&lt;br /&gt;
*[[Weight]]&lt;br /&gt;
*[[Hardness]]&lt;br /&gt;
*[[Boiling Point]]&lt;br /&gt;
*[[Melting Point]]&lt;br /&gt;
*[[Change of State]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Identifying Forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Free Body Diagram]]&lt;br /&gt;
*[[Inclined Plane]]&lt;br /&gt;
*[[Compression or Normal Force]]&lt;br /&gt;
*[[Tension]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Curving Motion====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Curving Motion]]&lt;br /&gt;
*[[Centripetal Force and Curving Motion]]&lt;br /&gt;
*[[Perpetual Freefall (Orbit)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Energy Principle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[The Energy Principle]]&lt;br /&gt;
*[[Conservation of Energy]]&lt;br /&gt;
*[[Kinetic Energy]]&lt;br /&gt;
*[[Work]]&lt;br /&gt;
*[[Power (Mechanical)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Work by Non-Constant Forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Work Done By A Nonconstant Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Energy]]&lt;br /&gt;
*[[Potential Energy of Macroscopic Springs]]&lt;br /&gt;
*[[Spring Potential Energy]]&lt;br /&gt;
*[[Ball and Spring Model]]&lt;br /&gt;
*[[Gravitational Potential Energy]]&lt;br /&gt;
*[[Energy Graphs]]&lt;br /&gt;
*[[Escape Velocity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Multiparticle Systems====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Center of Mass]]&lt;br /&gt;
*[[Multi-particle analysis of Momentum]]&lt;br /&gt;
*[[Momentum with respect to external Forces]]&lt;br /&gt;
*[[Potential Energy of a Multiparticle System]]&lt;br /&gt;
*[[Work and Energy for an Extended System]]&lt;br /&gt;
*[[Internal Energy]]&lt;br /&gt;
**[[Potential Energy of a Pair of Neutral Atoms]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Choice of System====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[System &amp;amp; Surroundings]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Thermal Energy, Dissipation and Transfer of Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Thermal Energy]]&lt;br /&gt;
*[[Specific Heat]]&lt;br /&gt;
*[[Heat Capacity]]&lt;br /&gt;
*[[Calorific Value(Heat of combustion)]]&lt;br /&gt;
*[[Specific Heat Capacity]]&lt;br /&gt;
*[[First Law of Thermodynamics]]&lt;br /&gt;
*[[Second Law of Thermodynamics and Entropy]]&lt;br /&gt;
*[[Temperature]]&lt;br /&gt;
*[[Predicting Change]]&lt;br /&gt;
*[[Energy Transfer due to a Temperature Difference]]&lt;br /&gt;
*[[Transformation of Energy]]&lt;br /&gt;
*[[The Maxwell-Boltzmann Distribution]]&lt;br /&gt;
*[[Air Resistance]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Rotational and Vibrational Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Translational, Rotational and Vibrational Energy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 11===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Different Models of a System====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Point Particle Systems]]&lt;br /&gt;
*[[Real Systems]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Models of Friction====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Friction]]&lt;br /&gt;
*[[Static Friction]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Collisions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton&#039;s Third Law of Motion]]&lt;br /&gt;
*[[Collisions]]&lt;br /&gt;
*[[Elastic Collisions]]&lt;br /&gt;
*[[Inelastic Collisions]]&lt;br /&gt;
*[[Maximally Inelastic Collision]]&lt;br /&gt;
*[[Head-on Collision of Equal Masses]]&lt;br /&gt;
*[[Head-on Collision of Unequal Masses]]&lt;br /&gt;
*[[Scattering: Collisions in 2D and 3D]]&lt;br /&gt;
*[[Rutherford Experiment and Atomic Collisions]]&lt;br /&gt;
*[[Coefficient of Restitution]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Rotations====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Rotation]]&lt;br /&gt;
*[[Angular Velocity]]&lt;br /&gt;
*[[Eulerian Angles]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Angular Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Total Angular Momentum]]&lt;br /&gt;
*[[Translational Angular Momentum]]&lt;br /&gt;
*[[Rotational Angular Momentum]]&lt;br /&gt;
*[[The Angular Momentum Principle]]&lt;br /&gt;
*[[Angular Momentum Compared to Linear Momentum]]&lt;br /&gt;
*[[Angular Impulse]]&lt;br /&gt;
*[[Predicting the Position of a Rotating System]]&lt;br /&gt;
*[[Angular Momentum of Multiparticle Systems]]&lt;br /&gt;
*[[The Moments of Inertia]]&lt;br /&gt;
*[[Moment of Inertia for a cylinder]]&lt;br /&gt;
*[[Right Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Analyzing Motion with and without Torque====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Torque]]&lt;br /&gt;
*[[Torque 2]]&lt;br /&gt;
*[[Systems with Zero Torque]]&lt;br /&gt;
*[[Systems with Nonzero Torque]]&lt;br /&gt;
*[[Torque vs Work]]&lt;br /&gt;
*[[Gyroscopes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 15===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Introduction to Quantum Concepts====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Bohr Model]]&lt;br /&gt;
*[[Energy graphs and the Bohr model]]&lt;br /&gt;
*[[Quantized energy levels]]&lt;br /&gt;
*[[Quantized energy levels part II]]&lt;br /&gt;
*[[Entropy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Physics 2==&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====3D Vectors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Right Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric field====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Field]]&lt;br /&gt;
*[[Electric Field and Electric Potential]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric field of a point particle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Point Charge]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Superposition====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Superposition Principle]]&lt;br /&gt;
*[[Superposition principle]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Dipoles====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Dipole]]&lt;br /&gt;
*[[Magnetic Dipole]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Interactions of charged objects====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Field]]&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Tape experiments====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Polarization]]&lt;br /&gt;
*[[Electric Polarization]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Polarization====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Polarization]]&lt;br /&gt;
*[[Electric Polarization]]&lt;br /&gt;
*[[Polarization of an Atom]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Insulators====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Insulators]]&lt;br /&gt;
*[[Potential Difference in an Insulator]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Conductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Conductivity]]&lt;br /&gt;
*[[Charge Transfer]]&lt;br /&gt;
*[[Resistivity]]&lt;br /&gt;
*[[Polarization of a conductor]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Charging and discharging====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charge Transfer]]&lt;br /&gt;
*[[Electrostatic Discharge]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged rod====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Rod]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged ring/disk/capacitor====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Ring]]&lt;br /&gt;
*[[Charged Disk]]&lt;br /&gt;
*[[Charged Capacitor]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged sphere====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Spherical Shell]]&lt;br /&gt;
*[[Field of a Charged Ball]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Energy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric potential====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Path Independence of Electric Potential]]&lt;br /&gt;
*[[Potential Difference Path Independence, claimed by Aditya Mohile]] &lt;br /&gt;
*[[Potential Difference in a Uniform Field]]&lt;br /&gt;
*[[Potential Difference of Point Charge in a Non-Uniform Field]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Sign of a potential difference====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Sign of a Potential Difference]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential at a single location====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Potential Difference at One Location]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Path independence and round trip potential====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Path Independence of Electric Potential]]&lt;br /&gt;
*[[Potential Difference Path Independence, claimed by Aditya Mohile]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric field and potential in an insulator====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Difference in an Insulator]]&lt;br /&gt;
*[[Electric Field in an Insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Moving charges in a magnetic field====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Biot-Savart Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Biot-Savart Law]]&lt;br /&gt;
*[[Biot-Savart Law for Currents]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Moving charges, electron current, and conventional current====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Moving Point Charge]]&lt;br /&gt;
*[[Current]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a wire====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Long Straight Wire]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a current-carrying loop====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Loop]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a Charged Disk====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Disk]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic dipoles====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Dipole Moment]]&lt;br /&gt;
*[[Bar Magnet]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Atomic structure of magnets====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Atomic Structure of Magnets]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Steady state current====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Steady State]]&lt;br /&gt;
*[[Non Steady State]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Kirchoff&#039;s Laws====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Kirchoff&#039;s Laws]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric fields and energy in circuits====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Series circuit]]&lt;br /&gt;
*[[Node Rule]]&lt;br /&gt;
*[[Loop Rule]]&lt;br /&gt;
*[[Electric Potential Difference]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Macroscopic analysis of circuits====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Series Circuits]]&lt;br /&gt;
*[[Parallel Circuits]]&lt;br /&gt;
*[[Parallel Circuits vs. Series Circuits*]]&lt;br /&gt;
*[[Loop Rule]]&lt;br /&gt;
*[[Node Rule]]&lt;br /&gt;
*[[Fundamentals of Resistance]]&lt;br /&gt;
*[[Problem Solving]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric field and potential in circuits with capacitors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charging and Discharging a Capacitor]]&lt;br /&gt;
*[[RC Circuit]] &lt;br /&gt;
*[[R Circuit]]&lt;br /&gt;
*[[AC and DC]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic forces on charges and currents====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[Motors and Generators]]&lt;br /&gt;
*[[Applying Magnetic Force to Currents]]&lt;br /&gt;
*[[Magnetic Force in a Moving Reference Frame]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Analysis of Railgun vs Coil gun technologies]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric and magnetic forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[VPython Modelling of Electric and Magnetic Forces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Velocity selector====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[Combining Electric and Magnetic Forces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hall Effect====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Hall Effect]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Motional Emf]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Magnetic Torque]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Motional EMF====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Motional Emf]]&lt;br /&gt;
*[[Motional Emf using Faraday&#039;s Law]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic torque====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Torque]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Gauss&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Gauss&#039;s Flux Theorem]]&lt;br /&gt;
*[[Gauss&#039;s Law]]&lt;br /&gt;
*[[Magnetic Flux]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Ampere&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Ampere&#039;s Law]]&lt;br /&gt;
*[[Ampere-Maxwell Law]]&lt;br /&gt;
*[[Magnetic Field of Coaxial Cable Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Long Thick Wire Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Toroid Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Solenoid Using Ampere&#039;s Law]]&lt;br /&gt;
*[[The Differential Form of Ampere&#039;s Law]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Semiconductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Semiconductor Devices]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Faraday&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Faraday&#039;s Law]]&lt;br /&gt;
*[[Motional Emf using Faraday&#039;s Law]]&lt;br /&gt;
*[[Lenz&#039;s Law]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Maxwell&#039;s equations====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Gauss&#039;s Law]]&lt;br /&gt;
*[[Magnetic Flux]]&lt;br /&gt;
*[[Ampere&#039;s Law]]&lt;br /&gt;
*[[Faraday&#039;s Law]]&lt;br /&gt;
*[[Maxwell&#039;s Electromagnetic Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Circuits revisited====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Inductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Inductors]]&lt;br /&gt;
*[[Current in an LC Circuit]]&lt;br /&gt;
*[[Current in an RL Circuit]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 15===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
==== Electromagnetic Radiation ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electromagnetic Radiation]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Sparks in the air====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Sparks in Air]]&lt;br /&gt;
*[[Spark Plugs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Superconductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Superconducters]]&lt;br /&gt;
*[[Superconductors]]&lt;br /&gt;
*[[Meissner effect]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Physics 3==&lt;br /&gt;
&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Classical Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Special Relativity====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Frame of Reference]]&lt;br /&gt;
*[[Einstein&#039;s Theory of Special Relativity]]&lt;br /&gt;
*[[Time Dilation]]&lt;br /&gt;
*[[Einstein&#039;s Theory of General Relativity]]&lt;br /&gt;
*[[Albert A. Micheleson &amp;amp; Edward W. Morley]]&lt;br /&gt;
*[[Magnetic Force in a Moving Reference Frame]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Photons====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Spontaneous Photon Emission]]&lt;br /&gt;
*[[Light Scattering: Why is the Sky Blue]]&lt;br /&gt;
*[[Lasers]]&lt;br /&gt;
*[[Electronic Energy Levels and Photons]]&lt;br /&gt;
*[[Quantum Properties of Light]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Matter Waves====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Wave-Particle Duality]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Wave Mechanics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Standing Waves]]&lt;br /&gt;
*[[Wavelength]]&lt;br /&gt;
*[[Wavelength and Frequency]]&lt;br /&gt;
*[[Mechanical Waves]]&lt;br /&gt;
*[[Transverse and Longitudinal Waves]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Rutherford-Bohr Model====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Rutherford Experiment and Atomic Collisions]]&lt;br /&gt;
*[[Bohr Model]]&lt;br /&gt;
*[[Quantized energy levels]]&lt;br /&gt;
*[[Energy graphs and the Bohr model]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====The Hydrogen Atom====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Quantum Theory]]&lt;br /&gt;
*[[Atomic Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Many-Electron Atoms====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Quantum Theory]]&lt;br /&gt;
*[[Atomic Theory]]&lt;br /&gt;
*[[Pauli exclusion principle]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Molecules====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Statistical Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 11===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Condensed Matter Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====The Nucleus====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Nucleus]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Nuclear Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Nuclear Fission]]&lt;br /&gt;
*[[Nuclear Energy from Fission and Fusion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Particle Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Elementary Particles and Particle Physics Theory]]&lt;br /&gt;
*[[String Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31803</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31803"/>
		<updated>2018-04-19T00:29:19Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
=====Wood=====&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Rough=====&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
[[File:Rough.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Marble=====&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
[[File:Marble.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Plastic=====&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
[[File:Plastic.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Earth=====&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
[[File:Earth.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Diffuse=====&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
[[File:Diffuse.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Emissive=====&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
[[File:Emissive.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Unshaded=====&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
[[File:Unshaded.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Shiny=====&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
[[File:Shiny.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Chrome=====&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
[[File:Chrome.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Blazed=====&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
[[File:Blazed.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Silver=====&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
[[File:Silver.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====BlueMarble=====&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
[[File:BlueMarble.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Bricks=====&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
[[File:Bricks.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Unshade.JPG&amp;diff=31800</id>
		<title>File:Unshade.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Unshade.JPG&amp;diff=31800"/>
		<updated>2018-04-19T00:26:45Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Silver.JPG&amp;diff=31799</id>
		<title>File:Silver.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Silver.JPG&amp;diff=31799"/>
		<updated>2018-04-19T00:26:38Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Shiny.JPG&amp;diff=31798</id>
		<title>File:Shiny.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Shiny.JPG&amp;diff=31798"/>
		<updated>2018-04-19T00:26:26Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Rough.JPG&amp;diff=31797</id>
		<title>File:Rough.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Rough.JPG&amp;diff=31797"/>
		<updated>2018-04-19T00:26:17Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Plastic.JPG&amp;diff=31795</id>
		<title>File:Plastic.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Plastic.JPG&amp;diff=31795"/>
		<updated>2018-04-19T00:26:06Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Marble.JPG&amp;diff=31792</id>
		<title>File:Marble.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Marble.JPG&amp;diff=31792"/>
		<updated>2018-04-19T00:25:55Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Emissive.JPG&amp;diff=31791</id>
		<title>File:Emissive.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Emissive.JPG&amp;diff=31791"/>
		<updated>2018-04-19T00:25:42Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Earth.JPG&amp;diff=31790</id>
		<title>File:Earth.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Earth.JPG&amp;diff=31790"/>
		<updated>2018-04-19T00:25:33Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Diffuse.JPG&amp;diff=31789</id>
		<title>File:Diffuse.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Diffuse.JPG&amp;diff=31789"/>
		<updated>2018-04-19T00:25:22Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Chrome.JPG&amp;diff=31787</id>
		<title>File:Chrome.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Chrome.JPG&amp;diff=31787"/>
		<updated>2018-04-19T00:25:02Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Bricks.JPG&amp;diff=31786</id>
		<title>File:Bricks.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Bricks.JPG&amp;diff=31786"/>
		<updated>2018-04-19T00:24:49Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:BlueMarble.JPG&amp;diff=31785</id>
		<title>File:BlueMarble.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:BlueMarble.JPG&amp;diff=31785"/>
		<updated>2018-04-19T00:24:37Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Blazed.JPG&amp;diff=31783</id>
		<title>File:Blazed.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Blazed.JPG&amp;diff=31783"/>
		<updated>2018-04-19T00:24:29Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31782</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31782"/>
		<updated>2018-04-19T00:23:42Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
=====Wood=====&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.JPG]]&lt;br /&gt;
&lt;br /&gt;
=====Rough=====&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
=====Marble=====&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
=====Plastic=====&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
=====Earth=====&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
=====Diffuse=====&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
=====Emissive=====&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
=====Unshaded=====&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
=====Shiny=====&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
=====Chrome=====&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
=====Blazed=====&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
=====Silver=====&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
=====BlueMarble=====&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
=====Bricks=====&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Wood.JPG&amp;diff=31781</id>
		<title>File:Wood.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Wood.JPG&amp;diff=31781"/>
		<updated>2018-04-19T00:23:20Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: Jaeleeps uploaded a new version of &amp;amp;quot;File:Wood.JPG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31777</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31777"/>
		<updated>2018-04-19T00:21:25Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
=====Wood=====&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Rough=====&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
=====Marble=====&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
=====Plastic=====&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
=====Earth=====&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
=====Diffuse=====&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
=====Emissive=====&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
=====Unshaded=====&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
=====Shiny=====&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
=====Chrome=====&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
=====Blazed=====&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
=====Silver=====&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
=====BlueMarble=====&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
=====Bricks=====&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31776</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31776"/>
		<updated>2018-04-19T00:20:49Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
=====Wood=====&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Wood.jpg]]&lt;br /&gt;
&lt;br /&gt;
=====Rough=====&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
=====Marble=====&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
=====Plastic=====&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
=====Earth=====&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
=====Diffuse=====&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
=====Emissive=====&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
=====Unshaded=====&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
=====Shiny=====&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
=====Chrome=====&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
=====Blazed=====&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
=====Silver=====&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
=====BlueMarble=====&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
=====Bricks=====&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=File:Wood.JPG&amp;diff=31774</id>
		<title>File:Wood.JPG</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=File:Wood.JPG&amp;diff=31774"/>
		<updated>2018-04-19T00:20:19Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31772</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31772"/>
		<updated>2018-04-19T00:19:06Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
=====Wood=====&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
&lt;br /&gt;
=====Rough=====&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
=====Marble=====&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
=====Plastic=====&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
=====Earth=====&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
=====Diffuse=====&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
=====Emissive=====&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
=====Unshaded=====&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
=====Shiny=====&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
=====Chrome=====&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
=====Blazed=====&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
=====Silver=====&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
=====BlueMarble=====&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
=====Bricks=====&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31763</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31763"/>
		<updated>2018-04-19T00:16:21Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
=====Wood=====&lt;br /&gt;
 materials.wood&lt;br /&gt;
&lt;br /&gt;
 woodsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.wood)&lt;br /&gt;
 woodbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.wood)&lt;br /&gt;
&lt;br /&gt;
=====Rough=====&lt;br /&gt;
 materials.rough&lt;br /&gt;
&lt;br /&gt;
 roughsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.rough)&lt;br /&gt;
 roughbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.rough)&lt;br /&gt;
&lt;br /&gt;
=====Marble=====&lt;br /&gt;
 materials.marble&lt;br /&gt;
&lt;br /&gt;
 marblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.marble)&lt;br /&gt;
 marblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.marble)&lt;br /&gt;
&lt;br /&gt;
=====Plastic=====&lt;br /&gt;
 materials.plastic&lt;br /&gt;
&lt;br /&gt;
 plasticsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.plastic)&lt;br /&gt;
 plasticbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.plastic)&lt;br /&gt;
&lt;br /&gt;
=====Earth=====&lt;br /&gt;
 materials.earth&lt;br /&gt;
&lt;br /&gt;
 earthsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.earth)&lt;br /&gt;
 earthbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.earth)&lt;br /&gt;
&lt;br /&gt;
=====Diffuse=====&lt;br /&gt;
 materials.diffuse&lt;br /&gt;
&lt;br /&gt;
 diffusesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.diffuse)&lt;br /&gt;
 diffusebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.diffuse)&lt;br /&gt;
&lt;br /&gt;
=====Emissive=====&lt;br /&gt;
Material which looks like it glows&lt;br /&gt;
&lt;br /&gt;
 materials.emissive&lt;br /&gt;
&lt;br /&gt;
 emissivesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.emissive)&lt;br /&gt;
 emissivebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.emissive)&lt;br /&gt;
&lt;br /&gt;
=====Unshaded=====&lt;br /&gt;
Material which does not affected by lighting&lt;br /&gt;
&lt;br /&gt;
 materials.unshaded&lt;br /&gt;
&lt;br /&gt;
 unshadedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.unshaded)&lt;br /&gt;
 unshadedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.unshaded)&lt;br /&gt;
&lt;br /&gt;
=====Shiny=====&lt;br /&gt;
 materials.shiny&lt;br /&gt;
&lt;br /&gt;
 shinysphere = sphere(pos = (-2,0,0), radius = 1, material = materials.shiny)&lt;br /&gt;
 shinybox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.shiny)&lt;br /&gt;
&lt;br /&gt;
=====Chrome=====&lt;br /&gt;
 materials.chrome&lt;br /&gt;
&lt;br /&gt;
 chromesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.chrome)&lt;br /&gt;
 chromebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.chrome)&lt;br /&gt;
&lt;br /&gt;
=====Blazed=====&lt;br /&gt;
 materials.blazed&lt;br /&gt;
&lt;br /&gt;
 blazedsphere = sphere(pos = (-2,0,0), radius = 1, material = materials.blazed)&lt;br /&gt;
 blazedbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.blazed)&lt;br /&gt;
&lt;br /&gt;
=====Silver=====&lt;br /&gt;
 materials.silver&lt;br /&gt;
&lt;br /&gt;
 silversphere = sphere(pos = (-2,0,0), radius = 1, material = materials.silver)&lt;br /&gt;
 silverbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.silver)&lt;br /&gt;
&lt;br /&gt;
=====BlueMarble=====&lt;br /&gt;
Earth with clouds&lt;br /&gt;
&lt;br /&gt;
 materials.BlueMarble&lt;br /&gt;
&lt;br /&gt;
 BlueMarblesphere = sphere(pos = (-2,0,0), radius = 1, material = materials.BlueMarble)&lt;br /&gt;
 BlueMarblebox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.BlueMarble)&lt;br /&gt;
&lt;br /&gt;
=====Bricks=====&lt;br /&gt;
 materials.bricks&lt;br /&gt;
&lt;br /&gt;
 brickssphere = sphere(pos = (-2,0,0), radius = 1, material = materials.bricks)&lt;br /&gt;
 bricksbox = box(pos = (2,0,0), length=1, height=1, width=1, material = materials.bricks)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Creating your own texture====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31706</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31706"/>
		<updated>2018-04-18T22:41:18Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
==Attributes==&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
===Position===&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
===Axis===&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
===Material/Texture===&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
====Basic Materials====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other Attributes===&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
==Common Objects==&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
===Sphere===&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
===Arrow===&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
===Box===&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
===Cylinder===&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31704</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31704"/>
		<updated>2018-04-18T22:39:08Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
===Attributes===&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
====Position====&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
====Color====&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
====Axis====&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
====Material/Texture====&lt;br /&gt;
One of the main purposes of VPython programming is to help people&#039;s understanding on a physical principle or phenomenon by displaying an animation describing the principle or phenomenon. To achieve this, various objects are used in the program, and various attributes such as color and shape are used to distinguish them. Material is also one of that attributes, which does not change the essence of the phenomenon but helps people&#039;s understanding on the phenomenon.&lt;br /&gt;
&lt;br /&gt;
=====Basic Materials=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Other Attributes====&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
===Common Objects===&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
====Sphere====&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
====Arrow====&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
====Box====&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
====Cylinder====&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
====Other====&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/materials.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31689</id>
		<title>VPython Object</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=VPython_Object&amp;diff=31689"/>
		<updated>2018-04-18T22:30:38Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Claimed by Ddebord3 (2015)&lt;br /&gt;
*Edited by Vnistala3 (2017)&lt;br /&gt;
*Edited by jlee3414 (2018)&lt;br /&gt;
&lt;br /&gt;
A VPython Object is a representation of data in a specific in VPython both visually and numerically. Each object represents data through its attributes, specific characteristics assigned to each individual object. Objects play an essential role in the necessary knowledge for the coding portion of PHYS 2211 and 2212, as most of your programs will require the extensive usage and manipulation of objects. This page is intended to provide you a background on these objects, especially if you have no prior knowledge of coding or VPython.&lt;br /&gt;
&lt;br /&gt;
==The Main Idea==&lt;br /&gt;
&lt;br /&gt;
Objects in VPython are intended to represent data in ways that can be easily visualized and understood by both the user and the computer. Each object has a type it belongs to, which determines its default attributes, as well as how the computer will choose to display it when the program runs. Objects must be uniquely named if you wish to refer to them again later in your program, and any graphical object you create (spheres, boxes, curves, arrows, etc.) continue to exist for as long as your program remains running - VPython will continue to display them regardless of where they are positioned. If you change an attribute of an object, such as its position or color, VPython will automatically display the object in its new location and/or with its new color.&lt;br /&gt;
&lt;br /&gt;
For example, let&#039;s say you create a sphere called &#039;ball&#039; - by default, ball has attributes pre-assigned to it, such as ball.pos (the .pos attribute signifies the position of the sphere) or ball.color (the .color attribute allows you to change the color of the sphere). Also, in addition to the preset attributes, you can also create new ones. Besides the position and radius, you can also create attributes for mass (ball.mass), velocity (ball.vel), momentum (ball.momentum), or anything else you see fit. Of course, not all attributes need to be added manually. They can be left blank and filled in with a default value which the program automatically assigns them &lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To make an object and visualize it, it is required to import functions by writing following lines on the top of the code.&lt;br /&gt;
&lt;br /&gt;
 from __future__ import division&lt;br /&gt;
 from visual import *&lt;br /&gt;
&lt;br /&gt;
Then by writing following line on your code, you can instantiate &lt;br /&gt;
&lt;br /&gt;
 [variable name] = [object type]([attribute1].[attribute1 type], ... ,[attribute n].[attribute n type])&lt;br /&gt;
&lt;br /&gt;
And you can change attributes of the certain objects&lt;br /&gt;
&lt;br /&gt;
 [variable name].[attribute] = [new attribute type]&lt;br /&gt;
&lt;br /&gt;
===Attributes===&lt;br /&gt;
Many objects in VPython carry common attributes regardless of their type. This section will cover the attributes you will be utilizing the most in this class. &lt;br /&gt;
&lt;br /&gt;
====Position====&lt;br /&gt;
The position attribute is common to almost every single object, and is probably the most important of the attributes. It determines the position of the object&#039;s center (in the case of spheres, boxes, etc.) or the object&#039;s endpoint (arrows, curves, etc.). It is of the vector type. To access and/or edit this attribute, it can be accessed using objectName.pos. Returning to the example from the above section, we can access the position of our sphere called &#039;ball&#039; by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos&lt;br /&gt;
&lt;br /&gt;
This would return the position of the ball in vector form, or allow you to refer to said position in calculations.&lt;br /&gt;
&lt;br /&gt;
In addition, the position attribute has three components of its own, which can be accessed by typing&lt;br /&gt;
&lt;br /&gt;
 ball.pos.x&lt;br /&gt;
 ball.pos.y&lt;br /&gt;
 ball.pos.z&lt;br /&gt;
&lt;br /&gt;
depending on the desired component of the position. The same rules apply as to ball.pos, however they are returned as single numbers instead of as a vector.&lt;br /&gt;
&lt;br /&gt;
To set the position of an object, one must first set the type of the object and then type pos([vector coordinates]). For instance, if we wanted to create an object called ball centered at (4,2,0), we would type&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(pos(4,2,0))&lt;br /&gt;
&lt;br /&gt;
====Color====&lt;br /&gt;
The color attribute defines the object&#039;s color when it appears in the display window. This attribute is not important for data but more for display - it is simply to distinguish objects from one another, which is especially useful if you are working with a multitude of objects at once. &lt;br /&gt;
&lt;br /&gt;
Color can be assigned in one of two ways. The first way it can be assigned is through a preset color. The preset colors in VPython are blue, orange, green, red, purple, brown, pink, gray, olive, and cyan - any of these can be inserted to create the desired color. For instance, the syntax for creating a red color is:&lt;br /&gt;
&lt;br /&gt;
 color = color.red&lt;br /&gt;
 &lt;br /&gt;
Another way of assigning color is through an RGB vector, an additive form of assigning color. Red, green and blue layers are added together in various saturations and opacities to reproduce a broad array of colors. The vector contains three numbers from 0 to 255 - The first number represents the red, the second represents the green, and the third represents the blue. The higher the value of the number, the more it resembles that particular color. For instance, if we wanted to assign cyan to color, we would type&lt;br /&gt;
 color = (0, 255, 255)&lt;br /&gt;
&lt;br /&gt;
To set the color of an object, one must first set the type of the object and then set the color within the parentheses. For instance, if we wanted to create an object called ball which was cyan, we would type either&lt;br /&gt;
&lt;br /&gt;
 ball = objectType(color = color(cyan))&lt;br /&gt;
 ball = objectType(color = (0,255,255))&lt;br /&gt;
&lt;br /&gt;
====Axis====&lt;br /&gt;
The axis attribute is important specifically for arrows, as it determines the direction which the arrow points and how long it is. For instance, if you wanted to create an arrow parallel to the x-axis with a length of 5, the syntax would be&lt;br /&gt;
&lt;br /&gt;
 axis = (5,0,0)&lt;br /&gt;
&lt;br /&gt;
meaning the arrow points 5 units along the x axis and is perpendicular to the y and z axes.&lt;br /&gt;
&lt;br /&gt;
The axis attribute also determines orientation of other objects, such as rings or cylinders, but arrows are the only object whose size is specifically tied to the axis attribute.&lt;br /&gt;
&lt;br /&gt;
==ma&lt;br /&gt;
&lt;br /&gt;
====Other Attributes====&lt;br /&gt;
There are other attributes which are also important but not as essential (or common) as position/color/axis, such as radius and make_trail, among others. Most of these attributes are self-explanatory or will not be used in the course, so if you would like full descriptions of these attributes, refer to the [http://vpython.org/contents/docs/index.html VPython Documentation].&lt;br /&gt;
&lt;br /&gt;
===Common Objects===&lt;br /&gt;
In order to display and understand your code effectively, there are a certain few objects which will be essential, especially for this class.&lt;br /&gt;
&lt;br /&gt;
====Sphere====&lt;br /&gt;
[[File:Sphere.jpg|thumb|right|alt=Yellow Arrow|The example sphere]]&lt;br /&gt;
Spheres are the most basic but also very useful objects. A sphere object is a representation of a sphere with a set radius, position, and color. Spheres are commonly used to represent particles in assignments and labs, and are generally assigned a velocity / momentum / etc. in problems. Spheres generally have three properties which should be set when creating them - radius, position, and color, in any order within the parentheses. Only the position is required  -  note that the position attribute for a cylinder, arrow, cone, and pyramid corresponds to one end of the object, whereas for a sphere it corresponds to the center of the object. If a radius and color are not specified, VPython will set the radius to 1 and the color to the current foreground color.&lt;br /&gt;
&lt;br /&gt;
For instance, if we wanted to create a yellow sphere at the origin with a radius of ten, we would type&lt;br /&gt;
&lt;br /&gt;
 yellowSphere = sphere(radius = 10, pos = vector(0,0,0), color=color.yellow)&lt;br /&gt;
&lt;br /&gt;
====Arrow====&lt;br /&gt;
[[File:arrowW.png|thumb|right|alt=Yellow Arrow|The example arrow]]&lt;br /&gt;
Arrows are just as multipurpose as spheres, if not more so. In this class, arrows will be used to represent vector quantities visually. For instance, you can use arrows to show the velocity/acceleration/momentum of a particle, the electric field direction around a charged particle, etc. Arrow objects are created with a position which represents the starting point of the arrow - not the center - and an axis which represents the arrow&#039;s direction and length. Both the position and the length are vector quantities. The color is again not essential as VPython will set it to a default value if left out. The arrow object itself features a straight box-shaped shaft with a 3d pyramid-shaped arrowhead at one end.&lt;br /&gt;
&lt;br /&gt;
For instance, to create an white arrow based at (4,2,0) pointing in the direction of (-2,2,-4), we would type&lt;br /&gt;
&lt;br /&gt;
 nameArrow = arrow(pos=(4,2,0), axis=(-2,2,-4), color=color.white)&lt;br /&gt;
&lt;br /&gt;
====Box====&lt;br /&gt;
[[File:ArrowV.jpg|thumb|right|alt=Yellow Arrow|The example box]]&lt;br /&gt;
Boxes will feature more in Physics 1 during the kinematics and dynamics sections. While the position attribute is the center of the box as with a sphere, the other attributes of boxes are more complex than spheres or arrows, and particular heed must be paid to the axis attribute, as the box&#039;s rotation and orientation depends on it. The axis attribute sets the direction of the length of the box, assuming the length, width and height of the box are set before. If they are not given, the length is automatically set to the magnitude of the axis vector. &lt;br /&gt;
&lt;br /&gt;
To create a green cube with its corner at the origin and a side length of 5 (pictured), we would type&lt;br /&gt;
&lt;br /&gt;
 greenbox = box(pos=(2.5, 2.5, 2.5), length=5, height=5, width=5) &lt;br /&gt;
&lt;br /&gt;
The axis attribute can also be added to tilt the box by changing the angle of the length. For example, this would cause the box from the previous step to be tipped at a 45 degree angle:&lt;br /&gt;
&lt;br /&gt;
 tippedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5)&lt;br /&gt;
&lt;br /&gt;
The box can also be rotated around its own axis by changing which way is &amp;quot;up&amp;quot; for the box, by specifying an up attribute for the box that is different from the up vector of the coordinate system. For instance, this would take the tipped box from the previous step and rotate it so that the top face of the box is perpendicular to the vector in question.&lt;br /&gt;
&lt;br /&gt;
 rotatedbox = box(pos=(2.5, 2.5, 2.5), axis(1,1,0), length=5, height=5, width=5, up=(2, 3, 1))&lt;br /&gt;
&lt;br /&gt;
====Cylinder====&lt;br /&gt;
[[File:Cyl.jpg|thumb|right|alt=Yellow Arrow|The example cylinder]]&lt;br /&gt;
Cylinders are useful wherever a rod comes into play. For instance, in Physics 2, you may see problems regarding charged rods or something of the sort. The cylinder&#039;s attributes are a bit different and incorporate elements of most of the other shapes. As such, knowing cylinder syntax gives you a good basis for any object you need to create. The position vector determines the center of the cylinder&#039;s base (similar to a cone&#039;s pos attribute) and not the center of the object, while the axis determines the direction and length of the cylinder (similar to the arrow&#039;s axis attribute). The radius is self-explanatory.&lt;br /&gt;
&lt;br /&gt;
For example, to make a red cylinder with the base centered at (4,1,3) which is 6 units tall, has a radius of 2, and is laying parallel to the x-axis, you would type&lt;br /&gt;
&lt;br /&gt;
 cyl = cylinder(pos=(4,1,3), axis=(6,0,0), radius=2, color=color.red)&lt;br /&gt;
&lt;br /&gt;
====Other====&lt;br /&gt;
Aside from the four main objects listed above, there are many more objects which can be used in your programs. You will not need the majority of them for this class, but they do exist, and you may want to learn about them and their attributes. Visit the VPython Documentation for more information on the following objects:&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:EllipseB.jpg|thumb|center|alt=Yellow Arrow|Ellipse]]&lt;br /&gt;
| [[File:RingB.jpg|thumb|center|alt=Yellow Arrow|Ring]]&lt;br /&gt;
| [[File:PyramidG.jpg|thumb|center|alt=Yellow Arrow|Pyramid]]&lt;br /&gt;
| [[File:HelixO.jpg|thumb|center|alt=Yellow Arrow|Helix]]&lt;br /&gt;
| [[File:FacesR.jpg|thumb|center|alt=Yellow Arrow|Face]]&lt;br /&gt;
| [[File:Curve.jpg|thumb|center|alt=Yellow Arrow|Curve]]&lt;br /&gt;
| [[File:ConeB.jpg|thumb|center|alt=Yellow Arrow|Cone]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Simple===&lt;br /&gt;
Create a green sphere named &amp;quot;greenSphere&amp;quot; with a radius of 5 located at the origin. &lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;greenSphere = sphere(radius=5, pos=vector(0,0,0), color=color.green)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Middling===&lt;br /&gt;
Create two objects. &lt;br /&gt;
* Object 1: A magenta sphere of radius 3 named sphereOne at the position (9,0,8)&lt;br /&gt;
* Object 2: A cyan arrow named arrowTwo that points from the origin to the center of sphereOne.&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius=3.5, pos=vector(9,0,8), color=color.magenta)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;position = vector(0,0,0)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;arrow(pos=position, axis=(sphereOne.pos - position), color = color.cyan)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Note: the position vector is used in the second line, because arrowTwo.pos cannot be called yet. The arrow has yet to be created - it is created in line 3.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Difficult===&lt;br /&gt;
Create three objects. &lt;br /&gt;
* Object 1: Sphere, radius of 2, located at (-4,-3,8)&lt;br /&gt;
* Object 2: Sphere, radius of 1, located at (6,11,0)&lt;br /&gt;
* Object 3: Curve, starting at origin, moving to first sphere, then to second&lt;br /&gt;
&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
| &amp;lt;strong&amp;gt;Solution&amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereOne = sphere(radius = 2, pos=vector(-4,-3,8))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;sphereTwo = sphere(radius = 1, pos=vector(6,11,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne = curve(color=color.red, pos = (0,0,0))&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | &amp;lt;code&amp;gt;curveOne.append(sphereOne.pos)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectedness ==&lt;br /&gt;
How is this topic connected to something that you are interested in?&lt;br /&gt;
* I quite enjoy coding myself on my own time; I have taken a couple online classes outside of Tech on Java and a class here on MATLAB. However, Python and its variants are still far and away my favorite languages to code in, and the one I am most knowledgeable in. I believe the inclusion of VPython in the Physics curriculum is overall a benefit to us students as it allows us to both learn the physics and visualize them by creating the models we do in Labs on VPython.&lt;br /&gt;
  &lt;br /&gt;
How is it connected to your major?&lt;br /&gt;
* As a Business Admin major I&#039;ll be doing IT Management, which requires me to have an understanding of computer systems at the very least. While VPython may not be quite what I need in the future, it is still a good basis in learning the ins and outs of a major programming language long before I have to delve into serious CS training - plus it lets me keep my coding skills sharp!&lt;br /&gt;
&lt;br /&gt;
Is there an interesting industrial application?&lt;br /&gt;
* Of course! Whereas the simplicity of Python/VPython have made it effective to illustrate simple physics as we do, it&#039;s also powerful elsewhere. VPython is being used by some as a [https://www.youtube.com/watch?v=hK60VT0c8eI simulation tool for robotics] among other things, while Python itself is the backbone for thousands of industrial softwares and applications. In addition, agencies such as NASA use Python and VPython in their labs - I used both programs during my two separate internships at NASA Glenn Research Center in Cleveland, OH.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython VPython] - VPython&#039;s biography, if you will&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_basics VPython Basics] - Especially if you&#039;re totally new to coding as a whole, this page will bolster your learning&lt;br /&gt;
 &lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Functions VPython Functions] - Working with functions, assuming you understand the basics of coding&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Loops VPython Loops] - The next step in VPython code knowledge after functions - using loops&lt;br /&gt;
&lt;br /&gt;
[http://www.physicsbook.gatech.edu/VPython_Common_Errors_and_Troubleshooting VPython Troubleshooting] - Having problems? Check here!&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/index.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/color.html&lt;br /&gt;
&lt;br /&gt;
http://vpython.org/contents/docs/primitives.html&lt;br /&gt;
&lt;br /&gt;
http://guigui.developpez.com/cours/python/vpython/en/?page=object&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=Main_Page&amp;diff=31656</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=Main_Page&amp;diff=31656"/>
		<updated>2018-04-18T21:56:18Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* VPython */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= &#039;&#039;&#039;Georgia Tech Student Wiki for Introductory Physics.&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
This resource was created so that students can contribute and curate content to help those with limited or no access to a textbook.  When reading this website, please correct any errors you may come across. If you read something that isn&#039;t clear, please consider revising it for future students!&lt;br /&gt;
&lt;br /&gt;
Looking to make a contribution?&lt;br /&gt;
#Pick one of the topics from intro physics listed below&lt;br /&gt;
#Add content to that topic or improve the quality of what is already there.&lt;br /&gt;
#Need to make a new topic? Edit this page and add it to the list under the appropriate category.  Then copy and paste the default [[Template]] into your new page and start editing.&lt;br /&gt;
&lt;br /&gt;
Please remember that this is not a textbook and you are not limited to expressing your ideas with only text and equations.  Whenever possible embed: pictures, videos, diagrams, simulations, computational models (e.g. Glowscript), and whatever content you think makes learning physics easier for other students.&lt;br /&gt;
&lt;br /&gt;
== Source Material ==&lt;br /&gt;
All of the content added to this resource must be in the public domain or similar free resource.  If you are unsure about a source, contact the original author for permission. That said, there is a surprisingly large amount of introductory physics content scattered across the web.  Here is an incomplete list of intro physics resources (please update as needed).&lt;br /&gt;
* A physics resource written by experts for an expert audience [https://en.wikipedia.org/wiki/Portal:Physics Physics Portal]&lt;br /&gt;
* A wiki written for students by a physics expert [http://p3server.pa.msu.edu/coursewiki/doku.php?id=183_notes MSU Physics Wiki]&lt;br /&gt;
* A wiki book on modern physics [https://en.wikibooks.org/wiki/Modern_Physics Modern Physics Wiki]&lt;br /&gt;
* The MIT open courseware for intro physics [http://ocw.mit.edu/resources/res-8-002-a-wikitextbook-for-introductory-mechanics-fall-2009/index.htm MITOCW Wiki]&lt;br /&gt;
* An online concept map of intro physics [http://hyperphysics.phy-astr.gsu.edu/hbase/hph.html HyperPhysics]&lt;br /&gt;
* Interactive physics simulations [https://phet.colorado.edu/en/simulations/category/physics PhET]&lt;br /&gt;
* OpenStax intro physics textbooks: [https://openstax.org/details/books/university-physics-volume-1  Vol1], [https://openstax.org/details/books/university-physics-volume-2  Vol2], [https://openstax.org/details/books/university-physics-volume-3  Vol3]&lt;br /&gt;
* The Open Source Physics project is a collection of online physics resources [http://www.opensourcephysics.org/ OSP]&lt;br /&gt;
* A resource guide compiled by the [http://www.aapt.org/ AAPT] for educators [http://www.compadre.org/ ComPADRE]&lt;br /&gt;
* The Feynman lectures on physics are free to read [http://www.feynmanlectures.caltech.edu/ Feynman]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Commonly used wiki commands [https://en.wikipedia.org/wiki/Help:Cheatsheet Wiki Cheatsheet]&lt;br /&gt;
* A guide to representing equations in math mode [https://en.wikipedia.org/wiki/Help:Displaying_a_formula Wiki Math Mode]&lt;br /&gt;
* A page to keep track of all the physics [[Constants]]&lt;br /&gt;
* A page for review of [[Vectors]] and vector operations&lt;br /&gt;
* A listing of [[Notable Scientist]] with links to their individual pages &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
==Physics 1==&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Help with VPython====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Python Syntax]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Vectors and Units====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[SI Units]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====VPython====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[VPython]]&lt;br /&gt;
*[[VPython basics]]&lt;br /&gt;
*[[VPython Common Errors and Troubleshooting]]&lt;br /&gt;
*[[VPython Functions]]&lt;br /&gt;
*[[VPython Lists]]&lt;br /&gt;
*[[VPython Loops]]&lt;br /&gt;
*[[VPython Multithreading]]&lt;br /&gt;
*[[VPython Animation]]&lt;br /&gt;
*[[VPython Objects]]&lt;br /&gt;
*[[VPython 3D Objects]]&lt;br /&gt;
*[[VPython Material]]&lt;br /&gt;
*[[VPython Reference]]&lt;br /&gt;
*[[VPython MapReduceFilter]]&lt;br /&gt;
*[[VPython GUIs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Vectors and Units====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[SI Units]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Interactions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Types of Interactions and How to Detect Them]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Velocity and Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton&#039;s First Law of Motion]]&lt;br /&gt;
*[[Velocity]]&lt;br /&gt;
*[[Mass]]&lt;br /&gt;
*[[Speed and Velocity]]&lt;br /&gt;
*[[Relative Velocity]]&lt;br /&gt;
*[[Derivation of Average Velocity]]&lt;br /&gt;
*[[2-Dimensional Motion]]&lt;br /&gt;
*[[3-Dimensional Position and Motion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Momentum and the Momentum Principle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Momentum Principle]]&lt;br /&gt;
*[[Inertia]]&lt;br /&gt;
*[[Net Force]]&lt;br /&gt;
*[[Derivation of the Momentum Principle]]&lt;br /&gt;
*[[Impulse Momentum]]&lt;br /&gt;
*[[Acceleration]]&lt;br /&gt;
*[[Momentum with respect to external Forces]]&lt;br /&gt;
*[[Relativistic Momentum]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Iterative Prediction with a Constant Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton’s Second Law of Motion]]&lt;br /&gt;
*[[Iterative Prediction]]&lt;br /&gt;
*[[Kinematics]]&lt;br /&gt;
*[[Newton’s Laws and Linear Momentum]]&lt;br /&gt;
*[[Projectile Motion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Analytic Prediction with a Constant Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Analytical Prediction]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Iterative Prediction with a Varying Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Predicting Change in multiple dimensions]]&lt;br /&gt;
*[[Spring Force]]&lt;br /&gt;
*[[Hooke&#039;s Law]]&lt;br /&gt;
*[[Simple Harmonic Motion]]&lt;br /&gt;
*[[Iterative Prediction of Spring-Mass System]]&lt;br /&gt;
*[[Terminal Speed]]&lt;br /&gt;
*[[Determinism]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Fundamental Interactions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Main Idea==&lt;br /&gt;
&lt;br /&gt;
*[[Gravitational Force]]&lt;br /&gt;
*[[Fluid Mechanics]]&lt;br /&gt;
*[[An Application of Gravitational Potential]]&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Reciprocity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Conservation of Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Conservation of Momentum]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Properties of Matter====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Kinds of Matter]]&lt;br /&gt;
*[[Ball and Spring Model of Matter]]&lt;br /&gt;
*[[Density]]&lt;br /&gt;
*[[Length and Stiffness of an Interatomic Bond]]&lt;br /&gt;
*[[Young&#039;s Modulus]]&lt;br /&gt;
*[[Speed of Sound in Solids]]&lt;br /&gt;
*[[Malleability]]&lt;br /&gt;
*[[Ductility]]&lt;br /&gt;
*[[Weight]]&lt;br /&gt;
*[[Hardness]]&lt;br /&gt;
*[[Boiling Point]]&lt;br /&gt;
*[[Melting Point]]&lt;br /&gt;
*[[Change of State]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Identifying Forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Free Body Diagram]]&lt;br /&gt;
*[[Inclined Plane]]&lt;br /&gt;
*[[Compression or Normal Force]]&lt;br /&gt;
*[[Tension]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Curving Motion====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Curving Motion]]&lt;br /&gt;
*[[Centripetal Force and Curving Motion]]&lt;br /&gt;
*[[Perpetual Freefall (Orbit)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Energy Principle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[The Energy Principle]]&lt;br /&gt;
*[[Conservation of Energy]]&lt;br /&gt;
*[[Kinetic Energy]]&lt;br /&gt;
*[[Work]]&lt;br /&gt;
*[[Power (Mechanical)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Work by Non-Constant Forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Work Done By A Nonconstant Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Energy]]&lt;br /&gt;
*[[Potential Energy of Macroscopic Springs]]&lt;br /&gt;
*[[Spring Potential Energy]]&lt;br /&gt;
*[[Ball and Spring Model]]&lt;br /&gt;
*[[Gravitational Potential Energy]]&lt;br /&gt;
*[[Energy Graphs]]&lt;br /&gt;
*[[Escape Velocity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Multiparticle Systems====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Center of Mass]]&lt;br /&gt;
*[[Multi-particle analysis of Momentum]]&lt;br /&gt;
*[[Momentum with respect to external Forces]]&lt;br /&gt;
*[[Potential Energy of a Multiparticle System]]&lt;br /&gt;
*[[Work and Energy for an Extended System]]&lt;br /&gt;
*[[Internal Energy]]&lt;br /&gt;
**[[Potential Energy of a Pair of Neutral Atoms]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Choice of System====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[System &amp;amp; Surroundings]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Thermal Energy, Dissipation and Transfer of Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Thermal Energy]]&lt;br /&gt;
*[[Specific Heat]]&lt;br /&gt;
*[[Heat Capacity]]&lt;br /&gt;
*[[Calorific Value(Heat of combustion)]]&lt;br /&gt;
*[[Specific Heat Capacity]]&lt;br /&gt;
*[[First Law of Thermodynamics]]&lt;br /&gt;
*[[Second Law of Thermodynamics and Entropy]]&lt;br /&gt;
*[[Temperature]]&lt;br /&gt;
*[[Predicting Change]]&lt;br /&gt;
*[[Energy Transfer due to a Temperature Difference]]&lt;br /&gt;
*[[Transformation of Energy]]&lt;br /&gt;
*[[The Maxwell-Boltzmann Distribution]]&lt;br /&gt;
*[[Air Resistance]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Rotational and Vibrational Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Translational, Rotational and Vibrational Energy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 11===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Different Models of a System====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Point Particle Systems]]&lt;br /&gt;
*[[Real Systems]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Models of Friction====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Friction]]&lt;br /&gt;
*[[Static Friction]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Collisions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton&#039;s Third Law of Motion]]&lt;br /&gt;
*[[Collisions]]&lt;br /&gt;
*[[Elastic Collisions]]&lt;br /&gt;
*[[Inelastic Collisions]]&lt;br /&gt;
*[[Maximally Inelastic Collision]]&lt;br /&gt;
*[[Head-on Collision of Equal Masses]]&lt;br /&gt;
*[[Head-on Collision of Unequal Masses]]&lt;br /&gt;
*[[Scattering: Collisions in 2D and 3D]]&lt;br /&gt;
*[[Rutherford Experiment and Atomic Collisions]]&lt;br /&gt;
*[[Coefficient of Restitution]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Rotations====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Rotation]]&lt;br /&gt;
*[[Angular Velocity]]&lt;br /&gt;
*[[Eulerian Angles]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Angular Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Total Angular Momentum]]&lt;br /&gt;
*[[Translational Angular Momentum]]&lt;br /&gt;
*[[Rotational Angular Momentum]]&lt;br /&gt;
*[[The Angular Momentum Principle]]&lt;br /&gt;
*[[Angular Momentum Compared to Linear Momentum]]&lt;br /&gt;
*[[Angular Impulse]]&lt;br /&gt;
*[[Predicting the Position of a Rotating System]]&lt;br /&gt;
*[[Angular Momentum of Multiparticle Systems]]&lt;br /&gt;
*[[The Moments of Inertia]]&lt;br /&gt;
*[[Moment of Inertia for a cylinder]]&lt;br /&gt;
*[[Right Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Analyzing Motion with and without Torque====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Torque]]&lt;br /&gt;
*[[Torque 2]]&lt;br /&gt;
*[[Systems with Zero Torque]]&lt;br /&gt;
*[[Systems with Nonzero Torque]]&lt;br /&gt;
*[[Torque vs Work]]&lt;br /&gt;
*[[Gyroscopes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 15===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Introduction to Quantum Concepts====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Bohr Model]]&lt;br /&gt;
*[[Energy graphs and the Bohr model]]&lt;br /&gt;
*[[Quantized energy levels]]&lt;br /&gt;
*[[Quantized energy levels part II]]&lt;br /&gt;
*[[Entropy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Physics 2==&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====3D Vectors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Right Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric field====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Field]]&lt;br /&gt;
*[[Electric Field and Electric Potential]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric field of a point particle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Point Charge]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Superposition====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Superposition Principle]]&lt;br /&gt;
*[[Superposition principle]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Dipoles====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Dipole]]&lt;br /&gt;
*[[Magnetic Dipole]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Interactions of charged objects====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Field]]&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Tape experiments====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Polarization]]&lt;br /&gt;
*[[Electric Polarization]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Polarization====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Polarization]]&lt;br /&gt;
*[[Electric Polarization]]&lt;br /&gt;
*[[Polarization of an Atom]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Insulators====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Insulators]]&lt;br /&gt;
*[[Potential Difference in an Insulator]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Conductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Conductivity]]&lt;br /&gt;
*[[Charge Transfer]]&lt;br /&gt;
*[[Resistivity]]&lt;br /&gt;
*[[Polarization of a conductor]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Charging and discharging====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charge Transfer]]&lt;br /&gt;
*[[Electrostatic Discharge]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged rod====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Rod]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged ring/disk/capacitor====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Ring]]&lt;br /&gt;
*[[Charged Disk]]&lt;br /&gt;
*[[Charged Capacitor]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged sphere====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Spherical Shell]]&lt;br /&gt;
*[[Field of a Charged Ball]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Energy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric potential====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Path Independence of Electric Potential]]&lt;br /&gt;
*[[Potential Difference Path Independence, claimed by Aditya Mohile]] &lt;br /&gt;
*[[Potential Difference in a Uniform Field]]&lt;br /&gt;
*[[Potential Difference of Point Charge in a Non-Uniform Field]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Sign of a potential difference====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Sign of a Potential Difference]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential at a single location====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Potential Difference at One Location]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Path independence and round trip potential====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Path Independence of Electric Potential]]&lt;br /&gt;
*[[Potential Difference Path Independence, claimed by Aditya Mohile]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric field and potential in an insulator====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Difference in an Insulator]]&lt;br /&gt;
*[[Electric Field in an Insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Moving charges in a magnetic field====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Biot-Savart Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Biot-Savart Law]]&lt;br /&gt;
*[[Biot-Savart Law for Currents]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Moving charges, electron current, and conventional current====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Moving Point Charge]]&lt;br /&gt;
*[[Current]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a wire====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Long Straight Wire]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a current-carrying loop====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Loop]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a Charged Disk====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Disk]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic dipoles====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Dipole Moment]]&lt;br /&gt;
*[[Bar Magnet]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Atomic structure of magnets====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Atomic Structure of Magnets]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Steady state current====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Steady State]]&lt;br /&gt;
*[[Non Steady State]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Kirchoff&#039;s Laws====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Kirchoff&#039;s Laws]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric fields and energy in circuits====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Series circuit]]&lt;br /&gt;
*[[Node Rule]]&lt;br /&gt;
*[[Loop Rule]]&lt;br /&gt;
*[[Electric Potential Difference]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Macroscopic analysis of circuits====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Series Circuits]]&lt;br /&gt;
*[[Parallel Circuits]]&lt;br /&gt;
*[[Parallel Circuits vs. Series Circuits*]]&lt;br /&gt;
*[[Loop Rule]]&lt;br /&gt;
*[[Node Rule]]&lt;br /&gt;
*[[Fundamentals of Resistance]]&lt;br /&gt;
*[[Problem Solving]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric field and potential in circuits with capacitors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charging and Discharging a Capacitor]]&lt;br /&gt;
*[[RC Circuit]] &lt;br /&gt;
*[[R Circuit]]&lt;br /&gt;
*[[AC and DC]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic forces on charges and currents====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[Motors and Generators]]&lt;br /&gt;
*[[Applying Magnetic Force to Currents]]&lt;br /&gt;
*[[Magnetic Force in a Moving Reference Frame]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Analysis of Railgun vs Coil gun technologies]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric and magnetic forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[VPython Modelling of Electric and Magnetic Forces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Velocity selector====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[Combining Electric and Magnetic Forces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hall Effect====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Hall Effect]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Motional Emf]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Magnetic Torque]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Motional EMF====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Motional Emf]]&lt;br /&gt;
*[[Motional Emf using Faraday&#039;s Law]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic torque====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Torque]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Gauss&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Gauss&#039;s Flux Theorem]]&lt;br /&gt;
*[[Gauss&#039;s Law]]&lt;br /&gt;
*[[Magnetic Flux]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Ampere&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Ampere&#039;s Law]]&lt;br /&gt;
*[[Ampere-Maxwell Law]]&lt;br /&gt;
*[[Magnetic Field of Coaxial Cable Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Long Thick Wire Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Toroid Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Solenoid Using Ampere&#039;s Law]]&lt;br /&gt;
*[[The Differential Form of Ampere&#039;s Law]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Semiconductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Semiconductor Devices]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Faraday&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Faraday&#039;s Law]]&lt;br /&gt;
*[[Motional Emf using Faraday&#039;s Law]]&lt;br /&gt;
*[[Lenz&#039;s Law]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Maxwell&#039;s equations====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Gauss&#039;s Law]]&lt;br /&gt;
*[[Magnetic Flux]]&lt;br /&gt;
*[[Ampere&#039;s Law]]&lt;br /&gt;
*[[Faraday&#039;s Law]]&lt;br /&gt;
*[[Maxwell&#039;s Electromagnetic Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Circuits revisited====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Inductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Inductors]]&lt;br /&gt;
*[[Current in an LC Circuit]]&lt;br /&gt;
*[[Current in an RL Circuit]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 15===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
==== Electromagnetic Radiation ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electromagnetic Radiation]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Sparks in the air====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Sparks in Air]]&lt;br /&gt;
*[[Spark Plugs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Superconductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Superconducters]]&lt;br /&gt;
*[[Superconductors]]&lt;br /&gt;
*[[Meissner effect]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Physics 3==&lt;br /&gt;
&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Classical Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Special Relativity====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Frame of Reference]]&lt;br /&gt;
*[[Einstein&#039;s Theory of Special Relativity]]&lt;br /&gt;
*[[Time Dilation]]&lt;br /&gt;
*[[Einstein&#039;s Theory of General Relativity]]&lt;br /&gt;
*[[Albert A. Micheleson &amp;amp; Edward W. Morley]]&lt;br /&gt;
*[[Magnetic Force in a Moving Reference Frame]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Photons====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Spontaneous Photon Emission]]&lt;br /&gt;
*[[Light Scattering: Why is the Sky Blue]]&lt;br /&gt;
*[[Lasers]]&lt;br /&gt;
*[[Electronic Energy Levels and Photons]]&lt;br /&gt;
*[[Quantum Properties of Light]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Matter Waves====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Wave-Particle Duality]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Wave Mechanics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Standing Waves]]&lt;br /&gt;
*[[Wavelength]]&lt;br /&gt;
*[[Wavelength and Frequency]]&lt;br /&gt;
*[[Mechanical Waves]]&lt;br /&gt;
*[[Transverse and Longitudinal Waves]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Rutherford-Bohr Model====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Rutherford Experiment and Atomic Collisions]]&lt;br /&gt;
*[[Bohr Model]]&lt;br /&gt;
*[[Quantized energy levels]]&lt;br /&gt;
*[[Energy graphs and the Bohr model]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====The Hydrogen Atom====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Quantum Theory]]&lt;br /&gt;
*[[Atomic Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Many-Electron Atoms====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Quantum Theory]]&lt;br /&gt;
*[[Atomic Theory]]&lt;br /&gt;
*[[Pauli exclusion principle]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Molecules====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Statistical Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 11===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Condensed Matter Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====The Nucleus====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Nucleus]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Nuclear Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Nuclear Fission]]&lt;br /&gt;
*[[Nuclear Energy from Fission and Fusion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Particle Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Elementary Particles and Particle Physics Theory]]&lt;br /&gt;
*[[String Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=Main_Page&amp;diff=31653</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=Main_Page&amp;diff=31653"/>
		<updated>2018-04-18T21:53:07Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* Georgia Tech Student Wiki for Introductory Physics. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= &#039;&#039;&#039;Georgia Tech Student Wiki for Introductory Physics.&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
This resource was created so that students can contribute and curate content to help those with limited or no access to a textbook.  When reading this website, please correct any errors you may come across. If you read something that isn&#039;t clear, please consider revising it for future students!&lt;br /&gt;
&lt;br /&gt;
Looking to make a contribution?&lt;br /&gt;
#Pick one of the topics from intro physics listed below&lt;br /&gt;
#Add content to that topic or improve the quality of what is already there.&lt;br /&gt;
#Need to make a new topic? Edit this page and add it to the list under the appropriate category.  Then copy and paste the default [[Template]] into your new page and start editing.&lt;br /&gt;
&lt;br /&gt;
Please remember that this is not a textbook and you are not limited to expressing your ideas with only text and equations.  Whenever possible embed: pictures, videos, diagrams, simulations, computational models (e.g. Glowscript), and whatever content you think makes learning physics easier for other students.&lt;br /&gt;
&lt;br /&gt;
== Source Material ==&lt;br /&gt;
All of the content added to this resource must be in the public domain or similar free resource.  If you are unsure about a source, contact the original author for permission. That said, there is a surprisingly large amount of introductory physics content scattered across the web.  Here is an incomplete list of intro physics resources (please update as needed).&lt;br /&gt;
* A physics resource written by experts for an expert audience [https://en.wikipedia.org/wiki/Portal:Physics Physics Portal]&lt;br /&gt;
* A wiki written for students by a physics expert [http://p3server.pa.msu.edu/coursewiki/doku.php?id=183_notes MSU Physics Wiki]&lt;br /&gt;
* A wiki book on modern physics [https://en.wikibooks.org/wiki/Modern_Physics Modern Physics Wiki]&lt;br /&gt;
* The MIT open courseware for intro physics [http://ocw.mit.edu/resources/res-8-002-a-wikitextbook-for-introductory-mechanics-fall-2009/index.htm MITOCW Wiki]&lt;br /&gt;
* An online concept map of intro physics [http://hyperphysics.phy-astr.gsu.edu/hbase/hph.html HyperPhysics]&lt;br /&gt;
* Interactive physics simulations [https://phet.colorado.edu/en/simulations/category/physics PhET]&lt;br /&gt;
* OpenStax intro physics textbooks: [https://openstax.org/details/books/university-physics-volume-1  Vol1], [https://openstax.org/details/books/university-physics-volume-2  Vol2], [https://openstax.org/details/books/university-physics-volume-3  Vol3]&lt;br /&gt;
* The Open Source Physics project is a collection of online physics resources [http://www.opensourcephysics.org/ OSP]&lt;br /&gt;
* A resource guide compiled by the [http://www.aapt.org/ AAPT] for educators [http://www.compadre.org/ ComPADRE]&lt;br /&gt;
* The Feynman lectures on physics are free to read [http://www.feynmanlectures.caltech.edu/ Feynman]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Commonly used wiki commands [https://en.wikipedia.org/wiki/Help:Cheatsheet Wiki Cheatsheet]&lt;br /&gt;
* A guide to representing equations in math mode [https://en.wikipedia.org/wiki/Help:Displaying_a_formula Wiki Math Mode]&lt;br /&gt;
* A page to keep track of all the physics [[Constants]]&lt;br /&gt;
* A page for review of [[Vectors]] and vector operations&lt;br /&gt;
* A listing of [[Notable Scientist]] with links to their individual pages &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
==Physics 1==&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Help with VPython====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Python Syntax]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Vectors and Units====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[SI Units]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====VPython====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[VPython]]&lt;br /&gt;
*[[VPython basics]]&lt;br /&gt;
*[[VPython Common Errors and Troubleshooting]]&lt;br /&gt;
*[[VPython Functions]]&lt;br /&gt;
*[[VPython Lists]]&lt;br /&gt;
*[[VPython Loops]]&lt;br /&gt;
*[[VPython Multithreading]]&lt;br /&gt;
*[[VPython Animation]]&lt;br /&gt;
*[[VPython Objects]]&lt;br /&gt;
*[[VPython 3D Objects]]&lt;br /&gt;
*[[VPython Reference]]&lt;br /&gt;
*[[VPython MapReduceFilter]]&lt;br /&gt;
*[[VPython GUIs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Vectors and Units====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[SI Units]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Interactions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Types of Interactions and How to Detect Them]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Velocity and Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton&#039;s First Law of Motion]]&lt;br /&gt;
*[[Velocity]]&lt;br /&gt;
*[[Mass]]&lt;br /&gt;
*[[Speed and Velocity]]&lt;br /&gt;
*[[Relative Velocity]]&lt;br /&gt;
*[[Derivation of Average Velocity]]&lt;br /&gt;
*[[2-Dimensional Motion]]&lt;br /&gt;
*[[3-Dimensional Position and Motion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Momentum and the Momentum Principle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Momentum Principle]]&lt;br /&gt;
*[[Inertia]]&lt;br /&gt;
*[[Net Force]]&lt;br /&gt;
*[[Derivation of the Momentum Principle]]&lt;br /&gt;
*[[Impulse Momentum]]&lt;br /&gt;
*[[Acceleration]]&lt;br /&gt;
*[[Momentum with respect to external Forces]]&lt;br /&gt;
*[[Relativistic Momentum]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Iterative Prediction with a Constant Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton’s Second Law of Motion]]&lt;br /&gt;
*[[Iterative Prediction]]&lt;br /&gt;
*[[Kinematics]]&lt;br /&gt;
*[[Newton’s Laws and Linear Momentum]]&lt;br /&gt;
*[[Projectile Motion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Analytic Prediction with a Constant Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Analytical Prediction]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Iterative Prediction with a Varying Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Predicting Change in multiple dimensions]]&lt;br /&gt;
*[[Spring Force]]&lt;br /&gt;
*[[Hooke&#039;s Law]]&lt;br /&gt;
*[[Simple Harmonic Motion]]&lt;br /&gt;
*[[Iterative Prediction of Spring-Mass System]]&lt;br /&gt;
*[[Terminal Speed]]&lt;br /&gt;
*[[Determinism]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Fundamental Interactions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Main Idea==&lt;br /&gt;
&lt;br /&gt;
*[[Gravitational Force]]&lt;br /&gt;
*[[Fluid Mechanics]]&lt;br /&gt;
*[[An Application of Gravitational Potential]]&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Reciprocity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Conservation of Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Conservation of Momentum]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Properties of Matter====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Kinds of Matter]]&lt;br /&gt;
*[[Ball and Spring Model of Matter]]&lt;br /&gt;
*[[Density]]&lt;br /&gt;
*[[Length and Stiffness of an Interatomic Bond]]&lt;br /&gt;
*[[Young&#039;s Modulus]]&lt;br /&gt;
*[[Speed of Sound in Solids]]&lt;br /&gt;
*[[Malleability]]&lt;br /&gt;
*[[Ductility]]&lt;br /&gt;
*[[Weight]]&lt;br /&gt;
*[[Hardness]]&lt;br /&gt;
*[[Boiling Point]]&lt;br /&gt;
*[[Melting Point]]&lt;br /&gt;
*[[Change of State]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Identifying Forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Free Body Diagram]]&lt;br /&gt;
*[[Inclined Plane]]&lt;br /&gt;
*[[Compression or Normal Force]]&lt;br /&gt;
*[[Tension]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Curving Motion====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Curving Motion]]&lt;br /&gt;
*[[Centripetal Force and Curving Motion]]&lt;br /&gt;
*[[Perpetual Freefall (Orbit)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Energy Principle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[The Energy Principle]]&lt;br /&gt;
*[[Conservation of Energy]]&lt;br /&gt;
*[[Kinetic Energy]]&lt;br /&gt;
*[[Work]]&lt;br /&gt;
*[[Power (Mechanical)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Work by Non-Constant Forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Work Done By A Nonconstant Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Energy]]&lt;br /&gt;
*[[Potential Energy of Macroscopic Springs]]&lt;br /&gt;
*[[Spring Potential Energy]]&lt;br /&gt;
*[[Ball and Spring Model]]&lt;br /&gt;
*[[Gravitational Potential Energy]]&lt;br /&gt;
*[[Energy Graphs]]&lt;br /&gt;
*[[Escape Velocity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Multiparticle Systems====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Center of Mass]]&lt;br /&gt;
*[[Multi-particle analysis of Momentum]]&lt;br /&gt;
*[[Momentum with respect to external Forces]]&lt;br /&gt;
*[[Potential Energy of a Multiparticle System]]&lt;br /&gt;
*[[Work and Energy for an Extended System]]&lt;br /&gt;
*[[Internal Energy]]&lt;br /&gt;
**[[Potential Energy of a Pair of Neutral Atoms]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Choice of System====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[System &amp;amp; Surroundings]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Thermal Energy, Dissipation and Transfer of Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Thermal Energy]]&lt;br /&gt;
*[[Specific Heat]]&lt;br /&gt;
*[[Heat Capacity]]&lt;br /&gt;
*[[Calorific Value(Heat of combustion)]]&lt;br /&gt;
*[[Specific Heat Capacity]]&lt;br /&gt;
*[[First Law of Thermodynamics]]&lt;br /&gt;
*[[Second Law of Thermodynamics and Entropy]]&lt;br /&gt;
*[[Temperature]]&lt;br /&gt;
*[[Predicting Change]]&lt;br /&gt;
*[[Energy Transfer due to a Temperature Difference]]&lt;br /&gt;
*[[Transformation of Energy]]&lt;br /&gt;
*[[The Maxwell-Boltzmann Distribution]]&lt;br /&gt;
*[[Air Resistance]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Rotational and Vibrational Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Translational, Rotational and Vibrational Energy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 11===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Different Models of a System====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Point Particle Systems]]&lt;br /&gt;
*[[Real Systems]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Models of Friction====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Friction]]&lt;br /&gt;
*[[Static Friction]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Collisions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton&#039;s Third Law of Motion]]&lt;br /&gt;
*[[Collisions]]&lt;br /&gt;
*[[Elastic Collisions]]&lt;br /&gt;
*[[Inelastic Collisions]]&lt;br /&gt;
*[[Maximally Inelastic Collision]]&lt;br /&gt;
*[[Head-on Collision of Equal Masses]]&lt;br /&gt;
*[[Head-on Collision of Unequal Masses]]&lt;br /&gt;
*[[Scattering: Collisions in 2D and 3D]]&lt;br /&gt;
*[[Rutherford Experiment and Atomic Collisions]]&lt;br /&gt;
*[[Coefficient of Restitution]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Rotations====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Rotation]]&lt;br /&gt;
*[[Angular Velocity]]&lt;br /&gt;
*[[Eulerian Angles]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Angular Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Total Angular Momentum]]&lt;br /&gt;
*[[Translational Angular Momentum]]&lt;br /&gt;
*[[Rotational Angular Momentum]]&lt;br /&gt;
*[[The Angular Momentum Principle]]&lt;br /&gt;
*[[Angular Momentum Compared to Linear Momentum]]&lt;br /&gt;
*[[Angular Impulse]]&lt;br /&gt;
*[[Predicting the Position of a Rotating System]]&lt;br /&gt;
*[[Angular Momentum of Multiparticle Systems]]&lt;br /&gt;
*[[The Moments of Inertia]]&lt;br /&gt;
*[[Moment of Inertia for a cylinder]]&lt;br /&gt;
*[[Right Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Analyzing Motion with and without Torque====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Torque]]&lt;br /&gt;
*[[Torque 2]]&lt;br /&gt;
*[[Systems with Zero Torque]]&lt;br /&gt;
*[[Systems with Nonzero Torque]]&lt;br /&gt;
*[[Torque vs Work]]&lt;br /&gt;
*[[Gyroscopes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 15===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Introduction to Quantum Concepts====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Bohr Model]]&lt;br /&gt;
*[[Energy graphs and the Bohr model]]&lt;br /&gt;
*[[Quantized energy levels]]&lt;br /&gt;
*[[Quantized energy levels part II]]&lt;br /&gt;
*[[Entropy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Physics 2==&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====3D Vectors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Right Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric field====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Field]]&lt;br /&gt;
*[[Electric Field and Electric Potential]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric field of a point particle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Point Charge]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Superposition====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Superposition Principle]]&lt;br /&gt;
*[[Superposition principle]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Dipoles====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Dipole]]&lt;br /&gt;
*[[Magnetic Dipole]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Interactions of charged objects====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Field]]&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Tape experiments====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Polarization]]&lt;br /&gt;
*[[Electric Polarization]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Polarization====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Polarization]]&lt;br /&gt;
*[[Electric Polarization]]&lt;br /&gt;
*[[Polarization of an Atom]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Insulators====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Insulators]]&lt;br /&gt;
*[[Potential Difference in an Insulator]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Conductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Conductivity]]&lt;br /&gt;
*[[Charge Transfer]]&lt;br /&gt;
*[[Resistivity]]&lt;br /&gt;
*[[Polarization of a conductor]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Charging and discharging====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charge Transfer]]&lt;br /&gt;
*[[Electrostatic Discharge]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged rod====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Rod]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged ring/disk/capacitor====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Ring]]&lt;br /&gt;
*[[Charged Disk]]&lt;br /&gt;
*[[Charged Capacitor]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged sphere====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Spherical Shell]]&lt;br /&gt;
*[[Field of a Charged Ball]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Energy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric potential====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Path Independence of Electric Potential]]&lt;br /&gt;
*[[Potential Difference Path Independence, claimed by Aditya Mohile]] &lt;br /&gt;
*[[Potential Difference in a Uniform Field]]&lt;br /&gt;
*[[Potential Difference of Point Charge in a Non-Uniform Field]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Sign of a potential difference====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Sign of a Potential Difference]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential at a single location====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Potential Difference at One Location]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Path independence and round trip potential====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Path Independence of Electric Potential]]&lt;br /&gt;
*[[Potential Difference Path Independence, claimed by Aditya Mohile]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric field and potential in an insulator====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Difference in an Insulator]]&lt;br /&gt;
*[[Electric Field in an Insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Moving charges in a magnetic field====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Biot-Savart Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Biot-Savart Law]]&lt;br /&gt;
*[[Biot-Savart Law for Currents]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Moving charges, electron current, and conventional current====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Moving Point Charge]]&lt;br /&gt;
*[[Current]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a wire====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Long Straight Wire]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a current-carrying loop====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Loop]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a Charged Disk====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Disk]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic dipoles====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Dipole Moment]]&lt;br /&gt;
*[[Bar Magnet]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Atomic structure of magnets====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Atomic Structure of Magnets]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Steady state current====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Steady State]]&lt;br /&gt;
*[[Non Steady State]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Kirchoff&#039;s Laws====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Kirchoff&#039;s Laws]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric fields and energy in circuits====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Series circuit]]&lt;br /&gt;
*[[Node Rule]]&lt;br /&gt;
*[[Loop Rule]]&lt;br /&gt;
*[[Electric Potential Difference]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Macroscopic analysis of circuits====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Series Circuits]]&lt;br /&gt;
*[[Parallel Circuits]]&lt;br /&gt;
*[[Parallel Circuits vs. Series Circuits*]]&lt;br /&gt;
*[[Loop Rule]]&lt;br /&gt;
*[[Node Rule]]&lt;br /&gt;
*[[Fundamentals of Resistance]]&lt;br /&gt;
*[[Problem Solving]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric field and potential in circuits with capacitors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charging and Discharging a Capacitor]]&lt;br /&gt;
*[[RC Circuit]] &lt;br /&gt;
*[[R Circuit]]&lt;br /&gt;
*[[AC and DC]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic forces on charges and currents====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[Motors and Generators]]&lt;br /&gt;
*[[Applying Magnetic Force to Currents]]&lt;br /&gt;
*[[Magnetic Force in a Moving Reference Frame]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Analysis of Railgun vs Coil gun technologies]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric and magnetic forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[VPython Modelling of Electric and Magnetic Forces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Velocity selector====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[Combining Electric and Magnetic Forces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hall Effect====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Hall Effect]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Motional Emf]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Magnetic Torque]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Motional EMF====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Motional Emf]]&lt;br /&gt;
*[[Motional Emf using Faraday&#039;s Law]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic torque====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Torque]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Gauss&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Gauss&#039;s Flux Theorem]]&lt;br /&gt;
*[[Gauss&#039;s Law]]&lt;br /&gt;
*[[Magnetic Flux]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Ampere&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Ampere&#039;s Law]]&lt;br /&gt;
*[[Ampere-Maxwell Law]]&lt;br /&gt;
*[[Magnetic Field of Coaxial Cable Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Long Thick Wire Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Toroid Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Solenoid Using Ampere&#039;s Law]]&lt;br /&gt;
*[[The Differential Form of Ampere&#039;s Law]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Semiconductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Semiconductor Devices]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Faraday&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Faraday&#039;s Law]]&lt;br /&gt;
*[[Motional Emf using Faraday&#039;s Law]]&lt;br /&gt;
*[[Lenz&#039;s Law]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Maxwell&#039;s equations====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Gauss&#039;s Law]]&lt;br /&gt;
*[[Magnetic Flux]]&lt;br /&gt;
*[[Ampere&#039;s Law]]&lt;br /&gt;
*[[Faraday&#039;s Law]]&lt;br /&gt;
*[[Maxwell&#039;s Electromagnetic Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Circuits revisited====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Inductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Inductors]]&lt;br /&gt;
*[[Current in an LC Circuit]]&lt;br /&gt;
*[[Current in an RL Circuit]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 15===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
==== Electromagnetic Radiation ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electromagnetic Radiation]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Sparks in the air====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Sparks in Air]]&lt;br /&gt;
*[[Spark Plugs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Superconductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Superconducters]]&lt;br /&gt;
*[[Superconductors]]&lt;br /&gt;
*[[Meissner effect]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Physics 3==&lt;br /&gt;
&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Classical Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Special Relativity====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Frame of Reference]]&lt;br /&gt;
*[[Einstein&#039;s Theory of Special Relativity]]&lt;br /&gt;
*[[Time Dilation]]&lt;br /&gt;
*[[Einstein&#039;s Theory of General Relativity]]&lt;br /&gt;
*[[Albert A. Micheleson &amp;amp; Edward W. Morley]]&lt;br /&gt;
*[[Magnetic Force in a Moving Reference Frame]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Photons====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Spontaneous Photon Emission]]&lt;br /&gt;
*[[Light Scattering: Why is the Sky Blue]]&lt;br /&gt;
*[[Lasers]]&lt;br /&gt;
*[[Electronic Energy Levels and Photons]]&lt;br /&gt;
*[[Quantum Properties of Light]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Matter Waves====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Wave-Particle Duality]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Wave Mechanics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Standing Waves]]&lt;br /&gt;
*[[Wavelength]]&lt;br /&gt;
*[[Wavelength and Frequency]]&lt;br /&gt;
*[[Mechanical Waves]]&lt;br /&gt;
*[[Transverse and Longitudinal Waves]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Rutherford-Bohr Model====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Rutherford Experiment and Atomic Collisions]]&lt;br /&gt;
*[[Bohr Model]]&lt;br /&gt;
*[[Quantized energy levels]]&lt;br /&gt;
*[[Energy graphs and the Bohr model]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====The Hydrogen Atom====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Quantum Theory]]&lt;br /&gt;
*[[Atomic Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Many-Electron Atoms====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Quantum Theory]]&lt;br /&gt;
*[[Atomic Theory]]&lt;br /&gt;
*[[Pauli exclusion principle]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Molecules====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Statistical Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 11===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Condensed Matter Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====The Nucleus====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Nucleus]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Nuclear Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Nuclear Fission]]&lt;br /&gt;
*[[Nuclear Energy from Fission and Fusion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Particle Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Elementary Particles and Particle Physics Theory]]&lt;br /&gt;
*[[String Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
	<entry>
		<id>http://www.physicsbook.gatech.edu/index.php?title=Main_Page&amp;diff=31651</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://www.physicsbook.gatech.edu/index.php?title=Main_Page&amp;diff=31651"/>
		<updated>2018-04-18T21:49:37Z</updated>

		<summary type="html">&lt;p&gt;Jaeleeps: /* VPython */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= &#039;&#039;&#039;Georgia Tech Student Wiki for Introductory Physics.&#039;&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
This resource was created so that students can contribute and curate content to help those with limited or no access to a textbook.  When reading this website, please correct any errors you may come across. If you read something that isn&#039;t clear, please consider revising it for future students!&lt;br /&gt;
&lt;br /&gt;
Looking to make a contribution?&lt;br /&gt;
#Pick one of the topics from intro physics listed below&lt;br /&gt;
#Add content to that topic or improve the quality of what is already there.&lt;br /&gt;
#Need to make a new topic? Edit this page and add it to the list under the appropriate category.  Then copy and paste the default [[Template]] into your new page and start editing.&lt;br /&gt;
&lt;br /&gt;
Please remember that this is not a textbook and you are not limited to expressing your ideas with only text and equations.  Whenever possible embed: pictures, videos, diagrams, simulations, computational models (e.g. Glowscript), and whatever content you think makes learning physics easier for other students.&lt;br /&gt;
&lt;br /&gt;
== Source Material ==&lt;br /&gt;
All of the content added to this resource must be in the public domain or similar free resource.  If you are unsure about a source, contact the original author for permission. That said, there is a surprisingly large amount of introductory physics content scattered across the web.  Here is an incomplete list of intro physics resources (please update as needed).&lt;br /&gt;
* A physics resource written by experts for an expert audience [https://en.wikipedia.org/wiki/Portal:Physics Physics Portal]&lt;br /&gt;
* A wiki written for students by a physics expert [http://p3server.pa.msu.edu/coursewiki/doku.php?id=183_notes MSU Physics Wiki]&lt;br /&gt;
* A wiki book on modern physics [https://en.wikibooks.org/wiki/Modern_Physics Modern Physics Wiki]&lt;br /&gt;
* The MIT open courseware for intro physics [http://ocw.mit.edu/resources/res-8-002-a-wikitextbook-for-introductory-mechanics-fall-2009/index.htm MITOCW Wiki]&lt;br /&gt;
* An online concept map of intro physics [http://hyperphysics.phy-astr.gsu.edu/hbase/hph.html HyperPhysics]&lt;br /&gt;
* Interactive physics simulations [https://phet.colorado.edu/en/simulations/category/physics PhET]&lt;br /&gt;
* OpenStax intro physics textbooks: [https://openstax.org/details/books/university-physics-volume-1  Vol1], [https://openstax.org/details/books/university-physics-volume-2  Vol2], [https://openstax.org/details/books/university-physics-volume-3  Vol3]&lt;br /&gt;
* The Open Source Physics project is a collection of online physics resources [http://www.opensourcephysics.org/ OSP]&lt;br /&gt;
* A resource guide compiled by the [http://www.aapt.org/ AAPT] for educators [http://www.compadre.org/ ComPADRE]&lt;br /&gt;
* The Feynman lectures on physics are free to read [http://www.feynmanlectures.caltech.edu/ Feynman]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Commonly used wiki commands [https://en.wikipedia.org/wiki/Help:Cheatsheet Wiki Cheatsheet]&lt;br /&gt;
* A guide to representing equations in math mode [https://en.wikipedia.org/wiki/Help:Displaying_a_formula Wiki Math Mode]&lt;br /&gt;
* A page to keep track of all the physics [[Constants]]&lt;br /&gt;
* A page for review of [[Vectors]] and vector operations&lt;br /&gt;
* A listing of [[Notable Scientist]] with links to their individual pages &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
==Physics 1==&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Help with VPython====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Python Syntax]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Vectors and Units====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[SI Units]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====VPython====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[VPython]]&lt;br /&gt;
*[[VPython basics]]&lt;br /&gt;
*[[VPython Common Errors and Troubleshooting]]&lt;br /&gt;
*[[VPython Functions]]&lt;br /&gt;
*[[VPython Lists]]&lt;br /&gt;
*[[VPython Loops]]&lt;br /&gt;
*[[VPython Multithreading]]&lt;br /&gt;
*[[VPython Animation]]&lt;br /&gt;
*[[VPython Objects]]&lt;br /&gt;
*[[VPython 3D Objects]]&lt;br /&gt;
*[[VPython Material]]&lt;br /&gt;
*[[VPython Reference]]&lt;br /&gt;
*[[VPython MapReduceFilter]]&lt;br /&gt;
*[[VPython GUIs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Vectors and Units====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[SI Units]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Interactions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Types of Interactions and How to Detect Them]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Velocity and Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton&#039;s First Law of Motion]]&lt;br /&gt;
*[[Velocity]]&lt;br /&gt;
*[[Mass]]&lt;br /&gt;
*[[Speed and Velocity]]&lt;br /&gt;
*[[Relative Velocity]]&lt;br /&gt;
*[[Derivation of Average Velocity]]&lt;br /&gt;
*[[2-Dimensional Motion]]&lt;br /&gt;
*[[3-Dimensional Position and Motion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Momentum and the Momentum Principle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Momentum Principle]]&lt;br /&gt;
*[[Inertia]]&lt;br /&gt;
*[[Net Force]]&lt;br /&gt;
*[[Derivation of the Momentum Principle]]&lt;br /&gt;
*[[Impulse Momentum]]&lt;br /&gt;
*[[Acceleration]]&lt;br /&gt;
*[[Momentum with respect to external Forces]]&lt;br /&gt;
*[[Relativistic Momentum]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Iterative Prediction with a Constant Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton’s Second Law of Motion]]&lt;br /&gt;
*[[Iterative Prediction]]&lt;br /&gt;
*[[Kinematics]]&lt;br /&gt;
*[[Newton’s Laws and Linear Momentum]]&lt;br /&gt;
*[[Projectile Motion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Analytic Prediction with a Constant Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Analytical Prediction]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Iterative Prediction with a Varying Force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Predicting Change in multiple dimensions]]&lt;br /&gt;
*[[Spring Force]]&lt;br /&gt;
*[[Hooke&#039;s Law]]&lt;br /&gt;
*[[Simple Harmonic Motion]]&lt;br /&gt;
*[[Iterative Prediction of Spring-Mass System]]&lt;br /&gt;
*[[Terminal Speed]]&lt;br /&gt;
*[[Determinism]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Fundamental Interactions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Main Idea==&lt;br /&gt;
&lt;br /&gt;
*[[Gravitational Force]]&lt;br /&gt;
*[[Fluid Mechanics]]&lt;br /&gt;
*[[An Application of Gravitational Potential]]&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Reciprocity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Conservation of Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Conservation of Momentum]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Properties of Matter====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Kinds of Matter]]&lt;br /&gt;
*[[Ball and Spring Model of Matter]]&lt;br /&gt;
*[[Density]]&lt;br /&gt;
*[[Length and Stiffness of an Interatomic Bond]]&lt;br /&gt;
*[[Young&#039;s Modulus]]&lt;br /&gt;
*[[Speed of Sound in Solids]]&lt;br /&gt;
*[[Malleability]]&lt;br /&gt;
*[[Ductility]]&lt;br /&gt;
*[[Weight]]&lt;br /&gt;
*[[Hardness]]&lt;br /&gt;
*[[Boiling Point]]&lt;br /&gt;
*[[Melting Point]]&lt;br /&gt;
*[[Change of State]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Identifying Forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Free Body Diagram]]&lt;br /&gt;
*[[Inclined Plane]]&lt;br /&gt;
*[[Compression or Normal Force]]&lt;br /&gt;
*[[Tension]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Curving Motion====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Curving Motion]]&lt;br /&gt;
*[[Centripetal Force and Curving Motion]]&lt;br /&gt;
*[[Perpetual Freefall (Orbit)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Energy Principle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[The Energy Principle]]&lt;br /&gt;
*[[Conservation of Energy]]&lt;br /&gt;
*[[Kinetic Energy]]&lt;br /&gt;
*[[Work]]&lt;br /&gt;
*[[Power (Mechanical)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Work by Non-Constant Forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Work Done By A Nonconstant Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Energy]]&lt;br /&gt;
*[[Potential Energy of Macroscopic Springs]]&lt;br /&gt;
*[[Spring Potential Energy]]&lt;br /&gt;
*[[Ball and Spring Model]]&lt;br /&gt;
*[[Gravitational Potential Energy]]&lt;br /&gt;
*[[Energy Graphs]]&lt;br /&gt;
*[[Escape Velocity]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Multiparticle Systems====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Center of Mass]]&lt;br /&gt;
*[[Multi-particle analysis of Momentum]]&lt;br /&gt;
*[[Momentum with respect to external Forces]]&lt;br /&gt;
*[[Potential Energy of a Multiparticle System]]&lt;br /&gt;
*[[Work and Energy for an Extended System]]&lt;br /&gt;
*[[Internal Energy]]&lt;br /&gt;
**[[Potential Energy of a Pair of Neutral Atoms]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Choice of System====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[System &amp;amp; Surroundings]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Thermal Energy, Dissipation and Transfer of Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Thermal Energy]]&lt;br /&gt;
*[[Specific Heat]]&lt;br /&gt;
*[[Heat Capacity]]&lt;br /&gt;
*[[Calorific Value(Heat of combustion)]]&lt;br /&gt;
*[[Specific Heat Capacity]]&lt;br /&gt;
*[[First Law of Thermodynamics]]&lt;br /&gt;
*[[Second Law of Thermodynamics and Entropy]]&lt;br /&gt;
*[[Temperature]]&lt;br /&gt;
*[[Predicting Change]]&lt;br /&gt;
*[[Energy Transfer due to a Temperature Difference]]&lt;br /&gt;
*[[Transformation of Energy]]&lt;br /&gt;
*[[The Maxwell-Boltzmann Distribution]]&lt;br /&gt;
*[[Air Resistance]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Rotational and Vibrational Energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Translational, Rotational and Vibrational Energy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 11===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Different Models of a System====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Point Particle Systems]]&lt;br /&gt;
*[[Real Systems]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Models of Friction====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Friction]]&lt;br /&gt;
*[[Static Friction]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Collisions====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Newton&#039;s Third Law of Motion]]&lt;br /&gt;
*[[Collisions]]&lt;br /&gt;
*[[Elastic Collisions]]&lt;br /&gt;
*[[Inelastic Collisions]]&lt;br /&gt;
*[[Maximally Inelastic Collision]]&lt;br /&gt;
*[[Head-on Collision of Equal Masses]]&lt;br /&gt;
*[[Head-on Collision of Unequal Masses]]&lt;br /&gt;
*[[Scattering: Collisions in 2D and 3D]]&lt;br /&gt;
*[[Rutherford Experiment and Atomic Collisions]]&lt;br /&gt;
*[[Coefficient of Restitution]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Rotations====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Rotation]]&lt;br /&gt;
*[[Angular Velocity]]&lt;br /&gt;
*[[Eulerian Angles]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Angular Momentum====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Total Angular Momentum]]&lt;br /&gt;
*[[Translational Angular Momentum]]&lt;br /&gt;
*[[Rotational Angular Momentum]]&lt;br /&gt;
*[[The Angular Momentum Principle]]&lt;br /&gt;
*[[Angular Momentum Compared to Linear Momentum]]&lt;br /&gt;
*[[Angular Impulse]]&lt;br /&gt;
*[[Predicting the Position of a Rotating System]]&lt;br /&gt;
*[[Angular Momentum of Multiparticle Systems]]&lt;br /&gt;
*[[The Moments of Inertia]]&lt;br /&gt;
*[[Moment of Inertia for a cylinder]]&lt;br /&gt;
*[[Right Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Analyzing Motion with and without Torque====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Torque]]&lt;br /&gt;
*[[Torque 2]]&lt;br /&gt;
*[[Systems with Zero Torque]]&lt;br /&gt;
*[[Systems with Nonzero Torque]]&lt;br /&gt;
*[[Torque vs Work]]&lt;br /&gt;
*[[Gyroscopes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 15===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Introduction to Quantum Concepts====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Bohr Model]]&lt;br /&gt;
*[[Energy graphs and the Bohr model]]&lt;br /&gt;
*[[Quantized energy levels]]&lt;br /&gt;
*[[Quantized energy levels part II]]&lt;br /&gt;
*[[Entropy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Physics 2==&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====3D Vectors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Vectors]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Right Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric field====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Field]]&lt;br /&gt;
*[[Electric Field and Electric Potential]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric field of a point particle====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Point Charge]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Superposition====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Superposition Principle]]&lt;br /&gt;
*[[Superposition principle]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Dipoles====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Dipole]]&lt;br /&gt;
*[[Magnetic Dipole]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Interactions of charged objects====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Field]]&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Tape experiments====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Polarization]]&lt;br /&gt;
*[[Electric Polarization]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Polarization====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Polarization]]&lt;br /&gt;
*[[Electric Polarization]]&lt;br /&gt;
*[[Polarization of an Atom]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Insulators====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Insulators]]&lt;br /&gt;
*[[Potential Difference in an Insulator]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Conductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Conductivity]]&lt;br /&gt;
*[[Charge Transfer]]&lt;br /&gt;
*[[Resistivity]]&lt;br /&gt;
*[[Polarization of a conductor]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Charging and discharging====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charge Transfer]]&lt;br /&gt;
*[[Electrostatic Discharge]]&lt;br /&gt;
*[[Charged Conductor and Charged Insulator]]&lt;br /&gt;
*[[Charged conductor and charged insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged rod====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Rod]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged ring/disk/capacitor====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Ring]]&lt;br /&gt;
*[[Charged Disk]]&lt;br /&gt;
*[[Charged Capacitor]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Field of a charged sphere====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charged Spherical Shell]]&lt;br /&gt;
*[[Field of a Charged Ball]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential energy====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Energy]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric potential====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Path Independence of Electric Potential]]&lt;br /&gt;
*[[Potential Difference Path Independence, claimed by Aditya Mohile]] &lt;br /&gt;
*[[Potential Difference in a Uniform Field]]&lt;br /&gt;
*[[Potential Difference of Point Charge in a Non-Uniform Field]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Sign of a potential difference====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Sign of a Potential Difference]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Potential at a single location====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Potential]]&lt;br /&gt;
*[[Potential Difference at One Location]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Path independence and round trip potential====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Path Independence of Electric Potential]]&lt;br /&gt;
*[[Potential Difference Path Independence, claimed by Aditya Mohile]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric field and potential in an insulator====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Potential Difference in an Insulator]]&lt;br /&gt;
*[[Electric Field in an Insulator]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Moving charges in a magnetic field====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Biot-Savart Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Biot-Savart Law]]&lt;br /&gt;
*[[Biot-Savart Law for Currents]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Moving charges, electron current, and conventional current====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Moving Point Charge]]&lt;br /&gt;
*[[Current]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a wire====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Long Straight Wire]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a current-carrying loop====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Loop]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic field of a Charged Disk====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Field of a Disk]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic dipoles====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Dipole Moment]]&lt;br /&gt;
*[[Bar Magnet]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Atomic structure of magnets====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Atomic Structure of Magnets]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Steady state current====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Steady State]]&lt;br /&gt;
*[[Non Steady State]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Kirchoff&#039;s Laws====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Kirchoff&#039;s Laws]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric fields and energy in circuits====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Series circuit]]&lt;br /&gt;
*[[Node Rule]]&lt;br /&gt;
*[[Loop Rule]]&lt;br /&gt;
*[[Electric Potential Difference]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Macroscopic analysis of circuits====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Series Circuits]]&lt;br /&gt;
*[[Parallel Circuits]]&lt;br /&gt;
*[[Parallel Circuits vs. Series Circuits*]]&lt;br /&gt;
*[[Loop Rule]]&lt;br /&gt;
*[[Node Rule]]&lt;br /&gt;
*[[Fundamentals of Resistance]]&lt;br /&gt;
*[[Problem Solving]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Electric field and potential in circuits with capacitors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Charging and Discharging a Capacitor]]&lt;br /&gt;
*[[RC Circuit]] &lt;br /&gt;
*[[R Circuit]]&lt;br /&gt;
*[[AC and DC]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic forces on charges and currents====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[Motors and Generators]]&lt;br /&gt;
*[[Applying Magnetic Force to Currents]]&lt;br /&gt;
*[[Magnetic Force in a Moving Reference Frame]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Analysis of Railgun vs Coil gun technologies]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Electric and magnetic forces====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electric Force]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[VPython Modelling of Electric and Magnetic Forces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Velocity selector====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
*[[Combining Electric and Magnetic Forces]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hall Effect====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Hall Effect]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
*[[Motional Emf]]&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Magnetic Torque]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Motional EMF====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Motional Emf]]&lt;br /&gt;
*[[Motional Emf using Faraday&#039;s Law]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic force====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Force]]&lt;br /&gt;
*[[Lorentz Force]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Magnetic torque====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Magnetic Torque]]&lt;br /&gt;
*[[Right-Hand Rule]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Gauss&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Gauss&#039;s Flux Theorem]]&lt;br /&gt;
*[[Gauss&#039;s Law]]&lt;br /&gt;
*[[Magnetic Flux]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Ampere&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Ampere&#039;s Law]]&lt;br /&gt;
*[[Ampere-Maxwell Law]]&lt;br /&gt;
*[[Magnetic Field of Coaxial Cable Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Long Thick Wire Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Toroid Using Ampere&#039;s Law]]&lt;br /&gt;
*[[Magnetic Field of a Solenoid Using Ampere&#039;s Law]]&lt;br /&gt;
*[[The Differential Form of Ampere&#039;s Law]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Semiconductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Semiconductor Devices]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Faraday&#039;s Law====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Faraday&#039;s Law]]&lt;br /&gt;
*[[Motional Emf using Faraday&#039;s Law]]&lt;br /&gt;
*[[Lenz&#039;s Law]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Maxwell&#039;s equations====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Gauss&#039;s Law]]&lt;br /&gt;
*[[Magnetic Flux]]&lt;br /&gt;
*[[Ampere&#039;s Law]]&lt;br /&gt;
*[[Faraday&#039;s Law]]&lt;br /&gt;
*[[Maxwell&#039;s Electromagnetic Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Circuits revisited====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Inductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Inductors]]&lt;br /&gt;
*[[Current in an LC Circuit]]&lt;br /&gt;
*[[Current in an RL Circuit]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 15===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
==== Electromagnetic Radiation ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Electromagnetic Radiation]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Sparks in the air====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Sparks in Air]]&lt;br /&gt;
*[[Spark Plugs]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Superconductors====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Superconducters]]&lt;br /&gt;
*[[Superconductors]]&lt;br /&gt;
*[[Meissner effect]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; width:30%; padding:1%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Physics 3==&lt;br /&gt;
&lt;br /&gt;
===Week 1===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Classical Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 2===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Special Relativity====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Frame of Reference]]&lt;br /&gt;
*[[Einstein&#039;s Theory of Special Relativity]]&lt;br /&gt;
*[[Time Dilation]]&lt;br /&gt;
*[[Einstein&#039;s Theory of General Relativity]]&lt;br /&gt;
*[[Albert A. Micheleson &amp;amp; Edward W. Morley]]&lt;br /&gt;
*[[Magnetic Force in a Moving Reference Frame]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 3===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Photons====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Spontaneous Photon Emission]]&lt;br /&gt;
*[[Light Scattering: Why is the Sky Blue]]&lt;br /&gt;
*[[Lasers]]&lt;br /&gt;
*[[Electronic Energy Levels and Photons]]&lt;br /&gt;
*[[Quantum Properties of Light]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 4===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Matter Waves====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Wave-Particle Duality]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 5===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Wave Mechanics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Standing Waves]]&lt;br /&gt;
*[[Wavelength]]&lt;br /&gt;
*[[Wavelength and Frequency]]&lt;br /&gt;
*[[Mechanical Waves]]&lt;br /&gt;
*[[Transverse and Longitudinal Waves]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 6===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Rutherford-Bohr Model====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Rutherford Experiment and Atomic Collisions]]&lt;br /&gt;
*[[Bohr Model]]&lt;br /&gt;
*[[Quantized energy levels]]&lt;br /&gt;
*[[Energy graphs and the Bohr model]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 7===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====The Hydrogen Atom====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Quantum Theory]]&lt;br /&gt;
*[[Atomic Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 8===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Many-Electron Atoms====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Quantum Theory]]&lt;br /&gt;
*[[Atomic Theory]]&lt;br /&gt;
*[[Pauli exclusion principle]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 9===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Molecules====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 10===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Statistical Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 11===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Condensed Matter Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 12===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====The Nucleus====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Nucleus]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 13===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Nuclear Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Nuclear Fission]]&lt;br /&gt;
*[[Nuclear Energy from Fission and Fusion]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Week 14===&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
====Particle Physics====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
*[[Elementary Particles and Particle Physics Theory]]&lt;br /&gt;
*[[String Theory]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaeleeps</name></author>
	</entry>
</feed>