{"id":240,"date":"2017-04-09T12:50:28","date_gmt":"2017-04-09T16:50:28","guid":{"rendered":"http:\/\/coolskill.org\/site\/?page_id=240"},"modified":"2017-04-11T19:15:12","modified_gmt":"2017-04-11T23:15:12","slug":"ldram","status":"publish","type":"page","link":"http:\/\/coolskill.org\/site\/ldram\/","title":{"rendered":"LDRAM"},"content":{"rendered":"<p>LDRAM is my software for creating brick movies using <a href=\"http:\/\/www.ldraw.org\">LDRAW<\/a> and <a href=\"http:\/\/www.povray.org\/\">POV-RAY<\/a>. \u00a0LDRAM (named for <span style=\"text-decoration: underline;\">LDR<\/span>aw <span style=\"text-decoration: underline;\">A<\/span>ni<span style=\"text-decoration: underline;\">M<\/span>ation, and becasue it turns LDRAW upside down) provides a scripting language that takes a scene and actors created in LDRAW, repositions them, and renders individual frames. \u00a0It then takes all those frames and combines them into a single movie.<\/p>\n<p>This program is not yet ready for distribution &#8211; there are still some things that I would like to add in &#8211; but it does function. \u00a0I have set it aside for several years, having gotten busy with other projects, but it is something I feel I should get back to. \u00a0Here are a few examples (I have not posted the scene files, just the motion scripts, since it is the scripts that are what I am focusing on. \u00a0The scene files simply create the models).<\/p>\n<p>This first scene is long, and does nothing for the first five seconds. \u00a0Then on brick will rise into the air, move to the left while rotating 270 degrees, and then lower itself back down onto the other brick.<\/p>\n<p><iframe loading=\"lazy\" width=\"525\" height=\"394\" src=\"https:\/\/www.youtube.com\/embed\/0IqGqFr1pLY?feature=oembed\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p><a class=\"yt-uix-sessionlink \" href=\"https:\/\/www.youtube.com\/results?q=%23SCENE\" data-sessionlink=\"itct=CDMQ6TgYACITCJXcpuvml9MCFUvHnAodjvwJjSj4HQ\" data-url=\"\/results?q=%23SCENE\">#SCENE<\/a> &#8220;twobricks.mpd&#8221;;<\/p>\n<p>5 SHIFT (brick2, !{0, -40, 0}, 5);<br \/>\n10 SHIFT (brick2, !{-80, 0, 0}, 5);<br \/>\n10 ROTATE (brick2, @{0, -270, 0}, 5);<br \/>\n15 SHIFT (brick2, !{0, 16, 0}, 5);<br \/>\n25 END;<\/p>\n<p>This next scene, quite a bit\u00a0shorter, \u00a0just moves the lightsaber into Darth Vader&#8217;s hand, using an absolute positioning system expressed as a matrix.<\/p>\n<p><iframe loading=\"lazy\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/HYzHbL7QJf4?feature=oembed\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p><a class=\"yt-uix-sessionlink \" href=\"https:\/\/www.youtube.com\/results?q=%23SCENE\" data-sessionlink=\"itct=CDEQ6TgYACITCP2-h-Tml9MCFW2znAodX4wKbyj4HQ\" data-url=\"\/results?q=%23SCENE\">#SCENE<\/a> &#8220;HandTest.mpd&#8221;;<\/p>\n<p>.5 TRANSLATE (LightSabre,<br \/>\n#{<br \/>\n-27.864, 42.373, -0.393,<br \/>\n0.965926, 0.12941, -0.224144,<br \/>\n0.258819, -0.482963, 0.836516,<br \/>\n0, -0.866025, -0.5<br \/>\n}, 1.5, ABSOLUTE);<br \/>\n2.5 END;<\/p>\n<p>This final test adds a little bit more, including adding classes and frames-of-reference. \u00a0Here, the lightsaber starts on the table at a position relative to the &#8220;world,&#8221; but ends in Luke&#8217;s hand in a position relative to that hand. \u00a0This in theory makes it easier to write scripts, because you don&#8217;t need to know where in the world (literally) Luke&#8217;s hand is to put the lightsaber in it.<\/p>\n<p><iframe loading=\"lazy\" width=\"525\" height=\"295\" src=\"https:\/\/www.youtube.com\/embed\/m6NPpu3xVKA?feature=oembed\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>#SCENE &#8220;Jedi.mpd&#8221;;<br \/>\n#USE &#8220;TestClass.ldram&#8221;;<\/p>\n<p>0 ROTATE (CAMERA_GLOBE, @{30,-30,0}, &amp;1, ABSOLUTE);<br \/>\n0 ADD (Luke::RightArm, Luke::RightHand, Hand);<br \/>\n.5 SHIFT (LightSabre, !{0,-8, 0}, .5);<br \/>\n1 SHIFT (LightSabre, !{160,0, 0}, 1.5);<br \/>\n2.5 ADD (Luke::RightArm::Hand, LightSabre, ls);<br \/>\n2.5 TRANSLATE (Luke::RightArm::Hand::ls, #{<br \/>\n0, 17.076, -5.776,<br \/>\n1, 0, 0,<br \/>\n0, -0.965926, 0.258819,<br \/>\n0, -0.258819, -0.965926}, 1.5, ABSOLUTE);<br \/>\n5 END;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>LDRAM is my software for creating brick movies using LDRAW and POV-RAY. \u00a0LDRAM (named for LDRaw AniMation, and becasue it turns LDRAW upside down) provides a scripting language that takes a scene and actors created in LDRAW, repositions them, and renders individual frames. \u00a0It then takes all those frames and combines them into a single &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/coolskill.org\/site\/ldram\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;LDRAM&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/coolskill.org\/site\/wp-json\/wp\/v2\/pages\/240"}],"collection":[{"href":"http:\/\/coolskill.org\/site\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/coolskill.org\/site\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/coolskill.org\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/coolskill.org\/site\/wp-json\/wp\/v2\/comments?post=240"}],"version-history":[{"count":4,"href":"http:\/\/coolskill.org\/site\/wp-json\/wp\/v2\/pages\/240\/revisions"}],"predecessor-version":[{"id":366,"href":"http:\/\/coolskill.org\/site\/wp-json\/wp\/v2\/pages\/240\/revisions\/366"}],"wp:attachment":[{"href":"http:\/\/coolskill.org\/site\/wp-json\/wp\/v2\/media?parent=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}