{"id":10197,"date":"2025-11-04T15:50:45","date_gmt":"2025-11-04T20:50:45","guid":{"rendered":"https:\/\/blogs.mathworks.com\/community\/?p=10197"},"modified":"2025-11-04T15:50:45","modified_gmt":"2025-11-04T20:50:45","slug":"storyboarding-with-live-script-skills","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/community\/2025\/11\/04\/storyboarding-with-live-script-skills\/","title":{"rendered":"Storyboarding with Live Script Skills"},"content":{"rendered":"<p>Last June I wrote about how I used a MATLAB MCP Server to write some useful code, but I didn't share the actual MCP server that I used. Now all can be revealed, because in the last week MathWorks has released an <a href=\"https:\/\/github.com\/matlab\/matlab-mcp-core-server\">official MATLAB MCP Server<\/a>. Try it! It's free! My fellow MathWorks bloggers, <a href=\"https:\/\/blogs.mathworks.com\/deep-learning\/2025\/11\/03\/releasing-the-matlab-mcp-core-server-on-github\/\">Yann<\/a> and <a href=\"https:\/\/blogs.mathworks.com\/matlab\/2025\/11\/03\/exploring-the-matlab-model-context-protocol-mcp-core-server-with-claude-desktop\/\">Mike<\/a>, will tell you all about it.<\/p>\n<p>But that's not what I'm going to talk about this week. Because we've been busy... in addition to the new MCP Server, we've published GitHub repositories full of resources to guide your usage of AI tools (see <a href=\"https:\/\/github.com\/matlab\">MATLAB Development &amp; AI Coding Projects<\/a>). Today I want to talk to you about <a href=\"https:\/\/claude.com\/blog\/skills\">Skills<\/a>, a new kind of resource that can be used with Anthropic's Claude model.<\/p>\n<p>For my demo, I'll be using Claude Code (<a href=\"https:\/\/claude.com\/product\/claude-code\">learn more here<\/a>). I'm typing in my requests to Claude Code and in response it is generating MATLAB code for me. I can then open it and execute it in the MATLAB desktop.<\/p>\n<p>So what's a skill? A skill is a sort of latent prompt for a language model. It's a set of instructions that can be tucked out of the way until needed. That's what makes skills useful: they don't clog the resource pipeline when they're not needed. The <a href=\"https:\/\/github.com\/matlab\/skills\/tree\/main\">skill<\/a> that I'm going to demonstrate is for making <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/matlab_prog\/plain-text-file-format-for-live-scripts.html\">plain text Live Scripts in MATLAB<\/a>. For my demo, I'm going to use a well-known physical system: the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Double_pendulum\">double pendulum<\/a>.<\/p>\n<p>I'll use a technique that I call storyboarding. You may be familiar with the concept of storyboarding from the movies. The idea is that you draw rough sketches of how the action will play out. This saves you time and money when you're actually trying to move expensive things around the set.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" width=\"500\" height=\"355\" class=\"alignnone size-full wp-image-10205\" src=\"https:\/\/blogs.mathworks.com\/community\/files\/storyboard-1.png\" alt=\"\" \/><\/p>\n<p>In MATLAB terms, I'm going to write a brief sketch, section by section, of what I want my Live Script to look like. And then I'll let Claude fill in the specifics. This gets me to the result I want with minimal wasted effort.<\/p>\n<p>So I can write something like<\/p>\n<pre>I will be modeling a double pendulum. Here are the equations of motion\r\nEQUATIONS<\/pre>\n<p>That is, I'm literally writing the word \"EQUATIONS\" and assuming that Claude knows how to derive and fill in the equations. A little further down, I put this.<\/p>\n<pre>As an example of the \"butterfly effect\", here we will start off two \r\nsimulations with only the tiniest difference between their two sets \r\nof initial conditions. Notice how quickly they diverge.\r\nPLOT OF THETA1 AND THETA2 VS TIME<\/pre>\n<p>Again, I am confident that Claude can make the choices necessary to turn \"PLOT OF THETA1 AND THETA2 VS TIME\" into a useful plot. Along with my Markdown storyboard script I supply this top-level prompt to get the whole process started.<\/p>\n<pre>Build a MATLAB ODE for a double pendulum as specified in this diagram: @diagram.png\r\nUse the file @storyboard.md as a template for a Live Script. \r\nUse the matlab-live-script skill.<\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" width=\"400\" height=\"308\" class=\"alignnone size-full wp-image-10201\" src=\"https:\/\/blogs.mathworks.com\/community\/files\/pendulum_diagram.png\" alt=\"\" \/><\/p>\n<p>I just have to make sure the <a href=\"https:\/\/github.com\/matlab\/skills\/blob\/main\/skills\/matlab-live-script\/SKILL.md\">skill file<\/a> is in the right place, and now Claude has everything it needs to fill out the storyboard. A minute later I am rewarded with this Live Script. It's done exactly what I want, and the results look good.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" width=\"800\" height=\"892\" class=\"alignnone size-full wp-image-10200\" src=\"https:\/\/blogs.mathworks.com\/community\/files\/pendulum_script.png\" alt=\"\" \/><\/p>\n<p>I needed to verify that the equations were correct (they were) and then review the code for good design and safety. But even so, this storyboarding approach saved me a ton of work and got me quickly to an excellent result. Now I'm excited to try some more skills and prompts to see where they can take me.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"https:\/\/blogs.mathworks.com\/community\/files\/storyboard-1.png\" onError=\"this.style.display ='none';\" \/><\/div>\n<p>Last June I wrote about how I used a MATLAB MCP Server to write some useful code, but I didn't share the actual MCP server that I used. Now all can be revealed, because in the last week MathWorks has... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/community\/2025\/11\/04\/storyboarding-with-live-script-skills\/\">read more >><\/a><\/p>\n","protected":false},"author":69,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/posts\/10197"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/users\/69"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/comments?post=10197"}],"version-history":[{"count":9,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/posts\/10197\/revisions"}],"predecessor-version":[{"id":10210,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/posts\/10197\/revisions\/10210"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/media?parent=10197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/categories?post=10197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/community\/wp-json\/wp\/v2\/tags?post=10197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}