<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
We have 1 After Effects Assignment:

''An important part about audio''. If you wish to show your work on the web it is best to use your own music or music in the public domain. Youtube has audio analyzers to located copyrighted music. It then inserts an ad while playing your video. If you use audio from a movie(like talking) that usually will not get flagged.

''Proper render format'':The following image describes how to export your file from the render Que. The .h264 format is a Microsoft codec and delivers satisfactory quality in a small file size. You would want to save an uncompressed version for yourself.

''Bitrate'': You usually have to increase the bitrate, which is on the right of the .h264 tab,  ''FORMAT OPTIONS''. With fast moving animation you will get motion blocking which distorts the animation. Increasing the bitrate will increase the filesize but make a much nicer render.

In After Effects:
''//Composition->Add To Render Que//''
[img[Important: Use .h264 from render que|http://facultypages.scad.edu/~dkaul/tiddly_images/ae_save_format.gif]]]


[[Some Great tutorials from video copilot|http://www.videocopilot.net/tutorials]]

[img[Click to see After Effects Examples|http://i2.ytimg.com/vi/9n7YzPpW9-g/1.jpg][http://facultypages.scad.edu/~dkaul/after_effects_video.html]]
Click the above image to see examples
{{{
// Francis Unger
// Spiral G
//
// 2.9.09
//
// This creates a user interface that enables the artist to create recursive antennas.
// An extra attribute is added to the parent called 'twist' which can be keyframed.
//
//
// Problems:
// 1. getting the UI window to not repeat itself
// 2. prevent object creation overlap
// 3. create a simple yet appealing user interface and logical placement of extra attributes
// 
//  Breakthroughs:
//  1. renaming the parent with a single 'rename' command and using namespaces
//  2. adding the attribute(slider) to the parent BEFORE the children are created, THEN the expression
//
//  What I could improve:
//  1. make proceedures for the command when pressing the button!
//  2. make an offset for the length slider so the numbers read more user friendly
//
// notes:
// namespace is HUGE...this tells Maya to start adding numbers to the name
//
//
//

if (`namespace -exists "SpiralG_child"`){
print "The name SpiralG_child already exists_therefore I will not create it again.";
}
else{ namespace -add "SpiralG_child";
}

$location = 0;

// base proceedure for creating the antenna as seen in MEL scripting book

proc makeAntenna(string $parentSphereName, float $parentRadius, 
                 float $rotAngle, float $scale, int $firstSphere)

{
   if ($firstSphere)
   {
      polySphere -name $parentSphereName;
      scale $parentRadius $parentRadius $parentRadius;
   }
   select -r $parentSphereName;
   string $duplicateName[] = `instance`;
   string $childSphereName = $duplicateName[0];
   select -cl;  // Clear out the selection
   select $childSphereName $parentSphereName;  // select the child, 
                                               // then the parent
   parent;
   select $childSphereName;
   float $childSize = $scale * $parentRadius;
   scale $scale 
         $scale
         $scale;
   move -localSpace (1 + $scale) 0 0;
   select $parentSphereName;
addAttr -ln "twist" -at double  -min -60 -max 60 -dv 0;
setAttr -e-keyable true ".twist";

   rotate 0 0 $rotAngle; 
   if ($childSize > 0.05)
   {

makeAntenna ($childSphereName, $childSize, $rotAngle, $scale, 0);
select $childSphereName;

expression -s ($childSphereName+".rotateZ=|spiral.twist;")   -ae 1 -uc all;
rename "SpiralG_child";
   }
select $parentSphereName;
//rename $parentSphereName "Spiral_Sphere_1";
}

// CONE version

proc makeAntennaCone(string $parentConeName, float $parentRadius, 
                 float $rotAngle, float $scale, int $firstCone)

{
   if ($firstCone)
   {
      polyCone -name $parentConeName -ax 1 0 0;  //change the axis so the polyCones are arranged correctly
      scale $parentRadius $parentRadius $parentRadius;
   }
   select -r $parentConeName;
   string $duplicateName[] = `instance`;
   string $childConeName = $duplicateName[0];
   select -cl;  // Clear out the selection
   select $childConeName $parentConeName; 
   parent;
   select $childConeName;
   float $childSize = $scale * $parentRadius;
   scale $scale 
         $scale
         $scale;
   move -localSpace (1 + $scale) 0 0;
   select $parentConeName;
		addAttr -ln "twist" -at double  -min -60 -max 60 -dv 0;
		setAttr -e-keyable true ".twist";
   rotate 0 0 $rotAngle; 
   if ($childSize > 0.05)
   {

makeAntenna ($childConeName, $childSize, $rotAngle, $scale, 0);
select $childConeName;
expression -s ($childConeName+".rotateZ=|spiral.twist;")   -ae 1 -uc all;
rename "SpiralG_child";
   }
select $parentConeName;
}
// Cube Version

proc makeAntennaCube(string $parentCubeName, float $parentRadius, 
                 float $rotAngle, float $scale, int $firstCube)

{
   if ($firstCube)
   {
      polyCube -name $parentCubeName;
      scale ($parentRadius+0.3) $parentRadius $parentRadius;
   }
   select -r $parentCubeName;
   string $duplicateName[] = `duplicate`;
   string $childCubeName = $duplicateName[0];
   select -cl; 
   select $childCubeName $parentCubeName;  
   parent;
   select $childCubeName;
   float $childSize = $scale * $parentRadius;
   scale $scale
         $scale
         $scale;
   move -localSpace (1+$scale) 0 0;
   select $parentCubeName;
addAttr -ln "twist" -at double  -min -60 -max 60 -dv 0;
setAttr -e-keyable true ".twist";
   rotate 0 0 $rotAngle;   
   if ($childSize > 0.05)
   {
      makeAntenna ($childCubeName, $childSize, $rotAngle, $scale, 0);
select $childCubeName;
expression -s ($childCubeName+".rotateZ=|spiral.twist;")   -ae 1 -uc all;
rename "SpiralG_child";
}
select $parentCubeName;
}

// Window UI
//
// run a test to see whether the window is already opened
// buttons with names was unappealing so I looked up 'button' and found 'symbolButton'..
// it was necessary to google a tutorial about custom icons and discovered Maya's can be recalled
//
// tutorial for icons found here:
// http://accad.osu.edu/~xchang/753/hw3/mel_tutorial.html

if (`window -exists SpiralGWindow`) { deleteUI -window SpiralGWindow; }
window -rtf true -s false -title "SpiralG" SpiralGWindow;

$name="spiral";
      columnLayout;
	text "Parameters";

// here I wanted more decimal points for greater variations
// I noticed when looking up floatSliderGrp that it had a 'pre' flag to determine precision or
// decimal places
		$length_int= `floatSliderGrp
			-pre 3
			-value 0.75
			-minValue 0.65
			-maxValue 0.95
			-fieldMinValue 0.65
			-fieldMaxValue 0.95
			-field 1
			- ann "Controls the length of the arms."
			-label "Length"`;

$translationGroup = `floatFieldGrp -numberOfFields 3
    -label "Position XYZ"
    -value1 0.0 -value2 0.0 -value3 0.0`;

$rotationGroup = `floatFieldGrp -numberOfFields 3
    -label "Rotation XYZ"
    -value1 0.0 -value2 0.0 -value3 0.0`;

	separator -height 30 -width 440;

// buttons need a better method due to it's large command!

  rowLayout -nc 6;
text "  Create";
	symbolButton -image "sphere.xpm" -command "makeAntenna ($name, 1,0, `floatSliderGrp -query -value $length_int`, 1);\nrename SpiralG_Sphere;\nmove -r -x `floatFieldGrp -q -value1 $translationGroup` -y `floatFieldGrp -q -value2 $translationGroup` -z `floatFieldGrp -q -value3 $translationGroup`;\nrotate -r -x `floatFieldGrp -q -value1 $rotationGroup`-y `floatFieldGrp -q -value2 $rotationGroup` -z -y `floatFieldGrp -q -value3 $rotationGroup`";
	symbolButton -image "cone.xpm" -command "makeAntennaCone ($name, 1, 0, `floatSliderGrp -query -value $length_int`, 1);\nrename SpiralG_Cone;\nmove -r -x `floatFieldGrp -q -value1 $translationGroup` -y `floatFieldGrp -q -value2 $translationGroup` -z `floatFieldGrp -q -value3 $translationGroup`;\nrotate -r -x `floatFieldGrp -q -value1 $rotationGroup`-y `floatFieldGrp -q -value2 $rotationGroup` -z -y `floatFieldGrp -q -value3 $rotationGroup`";

	symbolButton -image "cube.xpm" -command "makeAntennaCube ($name, 1, 0,`floatSliderGrp -query -value $length_int`, 1);\nrename SpiralG_Cube;\nmove -r -x `floatFieldGrp -q -value1 $translationGroup` -y `floatFieldGrp -q -value2 $translationGroup` -z `floatFieldGrp -q -value3 $translationGroup`;\nrotate -r -x `floatFieldGrp -q -value1 $rotationGroup`-y `floatFieldGrp -q -value2 $rotationGroup` -z -y `floatFieldGrp -q -value3 $rotationGroup`";

// here i learned that typically you use quotes around a rename string, well, not necessary in the command flag - it's already within a string, string w/in a string


	button -label "Undo" -command "undo";

showWindow SpiralGWindow;

// This has been an adventure, and I'd do it again for the accomplishment.
// END OF LINE




}}}
{{{
// This script allows for the creation of cube, cone, or sphere antennea
// The custom interface allows for adjusting of the radius, name, rotation Angle,
// and scale increment. 
// KA
// In order to use this script, simply type in makeAntennaUI. It's THAT easy!!

proc makeAntenna(string $parentSphereName, float $parentRadius,
float $rotAngle, float $scale, int $firstSphere, int $type)

{

if ($firstSphere)
{
  switch ($type) {

// Set up the creation of multiple objects

	case 1:
	string $newobjectname[] = `sphere -name $parentSphereName`;
	$parentSphereName = $newobjectname[0];
	break;
	
	case 2:
	string $newobjectname[] = `cone -name $parentSphereName`;
	$parentSphereName = $newobjectname[0];
	break;

	case 3:
	string $newobjectname[] = `polyCube -name $parentSphereName`;
	$parentSphereName = $newobjectname[0];
	break;

  }
	scale $parentRadius $parentRadius $parentRadius;
}

select -r $parentSphereName;
string $duplicateName[] = `duplicate`;

string $childSphereName = $duplicateName[0];

select -cl; // Clear out the selection
select $childSphereName $parentSphereName; // select the child,
// then the parent
parent;
select $childSphereName;

float $childSize = $scale * $parentRadius;

scale $scale
$scale
$scale;

move -localSpace (1 + $scale) 0 0;

select $parentSphereName;
rotate 0 0 $rotAngle; // rotate around Z, because we're moving in X.

if ($childSize > 0.05)
{
makeAntenna ($childSphereName, $childSize, $rotAngle, $scale, 0, $type);
}
}




//get dem buttons workin



proc buttonAction1 (int $type, string $nameField, string $radiusSliderName, string $rotAngleSlider, string $ScaleSliderInc)
{

$parentSphereName = `textFieldGrp -q -text $nameField`;
$parentRadius = `floatSliderGrp -q -v $radiusSliderName`;
$rotAngle = `floatSliderGrp -q -v $rotAngleSlider`;
$scale = `floatSliderGrp -q -v $ScaleSliderInc`;

//makeAntenna ($parentSphereName, $parentRadius, $rotAngle, $scale, 1,1);

switch ($type) {

case 1:
makeAntenna ($parentSphereName, $parentRadius, $rotAngle, $scale, 1, 1); 
break;

case 2:
makeAntenna ($parentSphereName, $parentRadius, $rotAngle, $scale, 1, 2); 
break;

case 3:
makeAntenna ($parentSphereName, $parentRadius, $rotAngle, $scale, 1, 3); 
break;


	}
}



proc makeAntennaUI(){

// these global strings are here as a solution to a VERY strange error.
// if they weren't here, the script would cease working each time it is changed.
global string $nameField2;
global string $radiusSlider;
global string $rotAngle2;
global string $scaleSlider;

string $window_name = `window -title "Antenna Creation Dialog"
	-menuBar true
	-rtf true
	-widthHeight 483 203`;

// everything after here goes into the window

columnLayout;
frameLayout -collapsable true -label "Set Name and Size"
	-width 475;
columnLayout;

// set the initial sphere name and scale
$nameField2 = `textFieldGrp -label "Input Name" -text "Fuzzikins"`;
$radiusSlider = `floatSliderGrp -minValue -100
	-maxValue 100.0
	-label "Radius:"
	-field true
	-v 1`;

	setParent ..;
setParent ..;


frameLayout -collapsable true -label "Set Rotation Angle"
	-width 475;

columnLayout;
$rotAngle2 = `floatSliderGrp -min -50
	-max 60
	-label "Rotation angle:"
	-v 5
	-field true`;

$scaleSlider = `floatSliderGrp -min .1
	-max 0.9
	-label "Scale Increment:"
	-v .1
	-field true`;

frameLayout -collapsable true -label "Antenna Creation"
	-width 475;

rowColumnLayout -nc 4;
	button -label "Sphere Antenna" -command "buttonAction1 (1, $nameField2, $radiusSlider, $rotAngle2, $scaleSlider)";
	button -label "Cone Antenna" -command "buttonAction1 (2, $nameField2, $radiusSlider, $rotAngle2, $scaleSlider)";
	button -label "Cube Antenna" -command "buttonAction1 (3, $nameField2, $radiusSlider, $rotAngle2, $scaleSlider)";
	button -label "Invisible Antenna";

showWindow $window_name;
}

// type in makeAntennaUI in order to run this script.

// Not intended for small children, or women who are pregnant, or may become pregnant. 
// Not to be used as a floatation device.
// Warning: small parts, choking hazard!
// Highly flammable; do not use near open flame.
}}}

!!!Here is another example
{{{

//Window Antenna CN

//Assignment 3 _Example

string $window_name = `window -title "Window 1" 
                              -menuBar true 
                              -widthHeight 483 203`;

  // Everything below this point goes in the window we've just made, but
  // it's not displayed until we get to the showWindow command below.

   rowColumnLayout -nc 4;

//Cylinder Procedure

$firstCylinder = "CCylinder";

      button -label "Cylinder"
	-command "makeCylinder($firstCylinder, 5, 45, 0.75, 3)";

proc makeCylinder(string $parentCylinderName, float $parentRadius, 
                 float $rotAngle, float $scale, int $firstCylinder)

{

   if ($firstCylinder)
   {
      cylinder -name $parentCylinderName;
      scale $parentRadius $parentRadius $parentRadius;
   }

   select -r $parentCylinderName;
   string $duplicateName[] = `duplicate`;

   string $childCylinderName = $duplicateName[0];

   select -cl;  // Clear out the selection
   select $childCylinderName $parentCylinderName; 
                                               
   parent;
   select $childCylinderName;

   float $childSize = $scale * $parentRadius;

   scale $scale 
         $scale
         $scale;

   move -localSpace (1 + $scale) 0 0;

   select $parentCylinderName;
   rotate 0 0 $rotAngle;   // rotate around Z, because we're moving in X.

   if ($childSize > 0.05)
   {
      makeCylinder ($childCylinderName, $childSize, $rotAngle, $scale, 0);
   }
}

 
 // Sphere Procedure    

$firstSphere = "SSphere";

      button -label "Sphere"
	-command "makeSphere($firstSphere, 7, 56, 0.75, 6)";

proc makeSphere(string $parentSphereName, float $parentRadius, 
                 float $rotAngle, float $scale, int $firstSphere)

{

   if ($firstSphere)
   {
      sphere -name $parentSphereName;
      scale $parentRadius $parentRadius $parentRadius;
   }

   select -r $parentSphereName;
   string $duplicateName[] = `duplicate`;

   string $childSphereName = $duplicateName[0];

   select -cl;  // Clear out the selection
   select $childSphereName $parentSphereName;  // select the child, 
                                               // then the parent
   parent;
   select $childSphereName;

   float $childSize = $scale * $parentRadius;

   scale $scale 
         $scale
         $scale;

   move -localSpace (1 + $scale) 0 0;

   select $parentSphereName;
   rotate 0 0 $rotAngle;   // rotate around Z, because we're moving in X.

   if ($childSize > 0.05)
   {
      makeSphere ($childSphereName, $childSize, $rotAngle, $scale, 0);
   }
}

//Torus Procedure 
     
$firstTorus = "TTorus";

      button -label "Torus"
	-command "makeTorus($firstTorus, 2, 10, 0.75, 5)";

proc makeTorus(string $parentTorusName, float $parentRadius, 
                 float $rotAngle, float $scale, int $firstTorus)

{

   if ($firstTorus)
   {
      torus -name $parentTorusName;
      scale $parentRadius $parentRadius $parentRadius;
   }

   select -r $parentTorusName;
   string $duplicateName[] = `duplicate`;

   string $childTorusName = $duplicateName[0];

   select -cl;  // Clear out the selection
   select $childTorusName $parentTorusName;  // select the child, 
                                               // then the parent
   parent;
   select $childTorusName;

   float $childSize = $scale * $parentRadius;

   scale $scale 
         $scale
         $scale;

   move -localSpace (1 + $scale) 0 0;

   select $parentTorusName;
   rotate 0 0 $rotAngle;   // rotate around Z, because we're moving in X.

   if ($childSize > 0.05)
   {
      makeTorus ($childTorusName, $childSize, $rotAngle, $scale, 0);
   }
}


// Show the dialog box we've just built

showWindow $window_name;  // Ends the creation of the rowColumnLayout, the 
                          // enclosing columnLayout, and the window.
}}}
<html><img src="http://facultypages.scad.edu/~dkaul/images/dave_headshot.jpg" align="left">As a 12 year old Dave Kaul wrote his first computer adventure game on a Radio Shack Computer, leading him to a life of computer graphics.

<p>
 He graduated from Syracuse University in 1993 with a B.F.A. in Computer Graphics and an M.F.A. in Media Art from The Ohio State University in 1995.</p>

<p>He has interned at George Lucas’s Industrial Light and Magic, worked at Oscar Winning Metrolight Studios, animated/designed at Fisher-Price and is currently a professor of Visual Effects at The Savannah College of Art And Design.</p>

<p>Dave has worked on a Dodge commercial that premiered at the 1995 Superbowl and was a key designer on the Mask CDROM. Dave was also a digital product designer and has many Fisher-Price toys to his credit, including the popular All In One adventure series.</p>

<p>Dave has lectured in Taiwan on MEL and Maya Dynamics, is a Siggraph contributor and an award winning animator. He is also a certified Autodesk instructor in Maya.</p>

In addition, Dave owned a digital media company that specialized in 3D computer generated visualization and animation services. His clients included Fisher Price, Meyer & Heitmann architects and the Savannah Airport commission. Dave brings a wealth of skill and expertise to the area of 3D visualization and guides students to achieve their maximum potential in their careers.</html>

He lives with his wife, [[Lauren Lapointe|http://laurenl.com]] and their 3 cats.



/%[img[In a Montreal Coffee Shop over Christmas Break|http://facultypages.scad.edu/~dkaul/images/dave_coffee.jpg]] %/
{{{
@@color(green):I am not sure how much Flash we will get to this quarter but I will try to get some for your websites.@@
}}}


This example works with a black and white image. How would you get it to work with a green image and black image, where green puts on bricks?

Bonus challenge, add another greyscale image the plots the bricks on y position based on the value of the image. For instance, white  means bricks placed higher and black means placed on the 0 y value


{{{
// Brick generator version 1.0 Dave Kaul
// This script will take a black and white image and
// place bricks in the white area
// 1. Make a file1 texture node in the hypershade
// 2. Add a black and white file texture to it
// 3. Make a red colored lambert shader called brick(rename the SG, shading  group)
// 4. Make a white colored lambert shader called mortar(rename the SG, shading  group)


// $densityOfBricks is the amount of bricks that are placed
// Higher density less dense the bricks. Default is 0.485
// $animate animates the bricks if true. All bricks at once if false
$densityOfBricks=.485;
$animate=true;

// $i is the increment of animating bricks
// $brickOffset is the amount added to position of the bricks
// to stagger them every other line
// $brickSlide offsets the brick every other row to stack them
$brickOffset=0.0;
$i=0;
$brickSlide=0;

// Make a grid of bricks from 0-100 on the x and z

for ($k=0.0;$k<=10;$k=$k+($densityOfBricks - .25)){
           // Set brickSlide to .25 for every other line of bricks
           // This could be done with less code I think
           if ($brickSlide==1){
                $brickOffset=.25;
                $brickSlide=0;
                }
           else{
                $brickSlide=1;
                $brickOffset=0;
                }
                
           for ($j=0.0;$j<=10;$j=$j+($densityOfBricks)){
                $i++;
                // $colorOfPoint make this script possible. It gets
                // the color of a texture based on uv from 0-1
                $colorOfPoint=`colorAtPoint -o RGB -u ($j/10) -v ($k/10) file1`; 
                
                // If red value is > .1 then make brick   
                if ($colorOfPoint[1] >.1){   
                    //Make brick
                    polyCube -w .45 -h .1 -d .20;
                    move ($j+$brickOffset) (0) ($k);
                    //sets -e -forceElement brick1;
                    //Make Mortar and offset
                    polyCube -w .45 -h .075 -d .2;
                    move ($j-.04+$brickOffset) (0) ($k-.04);
                    //sets -e -forceElement mortar1;
                    
                    // If $animate is true set the current frame after each brick
                    if ($animate)
                        currentTime $i;
                }
            }
}
}}}

!!![[Google Slides Presentation |https://docs.google.com/presentation/d/13amGynTMmsnW-t_7dl4cIXMkWgUgrj26DSegSOSZpX0/edit?usp=sharing]]

[img[Click to see absurd collage examples|https://facultypages.scad.edu/~dkaul/images/absurd.jpg][http://facultypages.scad.edu/~dkaul/comp_page.html]]
[img[Click to see Bluray examples|https://facultypages.scad.edu/~dkaul/bluray_images/bluray_hbresh20_small.jpg][http://facultypages.scad.edu/~dkaul/bluray_page.html]]
[img[Click to see Logo examples|https://facultypages.scad.edu/~dkaul/images/logos_2013/logo2013_small.jpg][http://facultypages.scad.edu/~dkaul/logos_2013.html]]

Photoshop
Illustrator Creature Due

More work with Adobe InDesign. We will look at online sources of graphic design. We will begin to make our 3 page pdf/swf movie.

Some notes on InDesign:
To see if buttons are rolling over: file-export as interactive pdf

pick object-interactive-convert to button

to make rollover with different image. make a jpg. place the rollover jpg somwehere else. click on the rollover button in the button menu. paste into

!!!! [[Download a sample pdf|http://facultypages.scad.edu/~dkaul/images/sample_indesign.pdf]]


We will now go over page layout with Adobe inDesign and will look at basic text and image design using InDesign.
This will be a 3 page document much like a magazine article and will be exported as a pdf. Interactivity is optional. Interactivity can include rollovers and video.

Hotkeys- Shift-W toggles presentation mode

curves wrap text same as in Illustrator
File-Place to put images in
Type-Create outlines if you are using a font that is not standard
To use type: You must first make a shape or a path. Can use the pen tool as in Illustrator
File-New Document- make sure to have pages-facing checked off if you don't want 2 pages side by side.

To make a pdf that has 2 pages side by side, make sure you have it set like that in pages area and export pdf-print- and check spread, otherwise they will be 1,2,3 separate

Have layers like Illustrator and can make gradient backgrounds using rectangles!!!!3 Page interactive InDesign pdf due
Word:  review of resumes, cover Letters and business Cards: We will look at many
examples. Look at both good and bad examples of the cover letters and resumes.


We will now be working on wordprocessing with Microsoft Word and designing resumes,
cover letters, and business cards.
Indesign Due



!!!!Work with Website



!8 minute video I made of simple site. 
http://www.youtube.com/watch?v=WwGjJYXbFG4

''We will now make a simple html rollover page:''

''Photoshop'':You will make slices of the page
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20007.png]]

And file->Save for web and devices
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20015.png]]

''Dreamweaver:''We will make a basic slice based website with rollovers. This basic site will use tables, which is an older technique but good if you need to create something quick.

In Dreamweaver make sure to use a border value  of zero when making slices; Otherwise the table will not fit together.
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20006.png]]

Also, use the live update button so you can preview your work without having to preview in a browser
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20026.png]]

In Dreamweaver you link to another page here:
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20008.png]]

In Dreamweaver if using tables you can align in the center by click the table and:
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20009.png]]

In Dreamweaver you create a rollover from this menu(You have to have already saved 2 versions of the button).
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20014.png]]


Learn more web design techniques. 

I want to make sure everyone is able to float their site above the background
We will be learning div tags, which are like layers in
Photoshop. Very effective. The next class we will have to have a basic website due and
uploaded to studentpages.scad.edu. Like in the first class we had.
!!!!IMPORTANT: Basic test site working DUE today online
We should all be set on how to complete a basic site. We will now focus
on making our site better and improve the functionality
Publishing to Web. We will make sure the site is organized properly to publish.
Work on Resume
 Then we will do some basic Photoshop work in class. Make Record, with grouping. Layer Masks. Adjustment layers. Using polygonal lasso and quick mask to select. Blend if to composite different sky over marsh for sky replacement. Content aware tool to fill in tugboat image. We will do a basic underwater composite and use pen tool to cut out creatures.

!!!Hotkeys/techniques
*Alt-Shift to select a circle starting at the center
*Select->modify->expand to expand selection
*Ctrl-D to deselect, ctr;-h to hide selection
*Ctrl-G to group layers. Control multiple layers as one layer.
*Q to toggle quickmask
*X to toggle between foreground and background color

!!!Class outcomes
*Learn layers in Photoshop
*Adjustment Layers
*Layer Masks
*Grouping
*Different selection methods(pen, quickmask)
Resume Due and meet at Locos



We will also do the post test. If there is time we will celebrate at [[Locos|http://www.locosgrill.com/locations/15/Savannah]]
!!!!Digital Composite DUE

We will cover more photoshop work and assign the put yourself in History. Clone stamp tool. Healing Brush tool. We will do the [[Bird Girl Tutorial|http://photoshoptutorials.ws/photoshop-tutorials/photo-manipulation/the-maiden-and-hummingbird-photo-manipulation.html]]

!!!Overlay modes with hawk on branch
*Duplicate the hawk picture. lighten up the new layer. add gausian blur to it as well. Use multiply for overlay method. Makes a painterly feel
http://www.luminous-landscape.com/tutorials/gaussian.shtml

!!!Tilt Shift
http://www.tiltshiftphotography.net/photoshop-tutorial.php

!!!Class outcomes:
*Do Maiden and Hummingbird tutorial(In-Class only:Not graded)
*Review the history images
*Do the simple Overlay and tiltshift tutorials
*Clone Stamp
*Healing brush
*Content Aware Tool
*Blend-if
Photoshop
!!!!Put yourself in History assignment DUE

We will now cover Illustrator. The 2 assignments are the logo and the creature. We will begin
by making basic designs with Illustrator, such as the RSS and Facebook logo.
Illustrator: We will go over expanding the appearance. Go over using curves properly. Union,
difference. Using fonts properly. The logo assignment should have various styles.

 We will cover Illustrator. The 2 assignments are the logo and the creature. We will begin by making basic designs with Illustrator, such as the RSS and Facebook logo. We will go over expanding the appearance. Go over using curves properly

[[Tutorial page|https://docs.google.com/document/pub?id=1v_SRMS0u1-7dcPkryAX824_FQ6r6aQpNgzEXBrAE-mQ]]
[[Assignment page|https://docs.google.com/document/pub?id=1sBQxny088cYzXe8UZz6-m9zD_MWvok2yEPcyIfdT8jo]]

!!!Class Outcome:
*Have a solid understanding of curves
*Do the balloon, digital clock(with gradient mesh)
*Do a button
*Expand Appearance
Illustrator
!!!!Illustrator Logo DUE:

Illustrator Logo DUE: We will continue our use of Illustrator and look at various logos and the
creatures. We will do some 3d Illustrator icons. Will make the clock radio. Keep in mind I will
need sketches of the creature as an invisible layer when you do that assignment.
!!!!Illustrator Creature DUE.


!!![[List of assignments and due dates|https://docs.google.com/document/d/1wSD4iTOEa3MNqPFRRxn_JHVxUSBymHcF689i0Zlk5BQ/edit?usp=sharing]]
!!![[Google Slides presentation|https://docs.google.com/presentation/d/10sITKs-dcUKpobGlzKcmYmTHzVzZte5fvy99ntYax70/edit?usp=sharing]]

[img[Click to see Maya examples|https://facultypages.scad.edu/~dkaul/maya_images/mayascene_garice21_small.jpg][http://facultypages.scad.edu/~dkaul/maya_images_page.html]]

[img[Click to see Bluray examples|https://facultypages.scad.edu/~dkaul/bluray_images/bluray_hbresh20_small.jpg][http://facultypages.scad.edu/~dkaul/bluray_page.html]]

[img[Click to see After Effects examples|https://facultypages.scad.edu/~dkaul/images/after_effects_image.jpg][http://www.youtube.com/watch?v=m07faNYDZMM&list=PLADC3626468A30896]]

[img[Click to see website examples|https://facultypages.scad.edu/~dkaul/images/web_image.jpg][Dreamweaver]]

[img[Click to see Creature examples|https://facultypages.scad.edu/~dkaul/images/creatures.jpg][http://facultypages.scad.edu/~dkaul/creatures_new.html]]
!!!!Project Grading
Doing a solid job and following all the technical requirements of the assignment as well as adding a certain amount of aesthetic ability will earn you an 85%. Submitting an assignment that has not been compressed properly(such as an After Effects movie of 500MB) will earn you a 0% and will need to be resubmitted. Submitting an assignment that follows the technical requirements but lacks content and/or creativity will earn you a 75%. Late assignments will be subject to a penalty of 2% per day, so submit every assignment on time, even if it is subpar(''You have 2 days to redo the assignment. However, in CMPA 110, The Creature assignment is due the last day of class and no resubmits are permitted.)

To go beyond an 85% you must demonstrate a certain amount of creative or technical ability that goes above and beyond the standard requirements. That may sound confusing but hopefully you can see the student work and judge your work based on that. All of the student work on this page has received a 90% or higher. 

I give a lot of artistic freedom to finish the assignments but this means I can't grade the assignment like a true/false exam. Following technical requirements is important (for instance, fading audio out at the end of a movie, so it doesn't just stop in a jarring fashion. If you have a question about a project you would like to do and are not sure how it will be graded talk to me. I will recognize work that has effort put into it even if the end result is not what you had in mind.


We did the introduction to the class.

We started to make the room that is your assignment.

*Review my fruit plate demo on youtube [[here|http://www.youtube.com/watch?v=56YuzCykw78]]
*Learn basic navigation of Maya
*Generate geometry using primitives
*Add lights
*Render out a still image.
*Save your .mb file

After Effects
After Effects
After Effects due, Review Celebrate projects then move on to some website designs with Dreamweaver
Dreamweaver
More dreamweaver

[[8 minute video I made of simple site. |http://www.youtube.com/watch?v=WwGjJYXbFG4]]

''We will now make a simple html rollover page:''

''Photoshop'':You will make slices of the page
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20007.png]]

And file->Save for web and devices
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20015.png]]

''Dreamweaver:''We will make a basic slice based website with rollovers. This basic site will use tables, which is an older technique but good if you need to create something quick.

In Dreamweaver make sure to use a border value  of zero when making slices; Otherwise the table will not fit together.
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20006.png]]

Also, use the live update button so you can preview your work without having to preview in a browser
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20026.png]]

In Dreamweaver you link to another page here:
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20008.png]]

In Dreamweaver if using tables you can align in the center by click the table and:
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20009.png]]

In Dreamweaver you create a rollover from this menu(You have to have already saved 2 versions of the button).
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20014.png]]


The .psd file with 3 designs is due and will be evaluated. We will go with the design that is best recieved by the class.
Note: The working basic site will be due next class. This is to make sure you have the folders correct and a basic knowledge of how to make a site.

The design we are using was made by Ricky Elizondo, a student in Spring 2010 CMPA 110. The circular design was made by Blakely Smith, another student in CMPA 110

!Dis-jointed Rollovers
We will cover behaviors and adding disjointed rollovers with this webpage, called disjointed_site.html in class 17.
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20019.png]]

You add a rollover in the behaviors section of Dreamweaver. This behavior on the element controls one rollover
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20016.png]]

This element has 2 rollovers, meaning a rollover of one button makes 2 rollovers. This is effective for disjointed rollovers, where rolling over 1 area makes a separate area rollover as well.
''Important'': To get the 2 rollovers to stick you will have to redo the first one as Dreamweaver gets buggy coding 2 disjointed rollovers at the same time.
Remember that Dreamweaver is trying to code what you make with the GUI (Graphic User Interface) and errors sometimes occur.
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20017.png]]

!Hotspots
Hotspots allow you to select just a certain selected part of the site and add a swap image on the slice that it is on. 
An example could include clicking on a circular button without having to click on a rectangle portion.
We will now use hotspots in order to have just the arrow portion of this home button switch colors. The file is called hotspot_rollover.html
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20031.png]]
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20029.png]]
It is important to select the ''hotspot'' and add a swap image behavior to it instead of selecting the slice directly


!CSS(Cascading Style Sheets)
We will also go over some basic css(Cascading Style Sheets). Consider html to be the content of the site and css to be the layout of the site. 
The site below has a table with transparent png files that sit on top of a background.
The table is contained by a main apDiv tag(Absolutely Positioned Division tag), which is centered on the screen. Inside the apDiv 2 other divs contain the text and the picture.
The apDivs are not dependent on a table for placement and can be positioned anywhere.
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20032.png]]

The following is a version of the Charlie Sheen website with a number of elements removed for clarity, but with the basic contents of the page imcluded.
It is a combination of [[HTML|http://en.wikipedia.org/wiki/HTML]], [[CSS|http://en.wikipedia.org/wiki/Cascading_Style_Sheets]], and [[JavaScript|http://en.wikipedia.org/wiki/JavaScript#Use_in_web_pages]]

[img[http://facultypages.scad.edu/~dkaul/tiddly_images/breakdown_of_code.gif]]

Website Due

Update: Instead of Videobox and lightbox we will be using shadowbox, which is more versatile. I have converted the majority of this site to shadowbox. It can host videos and images on the same page. The only problem with it is that the titles cannot be too long or it gets cut off.

[[A Youtube VIDEO of using shadowbox|http://www.youtube.com/watch?v=bIqeADTuC7Y]]

We will look at presenting media with embedmedia.html
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20037.png]]

Please take a look at the supporting files, including the shadowbox folder. This contains necessary files to run shadowbox. You can use this as a template for your work. Take a look at the div tags as well for placement.


We will then take a look at the scrollbox.html. This file uses a table enclosed in a scrollbox.
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20036.png]]

We will play videos and images with [[shadowbox|http://www.shadowbox-js.com/]] a free java/css based code.

One great part of shadowbox with videos is you can use left and right arrows to view a bunch at the same time.

!Thumbnails:
You will need thumbnails for your images and videos. I like using Extreme Thumbnail generator and you can try it for free [[here|http://www.exisoftware.com/thumbnail_generator/index.html]]

!To embed Youtube videos:

This is the standard link for Youtube videos, but it is a link to the actual vYoutube site and not just the video.
http://www.youtube.com/watch?v=4IzQVa5MS8k

To get just the video link remove the watch? and put a / in place of the = sign.

http://www.youtube.com/v/4IzQVa5MS8k

and add &autoplay=1 to the end of it to be:

http://www.youtube.com/v/4IzQVa5MS8k&autoplay=1

to have it autoplay, recommended.

!To embed Vimeo videos:
For Vimeo copy the embed code and use just the http portion. Be sure to use ''OLD EMBED CODE'', Otherwise the link will not work in shadowbox.

[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20028.png]]

You want the code that contains moogaloop:
{{{
http://vimeo.com/moogaloop.swf?clip_id=17090435&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1&amp;autoplay=1&amp;loop=0"
}}}

!To embed videos hosted from your studentpages.scad.edu site
Put your .mp4 from After Effects into a folder and get the link. By default shadowbox will play it with Quicktime as it is not a flash format.
{{{
 <td><a href="http://facultypages.scad.edu/~dkaul/movies/steelRiver.mp4" rel="shadowbox[anim];height=480;width=720" title="Experimental Work with Houdini Software. .mp4 hosted from my website, not Youtube or Vimeo"><img src="http://i3.ytimg.com/vi/2q5fIGu4Ljg/default.jpg" alt="" border="0" /></td>
}}}

The navigation images(forward, backward, loading) go in the css folder.


If you want to scale the title: In the shadowbox.css file change the #sb-title-inner{font-size:12px;} to 12 so the text is smaller

Now I want to show you an example of simulating more advanced techniques in html.
The following site uses onMouseOver->Go to URL behavior.

This simulates switching between 2 panels on the same site except that it swaps between a black page and a white page. The downside is that there is a small delay on when you rollover the 2 panes.

[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20039.png]]

In Addition there is information on fading [[images|http://www.maltesieb.de/skripte/imgfader-english/]]


This is a simple javascript fader that makes it easy to do a fading slideshow.
[img[http://facultypages.scad.edu/~dkaul/screenshots/Image%20040.png]]


Illustrator Creature
Illustrator Creature Due
We will model some fruits with lofts and primitives. We will make a banana and an apple. Learning about grouping. We will go over basic texturing and shading. We will go over global illumination. The rendered fruit plate will be due next class.

!!!Class Outcomes:
*Model a banana and an apple
*Texture the fruit
*Make a plate with revolve
*Put texture on the plate
--We will cover more photoshop work and assign both assignments, which are the put yourself in History and the Underwater Composite.--Clone stamp tool. Healing Brush tool. We will do the [[Bird Girl Tutorial|http://photoshoptutorials.ws/photoshop-tutorials/photo-manipulation/the-maiden-and-hummingbird-photo-manipulation.html]]

!!!Overlay modes with hawk on branch
*Duplicate the hawk picture. lighten up the new layer. add gausian blur to it as well. Use multiply for overlay method. Makes a painterly feel
http://www.luminous-landscape.com/tutorials/gaussian.shtml

!!!Tilt Shift
http://www.tiltshiftphotography.net/photoshop-tutorial.php

!!!Class outcomes:
*Do Maiden and Hummingbird tutorial(In-Class only:Not graded)
*Review the history images
*Do the simple Overlay and tiltshift tutorials
*Clone Stamp
*Healing brush
*Content Aware Tool
*Blend-if
Meet at Foxy Loxy cafe

1919 Bull St., Savannah GA, 31401

You can get a coffee/tea/taco.

You don't have to go but it will be fun.

[[foxyloxycafe.com|http://www.foxyloxycafe.com]]

Free Day to discuss future career and celebrate
3rd day of Maya

4th day of Maya

5th day of Maya
[[Cute Kitty Video|http://www.youtube.com/watch?v=RrNZ-qod3eg]]

Maya still life is DUE, review projects



Start on Photoshop bluray assignment
More work on Photoshop

Photoshop bluray assignment due
After Effects

{{{
import maya.cmds as cmds
import maya.mel as mel

if cmds.window( x, exists=True):
    cmds.deleteUI(x)   

x=cmds.window()
cmds.showWindow()
}}}
We will make fluid effects clouds that render quickly. The fluid is already in the container, you just tint certain parts of it. no grids used, just internal fluid texturing

fire:
make 3d container containing emitter
make sphere- pick sphere and container and use emit from object
temperature and fuel dynamic grid
color: black
incandescense:
incandescent input: temperature
input bias -.2
position .143, value 14, .815, 20  actually a very light red, not pure white
position .857 value 0,0,0


opacity:
opacity input density
opacity input bias .315 thicken the fire


position .1360, value 0
position .15, value .91
.85, value 0
input bias .315

contents details-density-bouyancy 9, dissipation .3
contents details-velocity-swirl 10
contents details-temperature-temperature scale-1.93, temperature bouyancy to 9


contents details-fuel-fuel scale-1.967, reaction speed .967



Hair is a generic dynamic curve simulation, meaning you can create ropes, chains, suspension bridge, lofted surface from curve

hair system a collection of follicles. hair rendered as paint effects(in Maya software), can also export curves to render in renderman. convert paint effects hair to poly to render in Mental Ray

You can create hair on NURBS and polygonal surfaces. For polygons, UVs should be non-overlapping and fit between 0 and 1.

select scalp, hair make hair option box, ucount 26, vcount 22. Determine how many hair curves within a uv range

turn on equalize, hair on scalp equally
length to 10

create hairs but do not edit in this position, this is dynamic position

to speed up simulation hairSystemShape1 display quality to 2

dynamics section -set hair stiffness to .07
set gravity to 2.5

once hair is played

Hair > Set Start Position > From Current. 

This is the most basic combination of GUI and recursion I can do:
{{{
proc sphereMake(float $level)
{
    $level=$level-.1;
    sphere -r $level;
    move 0 0 ($level*$level*10);
    if ($level > 0)
        sphereMake($level);
}


proc buttonAction1(string $floatRot)
{
	$parentRadius = `floatSliderGrp -q -v $floatRot`;
	sphereMake($parentRadius);
}


proc makeAntennaUI()
{
        // I had to add a global variable here. It gives an error that I am not familiar with if it is declared as a local variable
	global string $radiusCol;
        string $dialogBoxWindow = `window -title "Create recursion" -resizeToFitChildren true`;

	columnLayout;

        $radiusCol = `floatSliderGrp 
				-label "Number Of Spheres:" 
				-min 0 -max 2
				-field true`;
	button -label "Make Recursive Sphere" -command "buttonAction1($radiusCol)";

	showWindow $dialogBoxWindow;
}

makeAntennaUI;
}}}
These lessons are in the Maya help area

!!!Make sure all dynamics are playback speed every frame, with a max of 24fps. Dynamics will skip frames otherwise and produce erroneous results
nCloth is generated from poly meshes and can blow up balloon, tear fabric. based on maya Nucleus

''table.mb:''
1.demonstrate the thickness attribute and the way to display it.
2. do the same for the table thickness
in cloth, collision flag, face is most accurate but takes the longest time. Vertex is the least accurate, vertex changes the verticies to collision spheres.

''flag.mb''. already have ncloth active and passive bodies on it
pick verticies of flag, then pole. nConstraint-point to surface. the verticies and now members of the constraints
select vertex with rmb on flag. remove members on all verticies except for top and bottom

to wave flag. select flag decrease mass to .5  and increase tangental drag .05, 
select nucleas increase wind speed to 10, flag will wave in wind

''dressStatic.mb:''

make active and passive meshs
nCache-create new nCache
adjust collision thickness of both objects to make strap get closer to shoulder

to get dress to stick closer like silk
select nucleus-space attributes-space scale .016, evaluates the large cloth model as if it were a smaller object
select cloth shape dynamic properties-mass to .7
stretch resistance to 140 and compression resistance to 120, to simulate silk, still loose over chest, need to simulate bodice, thicker material in chest section, paint verticies

select ncloth-dynamic properties, input mesh attract to 1, dress will maintain its shape
nmesh-paint vertex properties-input attract, radius 3 up and low , replace, value 0, paint black on non chest areas means those areas are fully dynamic.

''dressAnimated.mb''
constrain straps to body using point to surface

edit initial state of dress,nSolver-initial state-relax initial state, make sure cache is deleted, steps is how the dress looks at frame 300

dress goes through body:
ncloth-quality settings-max self collide to 20, recognizes more self collisions but slower simulation
collide last threshhold 1,stops verticies from passing through collision object
turn on trapped check
turn on self trapped check
push out .280
push out radius 5.0


solver attrbutes- substeps 4, max collision iterations to 20

additional way to add thickness to the cloth, select an edge, hold down ctrl-rmb edge loop utiltities- to edge loop, this selects an edgeloop which you can then extrude

















This is a basic crowd system using the UV system putting particles on a nurbs sphere with goals and controling the U and V direction.


The following are creation expressions:
We have all across the V direction and the U direction is near the beginning 20% of the grid. There are 20 goat cycle objects so each goat has a random start cycle. Each deer has a random size between .7 and 1.2 of the original instanced animation. The values of U and V go from 0 to 1. This is really basic so there is no self collision but on the other hand if you don't get too close it looks fine.

You have to add attributes called goalU, goalV, which are both in Maya already (Just have to displaythem), randomStart, randomSize, and cycleSpeed
''creation expression:''
particleShape1.goalV=rand(0,1);
particleShape1.goalU=rand(0,.2);

Pick a random cycle start from 0-20
particleShape1.randomStart=rand(1,20);

Make a random size for the character
particleShape1.randomSize=rand(.7,1.2);

''Runtime expression:''
This has the characters move forward across the terrain
particleShape1.goalU+=.00002+particleShape1.randomSize/1000;

This gets get the characters to go left and right and different times
goalV+=sin(frame/(10*randomSize))/1000;

This adjusts the speed of the walk cycle based on the size of the character
particleShape1.cycleSpeed+=particleShape1.randomSize/20;

''under Instancer(Geometry Replacement):''
Check Allow all data types. This allows you to use a single number as an array with the 3 numbers the same
aim direction is velocity
Scale is randomSize

''under Cycle Options''
cycle Start Object: randomStart
Age cycleSpeed
Here is your assignment: Convert this MEL coil script to Python!

{{{
// coil maker v.5 in MEL, no GUI
// make starting circle -nr sets the normal on z axis -n renames
file -f -new;
circle -name c1;
move -8 0 0;
move 0 0 0 c1.rotatePivot;

// duplicate the circles. duplicating the most
// recent circle and rotating/moving it relative -r
for ($i=1;$i<=30;$i++){
    duplicate ("c"+$i);
    select ("c"+($i+1));
    move -r 0 1 0;
    rotate -r 0 20 0;
}

// loft the curves
select -all;
loft;
}}}


{{{
You have to import the maya commands into Python with the following line of code:
import maya.cmds as cmds
Without this Python will not be able to call MEL commands
}}}


{{{
Here are some notes to help you:
Mel for loop syntax is :
for ($i=1;$i<=30;$i++){

Python for loop syntax for the same command is
for i in range(1,30):
}}}


{{{
To create a new scene and delete everything in the old scene.
MEL:
file -f -new; 

PYTHON:
import maya.cmds as cmds #Put this at the top of the script only once
cmds.file ( f=True, new=True)
}}}

{{{
Instead of semi colons to end lines you use indented code with a standard 4 spaces per indent(tab key): 
For example, The for loop will look like this: Notice there are 4 spaces(1 tab) before the print i command
for i in range(1,30):
    print i

}}}

{{{
In MEL you use $ to declare and reference a variable, but in Python you don't use $. Also, in Python
you can re-declare variables as different types,  but I would not bother doing that because you need to keep everything organized.

MEL:
int $a=5;

PYTHON:
a=5
}}}

{{{
This is the best way to look up Python commands: Script Editor->Help->Python command reference. Remember what Adam told you
about this and how you can look at examples below the command information.
}}}

{{{
Comments in MEL start with //
Comments in MEL start with #

Multiline comments in MEL start and end with /*    text here */
Multiline comments in Python start and end with """   for example """ text here """
}}}

{{{
To use duplicate on a specific object you have to do the number as a str(i) command which converts the number into a string

cmds.duplicate('c'+str(1))

will duplicate the object called c1
}}}

{{{
To use the move command in MEL:
move -relative 8 0 0;

PYTHON:
cmds.move (-8,0,0, relative=True)
will move the selected object -8 units on the x relative to itself(relative=True)
}}}


{{{
Defining a procedure in MEL and Python are similar:

MEL:
proc coil()
      {
       select -all;
       }
coil()

PYTHON:
def coil():
    cmds.select(all=True)
# To run coil we unindent
coil()
}}}


{{{
If you are done translating the coil with no gui script try the MEL coil with gui script. After you have done
this you will be confident that you can translate any MEL script into Python.

// coil maker  WITH GUI MEL

// Make GUI
if (`window -exists myWindow`) deleteUI myWindow;
window  -t "coil maker with MEL"  myWindow;
columnLayout;
floatSliderGrp -value .5 -label "Radius" -min .1 -max 1.5 -field true radius;
intSliderGrp -value 80 -label "Length" -min 1 -max 200 -field true length;
floatSliderGrp -value .3 -label "Height" -min .1 -max 2 -field true height;
button -label "Generate Coil" -c "coil()";
showWindow myWindow;

proc coil(){
    select -all;
    delete;
    $lengthofcoil=`intSliderGrp -q -v length`;
    $xradius=`floatSliderGrp -q -v radius`;
    $xheight=`floatSliderGrp -q -v height`;
    
    // make starting circle -nr sets the normal on z axis -n renames
    circle -nr 0 0 1 -n c1 -r $xradius;
    move -8 0 0;
    move 0 0 0 c1.rotatePivot;

    // duplicate the circles. duplicating the most
    // recent circle and rotating/moving it relative -r
    for ($i=1;$i<=$lengthofcoil;$i++){
            duplicate ("c"+$i);
            select ("c"+($i+1));
            move -r 0 ($xheight) 0;
            rotate -r 0 20 0;
    }
    // loft the curves
    select -all;
    loft;
}
}}}
http://www.youtube.com/watch?v=cSMDHyIthIE&feature=related

    I Have a question. Is there anyway I can get into this WITHOUT making it my main focus in college? I'm actually studying to become an ornithologist, of all things... but CGI Was my original thing.... I just got into birds, more specifically owls, and I was wondering if you had any tips for someone like me to even things out between the two, or should I take them one at a time? Noctology is my main focus, But I love CGI And I've got such a mind for that area of animation. I'm so confused........
    ClintJohnHampton 2 months ago

    @ClintJohnHampton getting into this industry is all about your demo reel and who you know. College helps get you pointed to the right people faster and allows more time to perfect the reel.. but no you dont really need it. CG is a pretty saturated field right now though (and all going overseas). I wouldn't get into it unless you are committed %150.
    jhildreth11 3 weeks ago

    amazing demo reel man....I'm in my freshman year and majoring in VSFX at SCAD...any tips and hints?
    pilot7180 6 months ago

    @pilot7180 Get an actual animation student to do the work for you, and then you have better material to work with. 4. Think outside of the box. most teachers show hall of fame from previous classes. Look and see what those students did, and then DON'T do that. Do something new. I went all the way up to Charleston SC many times to get footage on a World War 2 Aircraft Carrier. Most other people modeled cars or flowers. 5. Dont ever model or light a damn car. ever
    jhildreth11 6 months ago 2

    @jhildreth11 why are you against modeling and lighting a car that much :S ?
    nitrofreeze 6 months ago

    @nitrofreeze because everyone and their dog and their little brothers in high school do a car. Do something original that hasnt been done a million times.
    jhildreth11 5 months ago

    @nitrofreeze because everyone does it. Its the most unoriginal thing you could do.
    jhildreth11 5 months ago

Top Comments

    ''@pilot7180 I had to dumb down many projects in the last week in order to just have SOMETHING to turn in. Don't get caught in that trap. 3. Group projects. I learned more and gained more demo reel material in one single group project than every class I had at scad. I wish I had done more early. Find some animation students (who don't know shit about lighting or compositing) and light and comp their projects. 90% of VFX projects contain un-animated and boring projects.''
    jhildreth11 6 months ago 3

see all
All Comments (27)
Reactions (0)
Respond to this video...

    do i need to be good at drawing for the visual effects course?
    007chandradeep 1 day ago

    @jhildreth11 oh wow...good points man, thanks for the help, I'll definitely use them
    pilot7180 5 months ago

    @jhildreth11 but not every one does it right :D there is allot to modeling a car, hence the interior, anyways i agree that it is overdone.
    nitrofreeze 5 months ago


Try out some string operators using the %
{{{
x = 'I am '
y = '25 years old.'
print '%s%s' % (x, y)
}}}

{{{
%s is a string
%d is an integer
%f is floating point

x = 'I am '
y = 25
print '%s%d' % (x, y)
}}}

{{{
# Written by Chad Vernon from Python scripting for Maya Artists
import maya.cmds as cmds
def changeLightIntensity(percentage=1.0): 
    """ Changes the intensity of each light in the scene by a 
    percentange. Parameters: percentage - Percentange to change 
    each light's intensity. Default value is 1. Returns: Nothing. 
    """ 
    # The ls command is the list command. It is used to list various nodes 
    # in the current scene. You can also use it to list selected nodes.
    lightsInScene = cmds.ls(type='light')
    
    # If there are no lights in the scene, there is no point running this script 
    if not lightsInScene: 
        raise RuntimeError, 'There are no lights in the scene!' 
    # Loop through each light 
    for light in lightsInScene: 
        # The getAttr command is used to get attribute values of a node 
        currentIntensity = cmds.getAttr('%s.intensity' % light) 
        # Calculate a new intensity 
        newIntensity = currentIntensity * percentage 
        # Change the lights intensity to the new intensity 
        cmds.setAttr('%s.intensity' % light, newIntensity) 
        # Report to the user what we just did 
        print 'Changed the intensity of light %s from %.3f to %.3f' % (light, currentIntensity, newIntensity)
}}}

To run the script:
{{{
changeLightIntensity(5)
}}}

Here is another script that reads a .ma file and changes the name of the sphere from good to bad

{{{
mayaFile = open('C:\Temp/df.ma', 'r')
fileContents = mayaFile.readlines()
mayaFile.close()

for i in range(len(fileContents)):
    fileContents[i] = fileContents[i].replace('goodSphere', 'badSphere')
    mayaFile = open('C:\Temp/file2.ma', 'w')
    mayaFile.writelines(fileContents)
    mayaFile.close()
}}}
The really simple crowd generation program is below:
{{{
proc crowdMake(float $particleNum, float $particleSpeed, int $motion){
     
    //help -doc floatSliderGrp
    //Make nurbs plane and rotate
    nurbsPlane -width 30 -patchesU 10 -patchesV 10 -name ground;
    rotate 0 0 90;
    //Put sin deformer on it
    nonLinear -type sine -lowBound -1 -highBound 1 -amplitude .3 -wavelength 2 -dropoff 0 -offset 0;
    rotate -r -os -90 0 0;
    // Set current time so when hit play the creation expressions will have run
    currentTime 1;
    // Make specified number of particles           
    eval("particle -jbp -1.990872 0 2.17351 -nj " + $particleNum + " -jr 5.575 -c 1 -name creatures") ;
    
    //Make them spheres, spheres is 4
    setAttr "creaturesShape.particleRenderType" 4; 
    addAttr -is true -ln "radius" -at "float" -min 0 -max 10 -dv 0.5 creaturesShape; 
    setAttr "creaturesShape.radius" 0.2;

    // Put particles on goal ground
    goal -weight 1 -utr 0   -g ground creatures;
    
    //Add goalU and goalV attribute
    addAttr -ln goalU -dt doubleArray creaturesShape;
    addAttr -ln goalV -dt doubleArray creaturesShape;
    
    // Make particles spread out on the V direction, creation expression by default
    // using -c which means creation
    dynExpression -s "creaturesShape.goalV=rand(0,1);\n\
    creaturesShape.goalU=rand(0,.1);"
                         -c creaturesShape;
                         
   //Increase goalU which is to traverse the plane
        
     if ($motion > 1){                     
    //Add runtime expression based on radio Button 2 or 3 selected
        dynExpression -s ("goalU=goalU+" + $particleSpeed + "+(id/6000);\
        creaturesShape.goalV+=sin(frame/(1+creaturesShape.particleId))*.002;") -rbd creaturesShape;
        }
    else
        dynExpression -s ("goalU=goalU+" +$particleSpeed + "+(id/6000)") -rbd creaturesShape;

    // go to frame 1 to run expressions and set particles
    playButtonStepForward;
}


proc buttonAction1(string $floatRot, string $speed)
{
    $particleNum = `intSliderGrp -q -v $floatRot`;
    $particleSpeed = `floatSliderGrp -q -v $speed`;
	
    // radioButtonGrp is either 1,2,3, based on even, odd, or both. 
    // $choice is either 1,2,3 by querying myRadBtnGrp
    $motion=`radioButtonGrp -q -select myRadBtnGrp`;

    // This calls the sphereMake for the first time, then the recursion takes over
    crowdMake($particleNum,$particleSpeed,$motion);
}


global proc makeAntennaUI()
{
    global string $radiusCol,$speed;
    // This checks to see if dialogBoxWindow already exists and delete it if
    // it does.
    if (`window -exists dialogBoxWindow`) deleteUI dialogBoxWindow;
        
    // -rtf true means rezize 
    window -title "Create Crowd" -rtf true dialogBoxWindow;
    
    // This is the easiest way to layout UI. Another type is formLayout
    columnLayout;
	
    // Make an integer slider, -value 5 means set the default to 5
    $radiusCol = `intSliderGrp 
				-label "Number Of Particles:" 
				-min 1 -max 60
				-value 30
				-field true`;
				
	$speed = `floatSliderGrp 
				-label "Average Speed:" 
				-min .001 -max .009
				-value .001
				-step .001
				-field true`;
				
    // -select 1 means select the 1st button by default. myRadBtnGrp is the name
    // of the radio button	
    radioButtonGrp
          -numberOfRadioButtons 3
          -label "Select Motion"
          -labelArray3 "Standard" "Sin" "Nothing"
          -select 2
     myRadBtnGrp;
     
     // Make button to generate spheres
     // -w is width of button
    button -label "Make Particles" -w 130 -command "buttonAction1($radiusCol,$speed)";
	 
    // Make button to delete every object in the scene
    button -label "Delete Objects" -w 130 -command "select -all;delete";
	 
	 
    // The window will not be displayed without this
    showWindow dialogBoxWindow;
}

//Set time slider to 1-300
playbackOptions -min 1 -max 300 ;
// This will make the UI which then calls the sphereMake procedure

makeAntennaUI;
}}}
We will start with a dynamics assignment. This includes rigid bodies, soft bodies, particles, cloth, fur, hair, etc. You can pick one of the topics to put into your project that is due on class 13.

We will start with rigid bodies. 

usits. In gravity 9.8 means centimeters per second. so you would have to turn it up 100 times to get meters per second, although a number like 60 is more than enough to simulate the more accurate action.
setting playback speed to every frame but max playback to real-time. Otherwise dynamics take too long to calculate and cannot go realtime.

Make active and passive rigid bodies
put in all constraints
use fields.

Normals-Reverse if an object goes through the other
soft/rigid bodies-set active key & set passive key. This is a hotkey for setting the on/off state of the active attribute of a rigid body

Solvers-rigid body solvers attributes, including step size and collision tolerance

volume exclusion on gravity.

collisionLayers: a layer of -1 means everything is affected, a collision layer of a higher number means both rigidbodies have to have the same number
Making a row of bricks solve faster by putting columns of bricks on a different layer


windows-relationship editors, dynamic relationships to link the fields to the rigid bodies

using standin geometry for heavy geometry with parenting and adding dynamics to the lores object.  You can also use a standing of sphere or cube

rigid body interpenetration error.

Make dummy man that hits different objects on way down.

mass, make a mobile tweaking the mass to balance everything

Making a row of bricks solve faster by putting columns of bricks on a different layer

Edit-keys-bake simulation to set keyframes on a rigid body so it no longer needs rigid bodies

https://docs.google.com/Doc?docid=0AWDZEMSAk7FEZHczODU3OF8zNDBkZ2s0ajZnNg&hl=en_US
/*{{{*/
Background: #fff
Foreground: #000
PrimaryPale: #888
PrimaryLight: #222
PrimaryMid: #600
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #600
TertiaryPale: #eee
TertiaryLight: #966
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*}}}*/
''Dave Kaul,'' Professor
Visual Effects Department
School of Film and Digital Media
Savannah College of Art and Design

The best method for contacting me is via email at [[dkaul@scad.edu|mailto:dkaul@scad.edu]]

!!!!Office hours


Office hours are by appointment and can be held during the office hours time slots. I can make other times if this conflicts with your class schedule.
Class 1:
[[Viewing Baby animals makes you work harder|http://www.dailymail.co.uk/news/article-2210614/The-power-cute-How-looking-pictures-baby-animals-help-improve-concentration-levels.html]]
[[Cute kitty Video|http://www.youtube.com/watch?v=0Bmhjf0rKe8&feature=player_embedded]]
[[More Cute Kitties|https://www.youtube.com/watch?v=dZ3H23IunVc]]
[[Next Gen gaming|https://facultypages.scad.edu/~dkaul/images/riddler.jpg]]
Putting main things first fishbowl demo

Class 2:
Show Mystery Object
[[Duck rolling in the wind|http://www.youtube.com/watch?v=SEBLt6Kd9EY]]
[[Google translate is really neat|http://translate.google.com/]]
[[Sample Text|https://docs.google.com/document/d/1plbZXa9DI3zZPdCuqYUKzjfu1GMK3hnb_6MtWVdnbiE/edit?usp=sharing]]
[[For the nerdy, a $3000 gaming graphics card|http://www.polygon.com/2014/3/25/5546796/nvidias-new-titan-graphics-card-features-12-gb-ram-two-gpus-and-2999]]

Class 3:
[[Kitty needs more power to continue|http://justcuteanimals.com/wp-content/uploads/2013/02/cute-animals-kitten-cat-paw-up-help-pics.jpeg]]
[[Dreamworks evolution of rendering|https://www.facebook.com/HowToTrainYourDragon/photos/a.132952415019.138986.96698020019/10152245851705020/?type=1&theater]]
[[Sweet bow jumping|https://www.facebook.com/photo.php?v=745307785744]]
[[Baby Lions| http://www.kptv.com/story/23480550/its-a-girl-all-3-of-them-first-up-close-look-at-zoos-baby-lions]]

Class 4:
[[Beach Police|https://www.facebook.com/video.php?v=859171940775886&fref=nf]]
[[Google self driving car|http://www.youtube.com/watch?v=cdgQpa1pUUE]]
[[Artist recycles old paintings by adding star wars characters|https://www.facebook.com/ArtworkByDavidVancook]]
[[Cute undersea animal|https://facultypages.scad.edu/~dkaul/images/blobfish.jpg]]
[[Walrus workout|http://www.youtube.com/watch?v=iXJl1fuFAKU]]


Class 5:
[[Academic dishonesty presentation|https://docs.google.com/presentation/d/1z7JpquF8-zYElVeJltCu28Cw45mkmXjZ_O1GZecSrgA/edit?usp=sharing]]
[[Ratt's Lay it down video|https://www.youtube.com/watch?v=mLvJCAKZGc0]] |[[Kid Grown Up|https://facultypages.scad.edu/~dkaul/images/hertford.jpg]]
[[Fun with Goats|https://www.facebook.com/video.php?v=676315645769049&fref=nf]]
[[4K tv, can't wait|https://facultypages.scad.edu/~dkaul/images/4k_tv.jpg]]
[[Another How to train your dragon upgrade in rendering |https://www.facebook.com/HowToTrainYourDragon/photos/a.132952415019.138986.96698020019/10152260169880020/?type=1&theater]]


Class 6:
[[Best speech in Taken|http://www.youtube.com/watch?v=jZOywn1qArI]]
[[Taken, the original, best movie in the world, 100/100|https://facultypages.scad.edu/~dkaul/images/taken1.jpg]]
[[Taken 2, a good solid movie, but nowhere near the quality of the original Taken, a 90/100|https://facultypages.scad.edu/~dkaul/images/taken2.jpg]]
[[Snakes on a Plane, worth an 80|http://www.youtube.com/watch?v=vLaX8UvVUQw]]
[[Demon Cop, You don't want a grade of Demon Cop|http://facultypages.scad.edu/~dkaul/images/demoncop.jpg]]
[[Demon Cop Commentary|http://campmoviecamp.blogspot.com/2009/08/demon-cop-1990.html]]
[[cute animal with stuffed animal|http://i.imgur.com/NHFNF7l.jpg]]
[[Food leftovers app|http://www.huffingtonpost.com/2013/07/25/leftoverswap_n_3648701.html]]

Class 7:
Teamwork Pencils
[[Has anybody seen this phone|https://www.facebook.com/wplrfm/photos/a.188471351178310.60015.114639255228187/969384143087023/?type=1&theater]]
[[This is not fair|https://facultypages.scad.edu/~dkaul/images/insult.jpg]]
[[LinkedIn's value in connecting students to professionals|https://facultypages.scad.edu/~dkaul/images/linkedin.gif]]
[[Another LinkedIn example|https://facultypages.scad.edu/~dkaul/images/dennys.png]]
[[How to stop a nightmare|http://www.youtube.com/watch?v=AaHrvJ1fg48]]
[[Very nice Photoshop-like online editor|http://pixlr.com/editor/]]
[[EdX|https://www.edx.org/]]
[[Coursera|https://www.coursera.org/about]]


Class 8:
[[Run like a girl superbowl ad| http://ftw.usatoday.com/2015/01/best-super-bowl-ad-run-like-a-girl]]
[[Vince Neil in 1993|https://facultypages.scad.edu/~dkaul/images/stevens_neil_1993.jpg]]|[[Vince Neil in Sister of Pain Video 1993|http://www.youtube.com/watch?v=VSKsGWENgqM]]|[[Now|https://facultypages.scad.edu/~dkaul/images/vince_neil.jpg]]
[[Kitty falling asleep|http://www.youtube.com/watch?v=5k_LZbS5oig]]
[[History of Apple computers. It has the full range back from 1976|http://apple-history.com/se]]
[[The cat moves him|http://ifunny.mobi/i/3rUIHIPJ1]]
[[Most classic game machine ever|http://www.alexstjohn.com/WP/wp-content/uploads/2013/05/Atari2600.jpg]]

Class 9:
[[Run like a girl superbowl ad| http://ftw.usatoday.com/2015/01/best-super-bowl-ad-run-like-a-girl]]
[[Not red Sonic|https://facultypages.scad.edu/~dkaul/images/warning.jpg]]|[[Color of Sonic|https://facultypages.scad.edu/~dkaul/images/sonic.png]]
[[Cute kitty videos|http://www.youtube.com/watch?v=cbP2N1BQdYc]]
[[Motivation Football Player|https://www.youtube.com/watch?v=X7ymriMhoj0]]
[[Life expectancy calculator, planning for retirement, finances|http://www.ssa.gov/OACT/population/longevity.html]]
[[Cute mamma and kitten|https://facultypages.scad.edu/~dkaul/images/mamakitty.jpg]]
[[Give me back that Fish!|http://www.youtube.com/watch?v=6bJOIqVAD-s]]

Class 10:
[[NYC Subway/Pitbull in Bag|https://www.facebook.com/barkbox/photos/a.286462424723149.62891.264418603594198/730649910304396/?type=1&theater]]
[[Bouncing Baby lamb|http://www.mtv.com/news/1914957/baby-lamb-jumping-video/]]
[[Two tired|https://facultypages.scad.edu/~dkaul/images/tired.jpg]]
[[Just like a miniMall|http://www.youtube.com/watch?v=FJ3oHpup-pk]]
[[Texting can be hazardous|http://www.nytimes.com/2009/05/26/health/26teen.html?ref=textmessaging&_r=0]]
[[Movie visual effects done on a $1200 laptop|http://vimeo.com/67189599#t=157]]|[[More info on the 15 minute movie|http://www.theverge.com/2013/10/11/4824724/tonight-i-strike-bringing-sci-fi-to-life-with-a-laptop-dan-gaud]]


Class 11:
[[Who's your best friend?|https://www.youtube.com/watch?v=NPBkvW-JTXI&feature=iv&src_vid=HgA84n3FM_4&annotation_id=annotation_1046725503]]
[[Tiny, inexpensive houses for urban areas|http://www.youtube.com/watch?v=tTTwzwKLZak]]
[[cute kitty gnawing|http://cute-kittens.tumblr.com/image/16790577714]]
[[Sleeping Mouse|https://www.youtube.com/watch?v=DlS3w1GGE8g]]
A useful tool for keeping resolutions is [[stickk.com|http://www.stickk.com]]

Class 12:
[[Weekends be like|http://ifunny.mobi/p/fzWgYWtu1]]
[[Cat is gone|https://facultypages.scad.edu/~dkaul/images/cat.jpg]]
[[Cat doing high five|http://www.youtube.com/watch?v=679V-3Ibjqg]]
[[Love the puking kitty on his buddies|https://www.facebook.com/photo.php?v=1400053946896216]]
[[kitties in a box|http://www.youtube.com/watch?v=-efQuSlxgWY]]

Class 13:
Boards for Motivation
[[Complex jobs help with memory|http://www.bbc.com/news/health-30115497]]
[[See how you compare to the average american|http://www.pewresearch.org/quiz/science-knowledge/]]
[[Like where the cat slaps the copier|http://www.youtube.com/watch?v=q1dpQKntj_w]]
[[Classic Webpages we can aspire to|http://oneterabyteofkilobyteage.tumblr.com/]]

Class 14:
[Direct X 12 Square Enix| https://www.youtube.com/watch?v=rpDdOIZy-4k]]
[[Stealing Racoon|https://www.facebook.com/video.php?v=10152540133815659&fref=nf]]
[[Guy makes wedding invitations|http://themetapicture.com/when-you-let-your-husband-be-in-charge-of-the-wedding-invitations/]]
[[Rollin Safari|http://www.youtube.com/watch?v=yltlJEdSAHw]]
[[Cute kitten image|http://img.wallpaperstock.net:81/cute-kitten-wallpapers_33444_1600x1200.jpg]]

Class 15:
[[Python developer applies for job in London|http://www.cnet.com/news/developer-curses-at-man-on-subway-meets-him-again-in-job-interview/#ftag=YHF65cbda0]]
[[Cat wiggle|https://www.youtube.com/watch?v=O6ROCaLvMnQ]]
[[Cute skype, special kitty|http://facultypages.scad.edu/~dkaul/images/dave_skype_cookie.jpg]]
[[American gladiators Malibu|http://www.youtube.com/watch?v=k5NlwiSPXao]]
[[another cute kitten image|http://images4.fanpop.com/image/photos/16000000/Cute-Kitten-Wallpaper-kittens-16094681-1280-800.jpg]]

Class 16:
[[Cool full wallet webpage|http://bellroy.com/slim-your-wallet?utm_source=google&utm_medium=display&utm_campaign=Display%20]]
[[Cat pushes dude's face|https://www.facebook.com/theanimalrescuesite/photos/a.84034447544.74579.19387377544/10152129852657545/?type=1&theater]]
[[Cool lego wall patching|http://distractify.com/culture/arts/beautify-street-art/]]
[[Cat nap|http://facultypages.scad.edu/~dkaul/images/catnap.jpg]]

Class 17:
[[Amazing transformation|http://www.upworthy.com/this-incredible-time-lapse-shows-us-how-dignity-and-respect-can-change-a-man?g=2]]
[[Mystery Song|https://facultypages.scad.edu/~dkaul/audio/allnightlong.mp3]]
[[Mystery Artist|https://facultypages.scad.edu/~dkaul/images/lionel.jpg]]
[[Cats being Jerks|http://www.youtube.com/watch?v=MElcke6DlW8]]
[[Puppy|http://images4.fanpop.com/image/photos/16800000/Cute-puppy-babies-pets-and-animals-16883275-1024-768.jpg]]

Class 18:
[[Video on size of universe|https://www.facebook.com/video.php?v=746043185466080]]
[[Nvida GPU maker hit with lawsuit|http://www.pcworld.com/article/2887234/nvidia-hit-with-false-advertising-suit-over-gtx-970-performance.html]]
[[I want this| http://facultypages.scad.edu/~dkaul/images/ledcurvedtv.jpg]]
[[Great cat animated gifs|http://www.buzzfeed.com/copyranter/the-best-cat-gif-post-in-the-history-of-cat-gifs]]
[[Yawning dog|http://1.bp.blogspot.com/-Gykw0IuE78E/T_E5EWLWj0I/AAAAAAAAEeY/Z06m7YeGtNY/s1600/funny+cute+pictures+%283%29.jpg]]
[[1TB flash drive price| http://facultypages.scad.edu/~dkaul/images/flashdrive1terrabyte.jpg]]

Class 19:
[[From Austin Brown VSFX 160| http://facultypages.scad.edu/~dkaul/powerofcode.jpg]]
[[Personality types that make the most and least amount of money|http://www.businessinsider.com/the-personality-types-that-earn-the-most-and-least-money-2015-2]]
[[Patient cat|http://www.youtube.com/watch?v=VhnVQizc69c]]
[[Cute monkey?|http://openwalls.com/image/2421/cute_monkey_1600x900.jpg]]
[[Do you think birds are cute?|http://www.youtube.com/watch?v=Tw7WIsXHkuI&list=FLUroGmbXcVzVYFtXPi4DB9g&index=49]]
[[Even Harvard students fill out course evaluations|http://www.fas.harvard.edu/~evals/]]

Class 20:
[[Taiwanese street artist|https://www.youtube.com/watch?v=a9Ncf7EfcCQ]]
[[I will leave you with a final cute image.|http://facultypages.scad.edu/~dkaul/images/rat.jpg]]
[[I will leave you with a another final cute image.|http://facultypages.scad.edu/~dkaul/images/woodchuck.jpg]]
Dave
[[Welcome]]
The software was inspired by a song of the same name [[here|http://www.youtube.com/watch?v=2Hdx9JjzDfo&feature=player_detailpage#t=55s]].

''Vital:Please use no spaces or capitals in any filename!! It will cause missing links''

[[Before we go any further please read this info on uploading your page as it is a source of trouble|Putting the page online]]



use this code for scrolling background:
{{{
body {
	background-color: #FFF;
	background-image: url(back.jpg);
	background-repeat: no-repeat;
	background-attachment:scroll;
	background-position:top;
	}
	
}}}
!!!!Your web page

*A selection of student pages from CMPA 100/110

**[[Ashley Samet|https://studentpages.scad.edu/~asamet20/index.html]]
**[[Kaitlin Dimick|https://studentpages.scad.edu/~kdimic20]]
**[[Axel Alvarez|https://studentpages.scad.edu/~aalvar23/]]
**[[Nate Loring|https://studentpages.scad.edu/~nlorin20/]]
**[[Dulce Mightygoodridge|https://studentpages.scad.edu/~dmight20/]]
**[[Pigeon Lincecum|https://studentpages.scad.edu/~plince20//]]
**[[Jerry Chia|https://studentpages.scad.edu/~jechia20//]]
**[[Sydney Conklin|https://studentpages.scad.edu/~sconkl21//]]
**[[Cazel Rulloda|https://studentpages.scad.edu/~crullo20///]]


**[[Dan Dittmar|http://studentpages.scad.edu/~ddittm20/]]
**[[Jordan Rosato|http://studentpages.scad.edu/~jrosat20/]]
**[[Maria Wallace|http://studentpages.scad.edu/~mwalla25/]]
**[[Twitch Richardson|http://studentpages.scad.edu/~tricha22/workscad.html]]
**[[Eric Schultz|http://studentpages.scad.edu/~eschul21/]]
**[[Felicia Guest|http://studentpages.scad.edu/~fguest20/]]
**[[Lindsey Miller|http://studentpages.scad.edu/~lmille28/grey.html]]
**[[Matt Allen|http://studentpages.scad.edu/~mallen30/]]
**[[Emily Duda |http://studentpages.scad.edu/~emduda20/]]
**[[La Toya De Brew|http://studentpages.scad.edu/~tdebre20/]]
**[[Jordan Dotson|http://studentpages.scad.edu/~jdotso21/]]
**[[Rachel Puelo|http://studentpages.scad.edu/~rpuleo20/]]
**[[Nick Trainer|http://studentpages.scad.edu/~ntrain20]]
**[[Sara Diblasi-Crain|http://studentpages.scad.edu/~rdibla20/]]
**[[Melanie Bentley|http://studentpages.scad.edu/~mbentl21/portfolio.html]]
**[[Shiyi Liao|http://studentpages.scad.edu/~shliao21/]]
**[[Kevin Gesseck|http://studentpages.scad.edu/~kgesse20/portfolio_digital.html]]
**[[Chuck Goubeaud|http://www.metalhandsmedia.com/]]
**[[Ryan Powell(Flash) |http://studentpages.scad.edu/~rpowel21/]]
**[[Zane Friday|http://studentpages.scad.edu/~zfrida20/]]
**[[Joe Phillips|http://studentpages.scad.edu/~jphill25/]]
**[[Alex Vanderpool|http://studentpages.scad.edu/~jvande25/]]
**[[Cool rollovers|http://studentpages.scad.edu/~jgerma21/]]
**[[Blakely Smith|http://studentpages.scad.edu/~bsmith37/]]
**[[Hyo Park|http://studentpages.scad.edu/~hypark26/]]
**[[Katie Jones|http://studentpages.scad.edu/~kjones38/]]
**[[Kevin Chia|http://studentpages.scad.edu/~kechia21/]]
**[[Ryan Kersh|http://studentpages.scad.edu/~rkersh20/]]
**[[Lindsey Herman|http://studentpages.scad.edu/~lherdm20/lherdm20web/]]
**[[Andy kluthe|http://facultypages.scad.edu/~dkaul/websites/kluthe3.com/]]
**[[Andy Kluthe 2|http://facultypages.scad.edu/~dkaul/websites/kluthe1.com/lcd.html]]
**[[Andy Kluthe 3|http://facultypages.scad.edu/~dkaul/websites/kluthe2.com/davis_page2.html]]
**[[Animated|http://facultypages.scad.edu/~dkaul/websites/animated_gif.com/]]
**[[Han Sua|http://studentpages.scad.edu/~suahan20/]]
**[[Corin Howell|http://studentpages.scad.edu/~chowel22/]]
**[[Camile Jenkins(Performing arts)|http://studentpages.scad.edu/~cjenki24/index.html]]

*Various Pages
**[[From Webpagesthatsuck.com|http://www.reforms.net/]]
**[[Another from Webpagesthatsuck.com|http://www.johnprocario.com/]]
**[[Cool, simple Tabs|http://www.smosh.com/]]
**[[Like this simple style|http://www.shauntan.net/]]
**[[Cute things for Sale|http://www.heatherbaileystore.com/]]
**[[Ocean Zen Garden|http://www.csszengarden.com/?cssfile=/210/210.css&page=0]]
**[[Cupcakes|http://www.taylormadecupcakes.co.uk/]]
**[[Nathan Love|http://nathanlove.com/]]
**[[Scrolling image bar|http://www.adamelmakias.com/]]
**[[Dan Sweet|http://dansweetdesign.com/]]
**[[Fun Flash menus|http://www.beckett.de/]]
**[[Billabong|http://www.billabong.com/]]
**[[Fahrenheit Studios|http://www.fahrenheit.com/]]
**[[Neat|http://www.cappen.com/]]
**[[Ben The Bodyguard|http://benthebodyguard.com/]]
**[[Scandinavian|http://grandpeople.no/]]  
**[[Epic|http://epicagency.net/eng/]]
**[[Scenic Backdrop (pic is < 300K)|http://jackstin.com/]]
**[[Fun Graphics |http://www.natrashka.com/]]
**[[Narrow Page|http://www.csszengarden.com/?cssfile=/203/203.css&page=1]]
**[[Photography Page|http://www.silwia.weberica.net/]]
**[[Comic Style Page|http://ma.tt/]]
**[[Monolab Media|http://www.monolab.cl/]]
**[[Knoxville, TN site|http://www.knoxville.org/]]
**[[Collage style|http://ths.nu/trash/]]
**[[30 Collage style Sites|http://www.bloggs74.com/artwork/30-inspirational-collage-style-sites/]]
**[[DropDown menus|http://www.piperboy.com/]]
**[[Ben Hulse|http://www.benhulse.com/index.php]]
**[[Cupcake Website|http://www.cupcakesonline.com/index.php]]
**[[Sticker Mule|http://www.stickermule.com/]]
**[[Cinematographer site|http://www.janreichle.com/]]

''[[We will also make favicons, which are the little icon next to the http links:|Favicons]]''

!!!Hosting your videos

*There are a few ways to host your videos. One is by hosting it on your server and using jwplayer to play it. You have a lot of customizations this way.
*Another way is Vimeo, which is considered an artist's hosting site that has less advertising than Youtube(Not as much exposure, however)
*My favorite way of hosting videos is using Youtube. With Youtube you can upload an unlimited amount of 1080P files. You also have the biggest exposure to an audience and can create your own channel. You can also get a thumbnail url when youtube generates your video.



{{{
proc sphereMake(float $level, int $evenOdd){

    // If the both button is selected make a sphere
    if ($evenOdd == 3){
        sphere -r ($level/10);
        move 0 0 ($level*$level/10);
    }
    
    // If the even button is selected the check whether to make a sphere
    // by ($evenOdd%2). If this is 0 then make the sphere
    // This is called modulo (http://en.wikipedia.org/wiki/Modulo_operation)
    // Modulo is the remainder of the division
    // For example: 4%2 is 0, 5%2 is 1, 6%2 is 0, 7%2 is 1
    if ($evenOdd == 2)
        if ($level%2){
            sphere -r ($level/10);
            move 0 0 ($level*$level/10);
    }
    
    // If the odd button is selected the check whether to make a sphere
    // by check if $evenOdd%2 == 1. If it is make the sphere
    if ($evenOdd == 1)
        if ($level%2 == 0){
            sphere -r ($level/10);
            move 0 0 ($level*$level/10);
    }
    
    // If we do not reduce level each iteration the procedure will call itself recursively until Maya crashes
    $level=$level-1;

    // We check to see if l$level is > 0, otherwise the precedure will call itself infinitely
    // unitil Maya crashes due to memory usage
    if ($level > 0)
        sphereMake($level,$evenOdd);
}


proc buttonAction1(string $floatRot)
{
    $parentRadius = `intSliderGrp -q -v $floatRot`;
	
    // radioButtonGrp is either 1,2,3, based on even, odd, or both. 
    // $choice is either 1,2,3 by querying myRadBtnGrp
    $choice=`radioButtonGrp -q -select myRadBtnGrp`;

    // This calls the sphereMake for the first time, then the recursion takes over
    sphereMake($parentRadius,$choice);
}


global proc makeAntennaUI()
{
    global string $radiusCol;
    // This checks to see if dialogBoxWindow already exists and delete it if
    // it does.
    if (`window -exists dialogBoxWindow`) deleteUI dialogBoxWindow;
        
    // -rtf true means rezize 
    window -title "Create recursion" -rtf true dialogBoxWindow;
    
    // This is the easiest way to layout UI. Another type is formLayout
    columnLayout;
	
    // Make an integer slider, -value 5 means set the default to 5
    $radiusCol = `intSliderGrp 
				-label "Number Of Spheres:" 
				-min 1 -max 10
				-value 5
				-field true`;
				
    // -select 1 means select the 1st button by default. myRadBtnGrp is the name
    // of the radio button	
    radioButtonGrp
          -numberOfRadioButtons 3
          -label "Select Type"
          -labelArray3 "Even" "Odd" "Both"
          -select 1
     myRadBtnGrp;
     
     // Make button to generate spheres
     // -w is width of button
    button -label "Make Recursive Sphere" -w 130 -command "buttonAction1($radiusCol)";
	 
    // Make button to delete every object in the scene
    button -label "Delete Objects" -w 130 -command "select -all;delete";
	 
	 
    // The window will not be displayed without this
    showWindow dialogBoxWindow;
}

// This will make the UI which then calls the sphereMake procedure
makeAntennaUI;
}}}
Make a favicon [[here|http://www.favicon.cc/]]
The favicons are 16 by 16 pixel icons.
Put the favicon.ico into the same directory as the index.html page
Put the following text in the <head> section of your html page
{{{<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> }}}
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
We have 2 Illustrator assignments.

!!!!1. Logo
*Use [[dafont.com|http://dafont.com]] for unique fonts, which can make up a big part of your logo. You can install these on a Mac by clicking install. On a Windows machine you will have to install them on your personal machine.
*This is a company that you will create that has special meaning to you, or it could be your own logo
*Keep the files .ai and do not export as gif/jpeg
*Make sure to label all layers
*If you are using fonts Expand the font so that you won't get a font substitution error when showing it on another machine
*There is no particular size as Illustrator uses curves and can be scaled infinitely large or small. They can be rasterized(pixeled) by exporting to gif/jpg/png.
*Try to get a graphic designers point of view when showing it to your friends to see if it holds up with them
*Sometimes the best logos are very simple or minimalist.
*You must expand any fonts to avoid font substitution on other machines

[img[Click to see logo examples|http://facultypages.scad.edu/~dkaul/tiddly_images/logo_Kedlun20_button.jpg][http://facultypages.scad.edu/~dkaul/logos_new.html]]
Click on the image to see examples


!!!!2. Creature/Beast/Alien
*You must have a sketch of the beast on an invisible layer. Not having this will take points off
*You can use the beginning of a tutorial but then branch off into your own creation
*Make sure to label all layers

[img[Click to see Creature examples|http://facultypages.scad.edu/~dkaul/tiddly_images/beast_sketch.jpg][http://facultypages.scad.edu/~dkaul/creatures_new.html]]
Click on the image to see examples
!!!!How I communicate with you
*I will be emailing you at your SCAD address and will need you to check it often. I have my scad email forward to my gmail account and suggest that if you don't want to keep checking your scad account.
*Your website will be hosted through studentpages.scad.edu normally but if you are working on an advanced site that is hosted somewhere else let me know and I will update my records.
!!!!Submitting work to me
*Your work will be put in the class_share folder with specific naming conventions. If your file is not named properly it will not be graded. I will not be going into your dropboxes and looking for any files. You can use filezilla(recommended) or myfile. For filezilla the host is mydfs.scad.edu
!!!!Grades
*I already mentioned this but you must turn work in on time and have only 1 week to turn in a resubmission.
!!!!Class participation:
*You will most likely learn the most from your friends and fellow classmates so class participation is required. The ability to discuss work is just as important as learning the software.
*I will need to have everyone participating to the best of their ability
!!!!Submitting projects to the class_shares folder
*To Access the dropbox with filezilla use ''Host'': mydfs.scad.edu '' login:'' loginname ''password:'' your myscad password
*You can also use myfile.scad.edu but I feel filezilla has a lot more flexibility.
!!!!Your Different Storage Areas
*You have 3 different storage areas: ''(H:)'' is your student space, which is cleared every September. This is your private space. ''(T:)'' is your dropbox. This is where you drop in your class assignments and get course materials to work on in class. This area is wiped clean after every quarter so make sure to back up anything you need before leaving for the quarter. ''(D:)'' is your temporary storage on your machine you are sitting at. This storage area is good when you want to render After Effects and Maya Movies. When rendering to your the H: or T: Drives you are going across the network, which can slow your progress and cause crashes. Therefore, when rendering anything make sure it is to the D: drive. I would also not recommend rendering directly to a flash drive as well, due to potential conflicts. You would then transfer it back to your H: or T: or your personal flash drive.

!!!!General 
*''Software used:'' We will be using Adobe Photoshop, Illustrator, After Effects, Dreamweaver, and Autodesk's Maya. You can get a free trial version of Adobe cs5 Master Collection that lasts 30 days [[here|https://www.adobe.com/cfusion/tdrc/index.cfm?product=master_collection]]. Make sure not to load the program until you need them as the 30 counter starts when you first open the program. You can get a 3 year free Maya 2011 License [[here|http://students.autodesk.com/]]
*''Lynda.com'':This is a great site for learning all the software in the class. SCAD has a free license of it through Myscad (under the workspace tab and the bottom far right). Access it there to get the free version. This would cost $40 per month if you were not a member of SCAD so this is a valuable resource.
*''Class Participation'': I grade on class participation and will need everyone to critique each others work for all assignments.
*''Resubmissions'': Resubmissions for higher grades can be done a maximum of 1 week after the assignment ends. For example, if an assignment is due Monday, you can resubmit a file up to the next Monday, but no later. I have a lot of grades to put in and I need to enforce this rule.
*''Capital Letters and spaces in filenames'': Use ''NO'' capitals letters or spaces for any file names. This is important when we deal with webpages; Not following this rule will complicate things dramatically.
*''Class Share Folder'': You will need to upload all of your assignments to the _class_share folder in your class dropbox. Get to know both Filezilla and myfile.scad.edu so you can upload all projects to your class_share folder. Sometimes myfile.scad.edu will malfunction, leaving Filezilla as your other option. Filezilla also supports drag and drop to and from the desktop.
*''. files'':  If you are using a Mac at home or a laptop, keep in mind that files that begin with a . are not the actual files. Please do not put them in the dropbox. They are resource fork files and are not used in Windows.
!!!!Photoshop 
*''Resolution of file'': For your Photoshop files, including put yourself in History and digital composite you must have a resolution on 1280 * 720 or a resolution of 1920 * 1080, which is blue ray size.
!!!!After Effects
*''File size'': In After Effects, to keep a smaller file size for your movies and when creating movies from Maya, use  //.h264// as the format when you go to render queue. If this is not done the files can be over 500MB and will not be graded.
*''.aep files'':  The After Effects project file is called an .aep. This file does not contain the actual images and audio that you need for the movie and I cannot grade it. Therefore it is important to have the whole project in a folder so you can transfer it if needed. I need the rendered out movie as an .mp4 and not the .aep file
*''Audio'': All After Effects movies (including Maya) must have audio. This audio must fade out to silence at the end of the video. There is to be a gradual drop off audio. //Remember Ram->Preview// button to hear audio
*''Resolution'': For your After Effects movies and when using After Effects for Maya images, use 720P. Do not go higher or lower. This is a good medium resolution for video that is 16:9 aspect ratio, (A Droid Incredible smartphone resolution is 854 * 480, which is the same 16:9 aspect ratio)
*''Group work'': You can work as a group for your After Effects Visual Effects assignment (Such as filming a Special Effects movie). You generally receive the same grade.
*''Length of movie'': Please keep them at 30 seconds or less unless you get with me to discuss a longer length
*"fonts": For fonts I tend to stay away from generic fonts supplied by them system. I like [[1001fonts.com|1001fonts.com]] where you can try out a new font and copy the resulting text image for use as a layer in After Effects
!!!!Illustrator
*''.ai files'': For your Illustrator assignments the files submitted must be the .ai files. The illustrator assignments can have some rasterized (Think Photoshop) elements, but it must be kept to a minimum. I can only grade .ai files, which is the native Illustrator file.
*''Expanding Fonts'':You might find when you open up your Illustrator file on another machine that it says font substitution. You need to expand the appearance of the fonts. Not doing this will result in a reduction of your grade as well as showing a different image than what was intended.
!!!!Maya
*''First assignment'': First assignment is the fruit plate. All students must make one of these(You can create another food item if you get with me first).
*''Group Work'': You can work as a group for your Maya final. You generally receive the same grade.
*''Those with prior Maya experience'': If you are an experienced user of Maya and want to spend 2 weeks on creating a great final you can  combine the fantastic voyage assignment and the Maya final project. You would then have 2 weeks to make a sweet Maya final project. This would count as both of the grades.
*''Length'': Unless we discuss otherwise please keep the animations around 30 seconds in length and don't go over or under more than a few seconds
*''Paint Effects'': I know they are fun but  go easy on the paint effects. They can be nice looking if used sparingly. The problem is that you can always tell they are paint effects.
!!!!Dreamweaver
*''Already have a webpage'': If you are already familiar with Dreamweaver and other web developing software let me know about it. You can make a webpage for this class using Flash. You are not limited to Dreamweaver.
*''Hosting Movies'': For hosting your animations and movies I would go with Vimeo or YouTube as they are guaranteed to play quickly (Flash compression). Nothing is worse than trying to play a movie off your own server that gets stuck
*''Small amount of programming'': There is a minor amount of code with shadowbox, which presents images/videos in a clean format.
*''Making Thumbnails'': Make sure to make thumbnails, which are lo-res versions of your images. You click on the thumbnails to reveal the larger image.




!!!!How I communicate with you

*I will be emailing you at your SCAD address and will need you to check it often. I have my scad email forward to my gmail account and suggest that if you don't want to keep checking your scad account.
*Your website will be hosted through studentpages.scad.edu normally but if you are working on an advanced site that is hosted somewhere else let me know and I will update my records.

!!!!Submitting work to me

*Your work will be put in the class_share folder with specific naming conventions. If your file is not named properly it will not be graded. I will not be going into your dropboxes and looking for any files. You can use filezilla(recommended) or myfile. For filezilla the host is mydfs.scad.edu

!!!!Grades

*I already mentioned this but you must turn work in on time and have only 1 week to turn in a resubmission.

!!!!Class participation:

*You will most likely learn the most from your friends and fellow classmates so class participation is required. The ability to discuss work is just as important as learning the software.
*I will need to have everyone participating to the best of their ability

!!!!Submitting projects to the class_shares folder

*To Access the dropbox with filezilla use Host: mydfs.scad.edu login: loginname password: your myscad password
*You can also use myfile.scad.edu but it has been inconsistent in the past whereas Filezilla is guaranteed to work

!!!!Your Different Storage Areas

*You have 3 different storage areas: (H:) is your student space, which is cleared every September. This is your private space. (T:) is your dropbox. This is where you drop in your class assignments and get course materials to work on in class. This area is wiped clean after every quarter so make sure to back up anything you need before leaving for the quarter. (D:) is your temporary storage on your machine you are sitting at. This storage area is good when you want to render After Effects and Maya Movies. When rendering to your the H: or T: Drives you are going across the network, which can slow your progress and cause crashes. Therefore, when rendering anything make sure it is to the D: drive. I would also not recommend rendering directly to a flash drive as well, due to potential conflicts. You would then transfer it back to your H: or T: or your personal flash drive.


!!!!General

*Software used: We will be using Adobe Photoshop, Illustrator and Dreamweaver. You can get a free trial version of Adobe cs5 Master Collection that lasts 30 days here. Make sure not to load the program until you need them as the 30 counter starts when you first open the program. 
*Lynda.com:This is a great site for learning all the software in the class. SCAD has a free license of it through Myscad (under the workspace tab and the bottom far right). Access it there to get the free version. This would cost $40 per month if you were not a member of SCAD so this is a valuable resource.
*Class Participation: I grade on class participation and will need everyone to critique each others work for all assignments.
*Resubmissions: Resubmissions for higher grades can be done a maximum of 1 week after the assignment ends. For example, if an assignment is due Monday, you can resubmit a file up to the next Monday, but no later. I have a lot of grades to put in and I need to enforce this rule.
*Capital Letters and spaces in filenames: Use NO capitals letters or spaces for any file names. This is important when we deal with webpages; Not following this rule will complicate things dramatically.
*Class Share Folder: You will need to upload all of your assignments to the _class_share folder in your class dropbox. Get to know both Filezilla and myfile.scad.edu so you can upload all projects to your class_share folder. Sometimes myfile.scad.edu will malfunction, leaving Filezilla as your other option. Filezilla also supports drag and drop to and from the desktop.
*. files: If you are using a Mac at home or a laptop, keep in mind that files that begin with a . are not the actual files. Please do not put them in the dropbox. They are resource fork files and are not used in Windows.

!!!!Photoshop

*Resolution of file: For your Photoshop files, including put yourself in History and digital composite you must have a resolution on 1280 * 720 or a resolution of 1920 * 1080, which is blue ray size.


!!!!Illustrator

*.ai files: For your Illustrator assignments the files submitted must be the .ai files. The illustrator assignments can have some rasterized (Think Photoshop) elements, but it must be kept to a minimum. I can only grade .ai files, which is the native Illustrator file.
*Expanding Fonts:You might find when you open up your Illustrator file on another machine that it says font substitution. You need to expand the appearance of the fonts. Not doing this will result in a reduction of your grade as well as showing a different image than what was intended.


!!!!Dreamweaver

*Already have a webpage: If you are already familiar with Dreamweaver and other web developing software let me know about it. You can make a webpage for this class using Flash. You are not limited to Dreamweaver.
*Hosting Movies: For hosting your animations and movies I would go with Vimeo or YouTube as they are guaranteed to play quickly (Flash compression). Nothing is worse than trying to play a movie off your own server that gets stuck
*Small amount of programming: There is a minor amount of code with shadowbox, which presents images/videos in a clean format.
*Making Thumbnails: Make sure to make thumbnails, which are lo-res versions of your images. You click on the thumbnails to reveal the larger image.


[img[http://facultypages.scad.edu/~dkaul/screenshots/indesign.png]]
From the Adobe site:
Design professional layouts for print and digital publishing
Adobe® InDesign® CS5 software provides precise control over typography and built-in creative tools for designing, preflighting, and publishing documents for print, online, or to mobile devices. Include interactivity, animation, video, and sound in page layouts to fully engage readers.

We will be making a professional 3 page pdf of your work, which can be from any class. You will have images and text nicely formatted. You will also make a portion of it interactive.
[[Bash: Most recent Bash Info|https://docs.google.com/Doc?docid=0AWDZEMSAk7FEZHczODU3OF83OGZkNnc0ajJn&hl=en_US]]
[[Bash: Mr T quiz|https://docs.google.com/Doc?docid=0AWDZEMSAk7FEZHczODU3OF82MTVyYmRqNWdm&hl=en_US]]
[[Bash: Arrays and string manipulation|https://docs.google.com/Doc?docid=0AWDZEMSAk7FEZHczODU3OF85OWNkd2M3OWRj&hl=en_US]]
[[Bash: Bash sample Exam|https://docs.google.com/Doc?docid=0AWDZEMSAk7FEZHczODU3OF8xMzlrNHE5MzZkbg&hl=en_US]]
[[Bash: Hosuk Chang Timer program|http://docs.google.com/Doc?id=dw38578_2268fkxqvgm]]
[[Bash: Rock Paper Scissors|http://docs.google.com/Doc?id=dw38578_144hc2666fn]]
[[Bash: Making MEL file from bash data|http://docs.google.com/Doc?id=dw38578_93g44kpnnv]]
[[Bash: In class bash assignment|http://docs.google.com/Doc?id=dw38578_90dpdjgfkh]]
[[Bash: Arrays and String Information|http://docs.google.com/Doc?id=dw38578_99cdwc79dc]]
[[Bash: Bum fight game|https://docs.google.com/Doc?docid=0AWDZEMSAk7FEZHczODU3OF8xNDJjeGQ2bnRnbQ&hl=en_US]]
[[Bash: Dark Angel Text Adventure|http://docs.google.com/Doc?id=dw38578_92dj66tmdt]]
[[Bash: Using variables|http://facultypages.scad.edu/~dkaul/programming/vsfx_160_bash_files/usingVariables.sh]]
[[Bash: Basic D&D battle|http://docs.google.com/Doc?id=dw38578_151cfp626cn]]
[[Bash: D&D battle w/weapons|http://docs.google.com/Doc?id=dw38578_149d49xt5ns]]
[[Bash: Run a script when last file renders|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/run_prog_chk_file_size.sh]]
[[Bash: Caps to lowercase|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/caps_to_lowercase.sh]]
[[Bash: If then statement syntax|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/if_then_statement.sh]]
[[Bash: if-then-else syntax|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/elif_statement.sh]]
[[Bash: Simple Array|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/using_arrays.sh]]
[[Bash: Magic 8-Ball (Random function)|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/8ball.sh]]
[[Bash: Shell Game|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/shellgame.sh]]
[[Bash: case syntax|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/case_example.sh]]
[[Bash: Matrix Adventure (Beginner)|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/matrix_adventure.sh]]
[[Bash: Proper Dating Age|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/dating.sh]]
[[Bash: Eighties rock song quiz|href="http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/song.sh]]
[[Bash: No repeating Array|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/no_repeat_array.sh]]
[[Bash: Hangman|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/hangman.sh]]
[[Bash: Simple Fortune teller|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/fortune.sh]]
[[Bash: Horoscope (Case statement)|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/horoscope.sh]]
[[Bash: Colored Text|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/colored_text.sh]]
[[Bash: Number Guessing Game|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/guess_num.sh]]
[[Bash: Read 1 character w/o hitting enter|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/read_only_1_character_without_hitting_enter.sh]]
[[Bash: Read multiple word answer|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/answer_with_2_words.sh]]
[[Bash: Read command line as input|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/command_line_input_as_variables.sh]]
[[Bash: Using arrow keys|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/use_arrow_keys.sh]]
[[Bash: GUI dialog boxes (Linux Only)|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/gui_dialog_boxes.sh]]
[[Bash: Text dialog boxes (Certain linux distros)|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/text_dialog_boxes.sh]]
[[Bash: Graphic Adventure game zip file|http://facultypages.scad.edu/~dkaul/vsfx_160_bash_files/adventuregraphic.zip]]
[[Welcome]]

//Classes//
[[VSFX 501]]
[[VSFX 160]]
[[CMPA 110]]
[[CMPA 100]]



//General//
[[Contact]]
[[Office hours|Contact]]
[[Daily Motivation]]

//Dave Kaul//
[[Bio|Bio]]
[[Portfolio|http://facultypages.scad.edu/~dkaul/kaul_portfolio_shadowbox_all.html]]
[[LinkedIn|http://www.linkedin.com/in/davekaul]]
[[Facebook|http://www.facebook.com/davekaul]]
[[YouTube|http://www.youtube.com/davekaul]]
[[Vimeo|http://www.vimeo.com/davekaul]]
Everything in this code has been made by doing the command in the GUI and looking at the resulting code in the script editor
{{{
Make a curve
Look up the command in the script editor
}}}


The first command you want to know is how to get help on a command
{{{
help -doc curve
}}}

This makes a curve with only 2 points starting at the origin. The -d 1 means it is a linear curve. The -p means point and is in x,y,z space, which is the 3 numbers
{{{
curve -d 1 -p 0 0 0 -p -2.7 0 1.3;
}}}

This makes a simple curve. The -d 3 means a cubic curve, as opposed to linear. There are 8 points on this curve.
{{{
curve -d 3 -p 0 0 0 -p -2.7 0 1.3 -p -0.8 0 4.4 -p 1.0 0 7.7 -p -0.3 0 10.3 -p -0.0 0 14.2 -p 1.7 0 17.3 -p 0.8 0 18.5 ;
}}}

This part will create a random number.
{{{
float $x = rand(5,10);
print $x;
}}}


You can make an x,y,z random point with the following command. Notice the spaces in between the numbers
{{{
string $point_test = " -p " + rand(-10,10) + " " + rand(20,23) + " " + rand(-10,-34);
print $point_test;
}}}

We will then use the eval command to run the string as a command. The following will make a poly sphere by evaluating the string
{{{
$test ="polySphere";
eval($test);
}}}


We will combine the points into a string, which is a series of characters. This prints out a lot of numbers but provides the MEL code for a curve.
{{{
$p1 = " -p 0 5 -20";
$p2 = " -p " + rand(-10,10) + " " + rand(20,23) + " " + rand(-10,-34);
$p3 = " -p " + rand(-10,10) + " " + rand(29,32) + " " + rand(-10,-34);
$p4 = " -p " + rand(-10,10) + " " + rand(42,45) + " " + rand(-10,-34);
$p5 = " -p " + rand(-10,10) + " " + rand(54,57) + " " + rand(-10,-34);
$p6 = " -p " + rand(-10,10) + " " + rand(65,67) + " " + rand(-10,-34);

string $curve="curve -d 3 "+ $p1 + $p2 + $p3 + $p4 + $p5 + $p6;
print $curve;

eval($curve);
}}}


We will make a basic for loop with spheres before we duplicate the curves
{{{
for ($i=1; $i<=10; $i++)
{
    polySphere;
    move 0  ($i*2) 0 ;
}
}}}

We will make a series of curves all random but following the same general path
{{{
file -f -new;

int $num_of_tentacles = 10;

for ($i=1; $i <= $num_of_tentacles; $i++){

$p1 = " -p 0 5 -20";
$p2 = " -p " + rand(-10,10) + " " + rand(20,23) + " " + rand(-10,-34);
$p3 = " -p " + rand(-10,10) + " " + rand(29,32) + " " + rand(-10,-34);
$p4 = " -p " + rand(-10,10) + " " + rand(42,45) + " " + rand(-10,-34);
$p5 = " -p " + rand(-10,10) + " " + rand(54,57) + " " + rand(-10,-34);
$p6 = " -p " + rand(-10,10) + " " + rand(65,67) + " " + rand(-10,-34);

$curve="curve -d 3 "+ $p1 + $p2 + $p3 + $p4 + $p5 + $p6;

eval($curve);
}
}}}

Lets make a circle to extrude with:
{{{
circle;
scale -r .35 .35 .35;
rename main_circle;
}}}

To change the visibility of an object use the following:
{{{
$i=1;
$current_curve= "curve" + $i + ".visibility";
}}}

To extrude a curve along the main circle. 
{{{
$i=1;
string $current_curve = "curve" + $i;
extrude -ch true -rn true -et 2 -upn 1 -scale .000001 -rsp 1 -useComponentPivot 1 "main_circle" $current_curve ;
}}}


TO make a  number of extrusions
{{{
int $num_of_tentacles = 10;
for ($i=1; $i<= $num_of_tentacles; $i++)
{
string $current_curve = "curve" + $i;
extrude -ch true -rn true -et 2 -upn 1 -scale .000001 -rsp 1 -useComponentPivot 1 "main_circle" $current_curve ;
}
}}}


The whole thing is here but I can't go into all the detail
{{{

file -f -new;
//MATRIX TENTACLES BY DAVE KAUL
//***** THIS PART CREATES THE CURVES
$tentacleNum = 50;
for ($i=1;$i<=$tentacleNum;$i++)
{
$p1 = " -p 0 5 -20";
$p2 = " -p " + rand(-10,10) + " " + rand(20,23) + " " + rand(-10,-34);
$p3 = " -p " + rand(-10,10) + " " + rand(29,32) + " " + rand(-10,-34);
$p4 = " -p " + rand(-10,10) + " " + rand(42,45) + " " + rand(-10,-34);
$p5 = " -p " + rand(-10,10) + " " + rand(54,57) + " " + rand(-10,-34);
$p6 = " -p " + rand(-10,10) + " " + rand(65,67) + " " + rand(-10,-34);
$sas = "curve -d 3 " + $p1 + $p2 + $p3 + $p4 + $p5 + $p6;
eval($sas);
$bug = "curve" + $i + ".visibility";
setAttr $bug 0;
}

circle;
scale -r .35 .35 .35;
//**** THIS PART MAKES THE EXTRUDE AND KEYS IT ***

for ($i=1;$i<=$tentacleNum;$i++)
{
string $bug = "curve" + $i;
extrude -ch true -rn true -et 2 -upn 1 -scale .000001 -rsp 1-useComponentPivot 1 "nurbsCircle1" $bug ;

$bug = "extrude" + $i + ".fixedPath";
setAttr $bug 1;
$bug = "extrude" + $i + ".useComponentPivot";
setAttr $bug 2;
displaySmoothness -divisionsU 3 -divisionsV 3 -pointsWire 16 -pointsShaded 12;
subdivDisplaySmoothness -smoothness 5;
// This is to render with more tesselation
setAttr ("extrudedSurfaceShape"+$i+".explicitTessellationAttributes") 1;
setAttr ("extrudedSurfaceShape"+$i+".numberV") 9;

//**** KEY FRAME 1 ****//
$bug = "subCurve" + $i*2 + ".maxValue";
setAttr $bug .075;
currentTime -update false 1;
$bug = "subCurve" +$i*2 + ".max";
setKeyframe -itt flat -ott flat $bug;

//*** KEY RANDOM LAST FRAME ***//
$bug = "subCurve" + $i*2 + ".maxValue";
setAttr $bug 1;
currentTime -update false (rand(90,180));
$bug = "subCurve" +$i*2 + ".max";
setKeyframe -itt flat -ott flat $bug;

}
}}}



[img[Click to see Maya examples|https://facultypages.scad.edu/~dkaul/maya_images/mayascene_garice21_small.jpg][http://facultypages.scad.edu/~dkaul/maya_images_page.html]]




[[Looking at Baby animals improves learning article|http://www.cbc.ca/news/yourcommunity/2012/10/looking-at-photos-of-baby-animals-improves-productivity-study-finds.html]]

[[Baby animals Images|http://cute-baby-animals.tumblr.com/]]

[[Boogeyman |http://www.youtube.com/watch?v=_Ee3C2m3OXE&feature=player_detailpage#t=26s]]
[[Disco Inferno|http://www.youtube.com/watch?v=A_sY2rjxq6M&feature=player_detailpage#t=111s]]



Use the mydfs.scad.edu in the Host section, like this:

<html><div align="center"><img src="http://facultypages.scad.edu/~dkaul/tiddly_images/mydfs.PNG"</div></html>
<div class='header'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> 
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> 
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='macro' force='true' macro='slider chkSideBarTabs SideBarTabs "index »" "display lists of tiddlers"'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
!!!Putting the page online


*''VITAL:You must activate your student webspace through MyScad under the My Info tab under Web Space Activation.''
*It takes around 5 minutes to become fully activated. Your site is accessed with studentpages.scad.edu/~yourlogin20
*First, make sure your main page is called  ''index.html''    It ''cannot'' have any uppercase letters or contain spaces. This must be the main page that others are linked to and it must be in the web_pages folder
*Very important: Your site must sit in one folder and have just the files used for the pages. This means ''no'' .psd files or .ai files, or .aep files.
*Important: In your studentpages.scad.edu site there is a folder called web_pages. 
*The contents of your website must be in that folder and your homepage file must be called index.html
*Remember not to have any spaces or capital letters. This can unlink files and cause a hassle

!!!1st is using Filezilla/or fetch (if on Mac)(This is good for both putting your website online and also putting assignments in the class_share folder
Use filezilla (a program loaded on your machines, if is is not there go to filezilla.com and download. It is free.)

!!!IF in CMPA 100: Filezilla is not installed but an equally excellent program is Fetch, which has a dog icon and does the same thing.

To access the studentpages.scad.edu through filezilla use host: studentpages.scad.edu and your myscad login and password
[img[In filezilla fill out the top portion and click quickconnect|http://facultypages.scad.edu/~dkaul/tiddly_images/filezilla.gif]]


!!!2nd way is using Dreamweaver's manage sites area(Site->Manage Sites)

If you are publishing your site with Dreamweaver (Which makes it easier to make changes and click the up arrow to publish), you must type in web_pages in the root directory path, as shown below:

[img[In Dreamweaver you must have this folder set|http://facultypages.scad.edu/~dkaul/tiddly_images/web_pages_folder.gif]]


!!!The 3rdway is to use myfile.scad.edu

The most important thing to remember is to put the contents of your folder to be uploaded(Not the actual folder, just the contents) into the web_pages folder.
[img[Make sure to put files in web_pages|http://facultypages.scad.edu/~dkaul/tiddly_images/myfile.gif]]

!!!!We have 3 assignments for this section

1. We will create a resume with Microsoft Word and use a template for it. You can add a logo to it as well.
2. We will make a short cover letter
3. We will make a business card(This is actually with Photoshop, 

Home Of Dave Kaul
/*{{{*/
.borderlessL, .borderlessL table, .borderlessL td, .borderlessL tr, .borderlessL th, .borderlessL tbody { border:0 !important; margin:0 !important; padding:0 !important; td.vertical-align:top !important;margin-left: 0 !important; margin-right: auto !important; padding:7px !important;} 

.header {
 height: 220px;
 background: url('http://facultypages.scad.edu/~dkaul/tiddly_images/header_hydrant4.jpg') ; 
background-position:center; 
background-repeat:no-repeat;
}

body {font-family: Georgia, "Times New Roman", Times, serif; font-size: 10pt; line-height: 14pt;
background-image: url('');

background-color:#f0f4f9; /* light grey for Paranormal Activity*/
background-color:#FAFAD2;  /*normal yellow*/

background-repeat:no-repeat;}
a {border-bottom: 1px dotted #2e2e2e; text-decoration: none;}
hr {
	border-top-width: 1px;
	border-right-width: 1px;
	border-bottom-width: 1px;
	border-left-width: 1px;
	border-top-style: solid;
	border-right-style: none;
	border-bottom-style: none;
	border-left-style: none;
	border-top-color: #313F5A;
	border-right-color: #333333;
	border-bottom-color: #333333;
	border-left-color: #333333;
	width: 100%;
}
.viewer pre {
	font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace;
	color: #000000;
	background-color: #ddd;
	font-size: 9.25pt;
	border: 1px dashed #999999;
	line-height: 10pt;
	/*padding: 4px;*/
	overflow: auto;
	width: 90%;
	white-space:pre;
}
.viewer code {
	font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace;
	color: #000000;
	background-color: #ddd;
	font-size: 9.25pt;
	white-space: nowrap;
}
.externalLink {text-decoration: none;}
.subtitle {font-size: 9.5pt; color: #transparent; padding-top: 6pt; padding-bottom: 12pt;}
.siteTitle {font-size:0pt;}
.siteSubtitle {font-size: 0pt;}
 .tiddler .subtitle {
         display: none;
     } 
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none; margin-bottom:1.0em; border:none;}
h1,h2,h3 {margin-top:1.2em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:1em;}
.headerShadow {position:relative; padding:2em 0 1em 1em; left:0px; top:0px;}
.headerForeground {position:absolute; padding:2em 0 1em 1em; left:0px; top:0px;}
#mainMenu {position:absolute; left:0; width:10em; text-align:left; padding:2.75em 0.5em 0.5em 1em;}
.tiddler {padding:1em 1em 2em; margin-bottom: 0.5em; border-bottom: 1px dotted #2e2e2e;}
.tagged {
         display: none;
     } 
.kManicule {font-size:150%;}


/*}}}*/
We will be making a simple GUI(Graphical user Interface) for the truck:

Download the truck  called dave_rework_truck.mb here:

http://facultypages.scad.edu/~dkaul/maya_models/

Example 1:
{{{
//Build GUI for truck

string $window_name=`window -title "Truck Controls" -menuBar true -wh 483 203`;

//Show the window

showWindow $window_name;
}}}

Example 2:
{{{
//How to get information on a command
help -doc attrFieldSliderGrp
}}}

Example 3:
{{{
//Build GUI for truck
string $window_name=`window -title "Truck Controls" -menuBar true -wh 483 203`;

attrFieldSliderGrp  -label "Rotate the Lift" -min -10 -max 10 -at entire_truck.rotate_lift;
attrFieldSliderGrp  -label "Open the Door" -min 0 -max 10 -at entire_truck.open_door;
attrFieldSliderGrp  -label "Open the Hood" -min -10 -max 10 -at entire_truck.open_hood;

showWindow $window_name;
}}}

Example 4(sets the floating point to 1 digit):
{{{
//Build GUI for truck
string $window_name=`window -title "Truck Controls" -menuBar true`;
columnLayout;
Download the truck:
facultypages.scad.edu/web_pages/maya_models/dave_rework_truck.mb



attrFieldSliderGrp  -w 350 -pre 1 -label "Rotate Lift" -min -10 -max 10 -at entire_truck.rotate_lift;
attrFieldSliderGrp  -w 350 -pre 1 -label "Open Door" -min 0 -max 10 -at entire_truck.open_door;
attrFieldSliderGrp  -w 350 -pre 1 -label "Open Hood" -min -10 -max 10 -at entire_truck.open_hood;

showWindow $window_name;
}}}

For rotating wheels using pi:
{{{
// 2.25 is the radius of the wheel

r_w_wheel.rotateX=entire_truck.translateZ / (2 * 3.14 * 2.25) * 360;
r_f_wheel.rotateX=entire_truck.translateZ / (2 * 3.14 * 2.25) * 360;
l_f_wheel.rotateX=entire_truck.translateZ / (2 * 3.14 * 2.25) * 360;
l_r_wheel.rotateX=entire_truck.translateZ / (2 * 3.14 * 2.25) * 360;
}}}

Example of radio button added to truck wheel expression:
{{{
//Build GUI for truck
string $window_name=`window -title "Truck Controls" -menuBar true`;
columnLayout;

attrFieldSliderGrp  -w 350 -pre 1 -label "Rotate Lift" -min -10 -max 10 -at entire_truck.rotate_lift;
attrFieldSliderGrp  -w 350 -pre 1 -label "Open Door" -min 0 -max 10 -at entire_truck.open_door;
attrFieldSliderGrp  -w 350 -pre 1 -label "Open Hood" -min -10 -max 10 -at entire_truck.open_hood;
$wheelExpression=`radioButtonGrp -numberOfRadioButtons 2 -label "Wheel Expression"
    -labelArray2 "On" "Off" -select 1`;
showWindow $window_name;
}}}
!!!lifehacker.com
Various tips and tricks, downloads for getting things done.

!!!fcheck
Use fcheck, which is Maya's flipbook program to rename files. For instance, if your frames are coming out link example.jpg.1 these will not go into After Effects. Use fcheck to rename by loading animation, 1st frame and saving out as example.####.jpg
The #### generates a 4 digit number so the rename would be example.0001.jpg, which is a format that After Effects can read

!!!Ceedo
Ceedo will allow you to run programs from your own flash drive without installing them on to the school machines. 45 day trial

!!!filemail.com
This software will allow you to send files up to 2GB by sharing a link. The recipient will be able to download the files. Free version has 2GB file size limit

!!!mpeg streamclip
This is an excellent movie format converter.[ Here|http://www.squared5.com]. You can define how large the output file is to be.

!!!Adobe Media Encoder. This can convert movies to flv (flash) format among other things.

!!!TeamViewer
This software allows you to view someone elses desktop and control their cursor with your mouse remotely. You can also transfer files that way. Free to use
!!![[ Google Slides presentation|https://docs.google.com/presentation/d/1EwDilVNeLRXYbyLT8tiAp2DrlDPKPy4GBTqttSH1P-s/edit?usp=sharing]]


[[Google Slides presentation|https://docs.google.com/presentation/d/16ncJHmbK1Lj7nEH9-Lw5ehqHTvQJSgo6vYp8C6S-8xU/edit?usp=sharing]]

[[Truck]]
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'>Updated <span macro='view modified date'></span> by <span macro='view modifier link'></span></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
[[Here is a demonstration of when to use jpg, and png formats|http://facultypages.scad.edu/~dkaul/image_formats.html]]
[[1001fonts.com is useful to try out different font styles|http://www.1001fonts.com/]]
<html><div align="center"><img src="https://facultypages.scad.edu/~dkaul/cgfrog_splash.jpg"</div></html>

<html><div align="center">Welcome Everyone!</div></html>
!!!!We have 2 assignments for this section

1. We will create a resume with Microsoft Word and use a template for it. You will ad your logo.
2. We will make a short cover letter with your actual signature and your logo.
We will have all three assignments due on the same day.

Resume needs to have a logo on the top, or a nice font for your header.
The cover letter needs the same logo and an actual signature in the letter(Use a tablet or write it out on paper and scan it in. if you don't want your signature write out a different persons.)
The card has to have the same unified logo as the resume and cover letter.

Here is some advice on creating a good cover letter:
http://www.animationoptions.com/blog/2008/09/17/paper-covers-rock/

50 questions you should know the answer to:
http://bhuvans.wordpress.com/2006/08/19/50-common-interview-qa/

Advice on making business cards:
http://bbrathwaite.wordpress.com/2008/01/19/business-card-titles-the-dark-truth-about-student-business-cards/
From Ken Huff:

There is a mechanism for individualizing the Linux environment at SCAD on a user-by-user basis. This involves placing a specially-named text file, {{{bash_custom}}} (no file name extension!), in the user&rsquo;s network home directory. These directories are available at {{{~/mount/stuhome}}} for students and {{{~/mount/fachome}}} for faculty. These {{{bash_custom}}} files act like {{{.bashrc}}} or {{{.profile}}} files and are executed when a new Terminal window is launched. See {{{man bash}}} for more information.

Under Linux, we have two home directories, one local to the specific workstation and another which is our network home directory. If you use the command line {{{cd ~}}}, you will end up in the local home directory. If you make use of the local home directory, you should consider it temporary storage. You will end up with one of these local home directories on each Linux workstation that you use.

''Important:'' These configuration settings can change from quarter to quarter. Whenever there is an upgrade of the operating system or affected applications, you will need to confirm that these settings still are valid.

!!!!Example bash_custom for students
This example {{{bash_custom}}} sets up the following:
*Maya preferences (and scripts installed in the {{{maya/}}} directory) will follow you from workstation to workstation; this also makes the preferences cross-platform between Windows and Linux.
*Houdini version 11.0.639 will be the default version (instead of the 10.0.x version that is the standard default at SCAD); invoking {{{houdini}}} at the command line will start version 11.
*Houdini preferences will follow you (also Windows/Linux cross-platform).
{{{
# For Maya (as of/up to Maya 2011)
# define the Maya "home" directory which contains settings, scripts, etc.
export MAYA_APP_DIR=~/mount/stuhome/maya

# For Houdini (as of Houdini 11)
# Following two lines are standard setup for Houdini; the first would need to be updated if Houdini is updated
cd /opt/hfs11.0.639
source houdini_setup_bash
cd ~

# if the ~/houdini11.0 directory exists, delete it
if [ -d ~/houdini11.0 ];
then
    rm -f -r ~/houdini11.0
fi

# confirm the existence of ~/mount/stuhome/houdini11.0 , create if missing
if [ ! -d ~/mount/stuhome/houdini11.0 ];
then
    mkdir ~/mount/stuhome/houdini11.0
fi

# create a symbolic link to a network directory containing
# the Houdini 11 settings
ln -s ~/mount/stuhome/houdini11.0 ~/houdini11.0
}}}

If you would like //jEdit// preferences which follow you (Linux only), follow [[these instructions.|jEdit: Set-up at SCAD]]
Beginning parts are from the Mel Scripting book:

Using switch statement:
{{{
$number=1;

switch ($number)
{
    case 1:
    print "It's one";
    break;
   
    case 2:
    print "It's two";
    break;
    
    case 3:
    print "It's three";
    break;
    
    default:
    print "I don't know what it is";
    break;
}
}}}


while loops:
{{{
int $test_int = 3;
while ($test_int < 100)
{
    $test_int=$test_int*3;
    print ("$test_int is equal to " + $test_int + "\n");
}
}}}

for loops:

{{{
for ($counter=1;$counter < 100; $counter++)
    {
        print ($counter+"\n");
    }
}}}

for in loops:
{{{
string $selectedList[]=`ls -sl`;
string $currentObject;

for ($currentObject in $selectedList)
{
    print ("You've selected " + $currentObject + "\n");
}
}}}

Basic recursion, notice how a procedure calling itself looks like it is looping.
{{{

proc easy(int $level){
    print ("We are at recursion level "+$level+"\n");
    $level--;
    if ($level > 0)
        easy($level);
}
}}}

To call the procedure.
{{{
easy(5)
}}}

Let's add graphics to it for a visual demonstration
{{{
proc sphereMake(float $level){

    $level=$level-.1;
    sphere -r $level;
    move 0 0 ($level*$level*10);
    if ($level > 0)
        sphereMake($level);
}
}}}

To run type:
{{{
sphereMake(1)
}}}
The 3rd assignment is to make a recursive antenna that is controled with a GUI(Graphical User interface). 
The intent is to use recursion to create a series of objects and recursively duplicate them until a certain amount, such as the scale of an object. Otherwise the recursion will never stop and hang Maya. The other part is to make a GUI with it to plug in the numbers into the procedures.

The following code is an example of the assignment:

{{{
// MakeAntennaUI
// By Nate Usiak
// Run script and then type makeAntennaUI

proc makeAntenna(string $parentSphereName, int $shapeType, float $parentRadius, float $rotAngle, float $scale, int $firstSphere)

{
	switch ($shapeType)
	{
		case 1:
			if ($firstSphere)
   			{
				string $shapes[] = `sphere -name $parentSphereName`;
				$parentSphereName = $shapes[0];
				scale $parentRadius $parentRadius $parentRadius;
   			}	
       		break;
		case 2:
			if ($firstSphere)
   			{
				string $shapes[] = `cone -name 	$parentSphereName`;
				$parentSphereName = $shapes[0];
				scale $parentRadius $parentRadius 	$parentRadius;
   			}
			break;
		case 3:
			if ($firstSphere)
   			{
				string $shapes[] = `torus -ax 1 0 0 -hr 0.5 -name $parentSphereName`;
           			$parentSphereName = $shapes[0];
				scale $parentRadius $parentRadius $parentRadius;
   			}

			break;
	}

	select -r $parentSphereName;
   	string $duplicateName[] = `duplicate`;

   	string $childSphereName = $duplicateName[0];

   	select -cl;  
// Clear out the selection
   	select $childSphereName $parentSphereName;  	
// select the child, 
// then the parent
   	parent;
   	select $childSphereName;

   	float $childSize = $scale * $parentRadius;

   	scale $scale 
       	$scale
         	$scale;

   	move -localSpace (1 + $scale) 0 0;

   	select $parentSphereName;
   	rotate 0 0 $rotAngle;   // rotate around Z, because we're moving in X.

   	if ($childSize > 0.05)
   	{
      		makeAntenna ($childSphereName, $shapeType, $childSize, $rotAngle, $scale, 0);
   	}
}

// Button action procedure
proc buttonAction1 (string $stringShapeName, int $shapeType, string $floatRad, string $floatRot, string $floatScale, string $first)
{
	$parentSphereName = `textFieldGrp -q -text $stringShapeName`;
	$parentRadius = `floatSliderGrp -q -v $floatRad`;
	$rotAngle = `floatSliderGrp -q -v $floatRot`;
	$scale = `floatSliderGrp -q -v $floatScale`;

// Switch for each button
	switch ($shapeType) 
	{

		case 1:
		makeAntenna($parentSphereName, 1, $parentRadius, $rotAngle, $scale, 1);
		break;

		case 2:
		makeAntenna($parentSphereName, 2, $parentRadius, $rotAngle, $scale, 1);
		break;

		case 3:
		makeAntenna($parentSphereName, 3, $parentRadius, $rotAngle, $scale, 1);
		break;
	}
}

// User interface procedure
global proc makeAntennaUI()
{
	global string $positionGroup;
	global string $radiusCol;
	global string $rotAngleCol;
	global string $scaleCol;

	string $dialogBoxWindow = `window -title "Create Antenna" -rtf true`;

	columnLayout;

	$positionGroup = `textFieldGrp 
				-label "Input Name" 
				-text "Name"`;
	$radiusCol = `floatSliderGrp 
				-label "Radius:" 
				-min 0.5 -max 3.0
				-field true`;
	$rotAngleCol = `floatSliderGrp 
				-label "Rotation Angle:" 
				-min 20 -max 80
				-field true`;
	$scaleCol = `floatSliderGrp 
				-label "Scale:" 
				-min 0.2 -max 0.9
				-field true`;

	rowLayout -nc 3;
	
// Shere button
	button -label "Sphere" -command "buttonAction1($positionGroup, 1, $radiusCol, $rotAngleCol, $scaleCol, 1)";
	
// Cone button
	button -label "Cone" -command "buttonAction1($positionGroup, 2, $radiusCol, 	$rotAngleCol, $scaleCol, 1)";
	
// Torus button
	button -label "Torus" -command "buttonAction1($positionGroup, 3, $radiusCol, 	$rotAngleCol, $scaleCol, 1)";
	
	showWindow $dialogBoxWindow;
}
// Type makeAntennaUI after running this script to begin.
}}}