AEM Assets workflow for automatic PDF generation from InDesign files

Many of my Enterprise customers ask how they can use Adobe Experience Manager (AEM) to automate the production of common derivative files from their InDesign files. Derivative files, you ask? InDesign files often represent the “source of truth” for many business documents, from manuals to data sheets to publications and many more types. These documents must be transformed from InDesign into something else (hence the term derivative) in order to be made available on a web site, for instance. The usual method is to export a PDF from InDesign and then upload the PDF as a new asset into the repository. This puts added burden on the author of the InDesign file as well as introducing the possibility of error due to incorrectly set PDF job options. This gets even more complicated if the author must make versions suitable to send to a commercial printer as well as a version that’s optimized for reading online as a PDF. This article provides techniques to automate the production of a web-optimized and print-optimized PDF from any InDesign file that appears in AEM Assets.

This article assumes that you have access to Adobe Experience Manager Assets and InDesign Server. In this example, I use AEM 6.1 and InDesign CC Server 2015, but the technique should work with AEM 5.6.1 and higher and ID Server CS6 and higher. You need to ensure that you have configured your AEM Author environment to work with InDesign server according to the documentation found here. The foundation of any successful integration (beyond configuration!) is the combination of Scripts, Workflow Models, and Workflow Launchers.

You can download a package that contains the scripts and a workflow model you can use today. When you install the package, you will have new scripts located at /etc/dam/indesign/scripts and /etc/workflow/scripts. You will also see a new Workflow Model located at /etc/workflow/models/dam/. The Workflow Launcher must be reconfigured, since I didn’t want to disrupt your existing workflows after you install the package.

Scripts

Scripts tell AEM or external applications what to do, and they form the basis of any InDesign Server-based solution. There are two sets of scripts used here: one set for InDesign Server to generate the PDFs and the other for AEM to move the resulting files. First, let’s look at the JavaScript to tell InDesign Server what we want it to do and how we want it to respond to the request.

There are a number of InDesign Server scripts included in the basic AEM installation, and I’ve modified /etc/dam/indesign/scripts/PDFExport.jsx to request specific kinds of PDF from InDesign Server.  In addition, the script writes the new PDF files into the InDesign file’s /renditions node. These two scripts are located at /etc/dam/indesign/scripts/PDFExport_Print.jsx and at /etc/dam/indesign/scripts/PDFExport_Web.jsx. I could have easily combined these two operations into one script, but I wanted to leave you the option to easily enable or disable each one according to your requirements. You can also combine them yourself or make them fancier, responding to properties you set on the InDesign file in AEM (via XMP) and read out with InDesign Server. Here is the code for PDFExport_Web.jsx, which is almost identical to PDFExport_Print.jsx. The difference is in the value of pdfExportPreset in line 31, the filename set in line 56, and the function return value set in line 57.

//==============================================================================
// Export any Indesign document as PDF
//==============================================================================

//==== get soap arguments ====
if (app.scriptArgs.isDefined("credentials")) {
 var credentials = app.scriptArgs.getValue("credentials");
} else {
 throw "CQ host credentials argument is missing";
}
if (app.scriptArgs.isDefined("cqHost")) { 
 var host = app.scriptArgs.getValue("cqHost");
} else {
 throw "cqHost argument is missing";
}
if (app.scriptArgs.isDefined("resource")) { 
 var resourcePath = app.scriptArgs.getValue("resource");
} else {
 throw "resource argument is missing";
}


try {
 //==== create a temporary folder under InDesign server tmp directory to fetch and export ====
 // added randomness to the folder name
 var exportFolder = new Folder("tmp-" + (new Date().getTime() - Math.floor((Math.random()*10000)+1) ));
 exportFolder.create();
 fileName = resourcePath.substring (resourcePath.lastIndexOf ('/'), resourcePath.lastIndexOf ('.'));
 var sourceFile = new File(exportFolder.fullName + fileName + '.indd');
 var outputFile = new File(exportFolder.fullName + fileName + '_web.pdf');
 var pdfExportPreset = "[Web Preset]" // Set your PDF Web-ready Export Preset (joboption) here.
 // You can use any joboption file installed in InDesign Server


 app.consoleout('Fetching resource from CQ: '+resourcePath);
 fetchResource (host, credentials, resourcePath, sourceFile);

 var document = app.open(sourceFile);

 with (app.pdfExportPreferences) {
 viewDocumentAfterExport = false;
 }
 var myPDFExportPreset = app.pdfExportPresets.item(pdfExportPreset);
 document.exportFile(ExportFormat.pdfType, outputFile,myPDFExportPreset);

 // close the document
 document.close(SaveOptions.no);
 
 //==== remove the original resource and send the export back to CQ ====
 sourceFile.remove();

 //==== send file to CQ ====
 var target = resourcePath.substring (0, resourcePath.lastIndexOf ('/')) + "/renditions";
 app.consoleout('Posting this file to CQ: '+outputFile);
 app.consoleout('Posting to location: ' + target);
 putResource (host, credentials, outputFile, fileName + '_web.pdf', 'application/pdf', target);
 returnValue = "PDF for Web exported and posted successfully";
} finally {
 //==== remove the temp folder ====
 cleanup(exportFolder);
}
app.consoleout('Finished PDF for Web export using '+pdfExportPreset+' joboptions');

To use these scripts, you need to have a PDF Joboptions file installed in InDesign Server to export your PDF. When you install the package, you will find a new folder at /content/dam/InDesign Server joboptions that contains two PDF Export Presets for InDesign Server. Move these two files to Applications/Adobe InDesign CC Server 2015/Resources/Adobe PDF/settings/mul and then restart InDesign Server to load the new settings.

Now that we have the InDesign Server pieces in place, let’s look at the AEM script. This is an ECMA script, which is very much like JavaScript, and it’s located at /etc/workflow/scripts/move-pdf-renditions.ecma. I’ve written it as a function that’s called twice, once for each PDF rendition, so it’s easy to add or remove other renditions as you see fit. This script will be called from the Workflow Model, which we’ll look at next. Here’s the script code.

var renditionExtension = "pdf";
var mimeType = "application/pdf";

var workflowData = graniteWorkItem.getWorkflowData();

movePDF("print");
movePDF("web");

function movePDF (renditionPostfix) {
 if (workflowData.getPayloadType() == "JCR_PATH") {
 var path = workflowData.getPayload().toString();
 var resourceResolver = graniteWorkflowSession.adaptTo(Packages.org.apache.sling.api.resource.ResourceResolver);
 var resource = resourceResolver.getResource(path);
 if (resource !== null) {
 var asset = Packages.com.day.cq.dam.commons.util.DamUtil.resolveToAsset(resource);
 if (asset !== null) {
 var name = Packages.org.apache.commons.lang.StringUtils.substringBeforeLast(asset.name, ".");
 var renditionName = name + "_" + renditionPostfix + "." + renditionExtension;
 var rendition = asset.getRendition(renditionName);
 if (rendition !== null) {
 var renditionResource = resourceResolver.getResource(rendition.path);
 var stream = renditionResource.adaptTo(Packages.java.io.InputStream);
 
 var targetPath = asset.adaptTo(Packages.org.apache.sling.api.resource.Resource).getParent().getPath() + "/" + renditionName;
 var assetManager = resourceResolver.adaptTo(Packages.com.day.cq.dam.api.AssetManager);
 assetManager.createAsset(targetPath, stream, mimeType, true);
 } else {
 log.debug("rendition " + renditionName + " cannot be found on asset " + path);
 }
 } else {
 log.debug("Item is not an asset: " + path);
 }
 } else {
 log.debug("Item does not exist: " + path);
 }
 }
}

Workflow Model

There will be a new Workflow Model in your Workflows list called DAM Update Asset with PDF move located at /etc/workflow/models/dam/update_asset_pdf/. It is similar to and derived from the standard DAM Update Asset workflow that comes with every AEM installation. I have changed one existing step (Media Extraction) and added a new step (a Process step called “Move PDFs from Renditions”).

These two workflow steps are different from the standard DAM Update Assets workflow

These two workflow steps are different from the standard DAM Update Assets workflow

The Media Extraction step is designed to convert InDesign documents to other formats required by AEM Assets for a number of key functionalities. These include generating sub-assets (images that are embedded within the InDesign file), page images, extraction of text, and metadata synchronization, among other things. Media Extraction sends the script (and a pointer to the InDesign file) as its payload to InDesign Server. InDesign Server then runs the script and returns something to AEM. It is important that you do not remove any of the existing scripts that Media Extraction launches, but you can always add additional steps. Here, we added two additional scripts to the workflow step: PDFExport_Print.jsx and PDFExport_Web.jsx

The Print and Web PDF Export scripts have been added to the Media Extraction Workflow Step.

The Print and Web PDF Export scripts have been added to the Media Extraction Workflow Step.

Immediately after Media Extraction, I added a new Process step that executes an ECMA script in AEM. For many users, they will access AEM Assets via their desktop using the AEM Assets Companion tool or the Creative Cloud Desktop tool, so this workflow ensures that they get the renditions they need in a place that’s easy to find. Also, users of AEM Assets will be able to search for these PDFs like any other asset under management. This script copies the PDFs from /renditions as new assets adjacent to the InDesign file. It is best to leave the PDFs in /renditions so that they can be used by components that might offer the PDF as a download, for instance.

Process_Step

The new Process step executes an ECMA script that copies the new PDF files so that they are accessible on the desktop.

Workflow Launcher

Lastly, it is necessary to change the Workflow Launcher that is triggered whenever a file appears in the repository or whenever a file is modified in the repository. I did not include this change in the package so that you can install the package with no impact on your running system. When you are ready and have tuned the scripts for your workflow, then you can enable the Workflow in the Workflow Launcher panel.

In your AEM Author instance, click on Tools>Workflow>Launchers or visit http://localhost:4502/libs/cq/workflow/admin/console/content/launchers.html (of course, point at your Author instance!). Select the /content/dam(/.*/)renditions/original that has no condition on it (see screenshot below) and click on View Properties, and then on Edit.

Select the proper Launcher and view its properties

Select the proper Launcher and view its properties

The Launcher is designed to run a workflow when a specific condition is met. This workflow looks for any file that appears in the repository and then runs the DAM Update Asset workflow on it. You need to change the workflow to DAM Update Asset with PDF Move and then Save the changes.

Change the workflow that is triggered by the Launcher

Change the workflow that is triggered by the Launcher

Once you’ve saved the Launcher, you are ready to test. Upload an InDesign document into AEM using your preferred method. You can use drag and drop in a Browser window, AEM Assets Companion, or CC Desktop Tool. If you happen to catch the InDesign Server console, you will see new entries that report on whether IDS was successful at exporting PDF renditions. In a short while, your new PDF  files will magically appear next to the InDesign file. Now, go ahead an edit that InDesign file and save it back to AEM Assets. Again, the workflow will run and new PDF files will replace the existing ones, ensuring that you always have access to the latest versions. And, since they are assets under management, you can always revert to earlier versions of the PDF by looking at the asset timeline in a browser.

Conclusion

This new workflow and the scripts that support it expose a new behavior for AEM Assets. While convenient for the user, since it automatically generates useful and necessary derivatives of the source InDesign asset, it enforces known good business processes by encapsulating approved PDF Export settings into he workflow. It also reduces errors by automating a task that otherwise would require several configuration steps in InDesign before they could export the PDF.

I hope that you find this useful, and that you use it as a starting point for further InDesign Server automation using AEM Assets.

Share on Facebook

Bridge Survey Results

A few months ago, I asked Creative professionals to share how they used Adobe Bridge. It is very clear from the huge number of responses and the large variety of respondents that I clearly struck a nerve with my questions. I wanted to share those results with you, kind reader, and to acknowledge some of the details provided by the Creative community. Due to the volume of responses, I’ve summarized and consolidated. If you are a respondent and you don’t see yourself quoted, please know that all of the responses have been read and shared here at Adobe.

About You…

Jobs-Word-Cloud

The respondents identify themselves with a wide array of jobs. We were looking for a broad spectrum of Bridge users, and we certainly got it! Photographers led the way, but Creative Directors, Graphic Designers, and sole proprietors were prominent as well.

We had a healthy blend of sole proprietors as well as Enterprise Creatives as well. We hear a lot from our individual users and small business users (think small agency or creative shop), but we don’t hear as often from our Enterprise customers. In this Enterprise shops, we saw teams as small as one and as large as 100.

Having this diversity of respondent is important to us. While Bridge is a mainstay for Creatives in general, as we look ahead at the future of Bridge, we want to ensure that whatever we build will continue to keep all Creatives productive while offering some specific benefits to the individual user as well as to the Enterprise Creative. One of the areas of interest across the board was scripting and automation.

More than a few of the individual respondents commented about how they used scripting to automate parts of their Creative process. This might include tagging images, running scripts in Photoshop or Illustrator, or making common items like comp sheets. Many of the Enterprise Creatives told us that they used scripting or even developed their own custom panels to connect to their business process systems like job planning and manufacturing. Automation and connection to other services is definitely important to everyone!

Let’s dig a little deeper into how the respondents spend their day.

Creative focus

On which media do you focus most?

It is clear that today’s Creatives are working on more than one media. This correlates with other research we’ve done over the years. We also heard that having access to all of the Creative Cloud tools as Creative Cloud members has made it possible to branch out into other areas. It is not surprising that there is a clear bias toward Print among the respondents, however, as many Creative professionals have print backgrounds. Web and Mobile focus is emerging but rapidly accelerating as tablets and mobile devices overtake Desktop computers as the primary digital consumption tool. I’ll be interested to revisit this question in a few years.

Impact of Bridge on respondents’ day

How often do you use Adobe Bridge?

Bridge usage across all types of users

Since this survey was about Bridge, we asked how often folks used it. Most of the respondents use it several times a day, which is not surprising. We expected that we would see wide adoption, since this survey was directed at Bridge users specifically. We are happy to have respondents who use it infrequently, however, as it provides valuable data points as we evaluate the reasons why folks choose to use Bridge or not to use Bridge. Here are some quotes from the survey:

I would get lost without Bridge.

Bridge is essential to my workflow.  I have tried using Lightroom as a substitute but it is simply not the tool that is best for the file examination that I do on a day to day basis.

[Bridge] does feel like an old application that is ripe for an overhaul.

We have built our image workflows in a way that makes good use of DNG and metadata (both for asset management and workflow), so Bridge is an interest for me but just as a piece of a larger puzzle of dependancies.

I wish I could show to everybody what we have achieved with Bridge in our image production.

I love Bridge for being simple yet extremely useful, and even with Lightroom I have not been able to create a workflow that does not include Bridge.

EVERYONE I introduce to Bridge instantly becomes a fan. Bridge is one of Adobe’s BEST products but seems to be given the least amount of publicity and attention by Adobe.

We use bridge as the hub for everything in an extremely adobe centric workflow for all our media.

Love bridge use it all the time still surprised to see how many of my clients do not use it.

Most important program of the cloud.

The CC Suite would be almost unusable without Bridge.

We have many, many users (possibly 10-20% of the 600+ reported above) that love using Bridge for their daily file browsing/management, even outside of the custom interfaces that we have built for Bridge. It is a great way to preview and manage files.

I can’t live without it.

I love Bridge! I would be a babbling, incoherent basket case without it.

As you can see, there is a lot of love for Bridge. There is also criticism, and I’d be remiss if I didn’t summarize that here.

It’s too slow.

The cache rebuild time is too long.

Scripting in Bridge CC is too hard.

Lightroom is a way better retouching environment.

Make it work better when browsing network storage.

It crashes all the time.

It takes too much memory.

The current Keyword management is archaic and obsolete.

I hear rumours Bridge isn’t been developed anymore.

These are not all of the critical comments we got, but we wanted you all to know that we read them all and take them to heart. Most of the criticism focused on performance, which we hear loud and clear. As for rumors, you shouldn’t believe rumors. Bridge is alive and well.

Tools you use

Creative Cloud tools that all respondents use regularly

Creative Cloud tools that all respondents use regularly

We took a look at how folks used other tools in their day, as a way to gauge the importance of Bridge to Creative workflows. Bridge is used predominantly as a companion to other apps, which is how it was designed. In fact, it was originally part of Photoshop, but it was so useful that it became its own product and expanded to include integrations with Illustrator and InDesign.

It is no surprise that nearly every respondent uses Photoshop regularly. It is also no surprise that InDesign and Illustrator have high adoption. It is interesting to dig a little deeper into the “other” category. There’s Muse, Acrobat, Mobile Apps, Audition, Lightroom and more in there. It’s clear that Creatives are using a broad spectrum of tools, and that Bridge should remain a general tool rather than one focused specifically on Photoshop, Illustrator and InDesign.

Creative Cloud tools that Multiple-workflow Creatives use regularly

Creative Cloud tools that Multiple-workflow Creatives use regularly

When we sliced the data across workflows, the numbers shifted a little bit. For Multiple-workflow Creatives, the distribution closely correlates with the entire set of respondents. We expected this, as most of the respondents identified themselves as multiple-workflow Creatives. Here are some thoughts

Creative Cloud tools that Print Creatives use regularly

Creative Cloud tools that Print Creatives use regularly

Print-centric Creatives met expectations, with their primary tools being Photoshop, InDesign and Illustrator. There’s not much else to say here, except when we had asked this question just a few years ago, the number of Dreamweaver and Premiere users had been close to zero. This speaks to the transformation of publishing from paper-only to paper and digital. Here’s some comments from the Print-centric Creatives.

Since every application on my computer is a plug-in for Photoshop, you’d think that PS is the most important app on my computer. No. It’s Bridge.

My flow is simple, Bridge, Camera Raw, Photoshop, 3rd Party (if needed) done.

Would love for Bridge to be faster at building thumbnails/previews.

I’m sure there are other ways we can use Bridge to enhance our workflow. I just need time to go in there and research and explore more.

Creative Cloud tools that Web/Mobile Creatives use regularly

Creative Cloud tools that Web/Mobile Creatives use regularly

Web/Mobile-centric Creatives are more broadly distributed in terms of the tools they use. We were pleased to see how prominent Premiere and After Effects usage is, but with so much brand reliance on video for modern marketing, it is not completely surprising. Buried in the Other category are tools like Muse, Edge Animate, and the mobile tools such as Shape and Brush, too. Here’s some comments from the Web/Mobile-centric Creatives.

We have built a central script multi-user system that only works in our network which it ensures that everyone has the last studio color camera profiles (dcp, xmp), the latest script updates, etc. Bridge is a major part of this. It allows our product DB to be merged with image/product metadata. For example, I can automatically, sort my product images by camera ID, but also by focal length and by our product sub category.

I use Bridge instead of Finder/Explorer for all folder and file navigation and I love it.

I would just like it to load faster, sometimes its unusable because of how long it takes.

Creative Cloud tools that Video Creatives use regularly

Creative Cloud tools that Video Creatives use regularly

Video-centric Creatives all seem to use the same set of tools, or it looks that way from the tight correlation between Photoshop, Illustrator, Premiere and After Effects usage. This group was the smallest among the respondents, but we had a reasonable statistical sample. Almost a third of the respondents say they use InDesign, too, which is very interesting. Here is some of their feedback.

Please provide better video playback and performance.

Bridge helps us with scanning and previewing images as well as organizing folders.

Its great for Batch File Renaming and Manual Sorting of Video Clips

What did we learn from this survey?

Overwhelmingly, we heard loud and clear how important Bridge is to you, our customers. We also know how important it is for individual Creatives and Enterprise Creatives alike. Automation and scripting kept coming up across users, as did performance with network file shares and large sets of files.

We also heard a lot of concern about whether Bridge will continue to be part of the Creative Cloud family. I want to reiterate that Bridge is alive and well, and you all are helping to make it better than ever through your direct feedback. Thanks for your honesty and I’m looking forward to sharing what’s next when I can.

Share on Facebook

Fixing Adobe Drive after Yosemite upgrade

Like many Mac users, I upgraded my Mavericks machine to Yosemite. While the upgrade should be smooth for most things, Adobe Drive requires an update due to changes in the way that Yosemite manages file systems. Since Drive provides low-level file system services and the hooks to those services changed, the old installation needs to be removed and reinstalled in order for Drive to work properly.

The process is simple. Browse to the Adobe Drive Installation Page and download two things: Adobe Drive and the AdobeDrive5UninstallUtility.dmg. Mount the AdobeDrive5UninstallUtility.dmg, and then follow these steps:

  1. Open Terminal
  2. Type “sudo ” (include the space after sudo)
  3. From the mounted AdobeDrive5UninstallUtility.dmg volume, drag UninstallUtility.sh to Terminal so that your command in Terminal looks something like:
    sudo /Volumes/AdobeDrive5-UninstallUtility/AdobeDrive5-UninstallUtility/UninstallUtility.sh
  4. Hit enter
  5. Enter your computer’s admin password
  6. You should now see something like the following in the Terminal:
    /Volumes/AdobeDrive5-UninstallUtility/AdobeDrive5-UninstallUtility
    OSX 10.10.3 release made changes to a few systems calls.
    Manually altering Adobe Drive's Installer Hooks to be compatible with new release...
    Done with file replacements!
  7. Quit Terminal

You can now mount AdobeDrive5_0_3-mul.dmg and install Adobe Drive successfully.

Customers who use Adobe Drive with Adobe Experience Manager may also need to install a package to ensure compatibility with Drive 5.0.3. Specifically, if you are using Drive with AEM 5.6.1, AEM 6.0, AEM 6.0 SP1, AEM 6.0 SP2 then you need to install a patch on your AEM server. The patch is delivered as an AEM Package, and you can install it on your Author instances as necessary. If you use AEM 6.1 or higher, then you do not need to install this package.

One last thing: if you will be using Adobe Bridge CC in the workflow (and who doesn’t?), ensure that you keep Adobe Bridge CC up to date to avoid unexpected crashing issues. If you are in a managed deployment environment, then contact your system administrator to ensure that you have the latest Adobe Bridge CC installed.

Share on Facebook

New Layer Override behavior in InDesign a boon to fashion and product design

Have you ever placed an Illustrator file into InDesign and then used the Layer Overrides capability to turn layers on and off for that file? Have you ever placed the same Illustrator file several times with different Layer Overrides on? If you have, then you likely work in apparel or footwear design and use AI and ID in your workflows. You have also likely cursed out loud when you made a change to the Illustrator file’s layers, only to have to reset the Layer Overrides for each of those placed AI files in InDesign. If this sounds like you, then I have some good news.

The InDesign CC 2015.1 release includes an innocuous little switch that will change your life. Really.

Here’s the scoop. There is a new checkbox in the Preferences>File Handling that lets you change how InDesign handles Layer Overrides for placed AI and InDesign files. Enable the “Hide New Layers When Updating and Relinking” option to use the new behavior.

New option in Preferences>File Handling

Enable this option to prevent new layers in AI files from appearing in ID when you update the link

After you enable this option, you will no longer need to adjust the Layer Overrides on placed AI and InDesign files when you add new layers to the placed graphic. Yes, that’s right. Let’s say that you are working on colorways for a new shirt, and you typically do this by adding new layers to your base CAD artwork in AI. You can now place that AI file into an InDesign file many times and set layer overrides to expose the different colorways. When you add new layers to the AI file and update the link in InDesign, the new layers will no longer appear in InDesign. If you delete layers in the AI file, then those layers will disappear in InDesign if those deleted layers are enabled.

Can I get an “hallelujah!” from all of the folks who deal with the drudgery of updating Layer Overrides over and over as the colorways change over time?

Now, you may be asking yourself what happens with Photoshop. In the InDesign CC 2015.1 release, there is no difference with the way that Photoshop Layer Overrides work, so you will still need to go adjust the linked graphics in InDesign if you make or delete layers in your Photoshop files. However, with the constant pace of innovation here at Adobe, it is very likely that InDesign will enable the new behavior for placed Photoshop files in a later release. If you see an InDesign engineer on the street, give them a knowing nod and a thumbs up. This little feature is a big one indeed.

Share on Facebook

FIRST Robotics uses DPS for its Game Manuals

One of the great benefits of working at Adobe is that Adobe believes strongly in community involvement and volunteering. Every Adobe employee is encouraged to use their skills and passions outside of their jobs as volunteers and board members for nonprofits and other community organizations. I take this to heart as a volunteer with FIRST Robotics.

James working as a Game Announcer at the Granite State District FRC event in Nashua, NH, 2015

James working as a Game Announcer at the Granite State District FRC event, 2015

FIRST Robotics offers programs for elementary, middle school and high school students around the world. These programs expose students to Science, Technology, Engineering, and Mathematics (STEM) through sport-like competition. Students receive a challenge at the beginning of each competition season and then build robots to address the challenge. Depending on the age of the participants, the challenge may be to solve an important problem such as water quality or delivery of affordable health care, or it might be to play a game that requires careful planning of both robot design and gamely strategy.

The elementary school program is called Junior FIRST Lego League (Jr.FLL). In Jr.FLL, students prepare a presentation to address the challenge. As the students get older, the programs become competitive and the teams must design, build and program a robot to address the challenge.

The middle school program is called FIRST Lego League (FLL). In FLL, the robots are made of Legos and use Lego NXT or EV3 controllers. The robots always operate autonomously, and there is only one robot on each side of the playing field at a time. The robots perform tasks related to the challenge, but do not generally compete directly with another robot.

In high school, teams compete alongside other teams called Alliances to try and outscore other alliances. There are two high school programs: FIRST Tech Challenge (FTC) and FIRST Robotics Competition (FRC). In FTC and FRC, the robots operate autonomously for the first few seconds of the match, and then the students drive the robots for the remainder. There is usually a period at the end of the match, known as the “endgame,” where the rules change or an additional challenge becomes available. There is not always an endgame.

FTC uses Lego NXT robot controllers on larger robot frames, but they are transitioning to Android controllers for the next season. FTC matches consist of two robots per alliance and two alliances on the field at a time. FRC uses a National Instruments roboRIO controller and frames up to 120 lbs. FRC matches consist of three robots per alliance and two alliances on the field at a time. There is a ton of YouTube video out there; just search for FLL, FTC or FRC. I volunteer with FRC as a play-by-play announcer at competitions and occasionally as an event judge.

The FIRST App home screen on an iPad

The FIRST app features a home screen with sections for each program.

Common to all FIRST programs is documentation. Each program has a range of program-specific documentation, including but not limited to:

  • Rules for each competitive season
  • Coach and mentor guidelines
  • Team notifications
  • Curriculum help
  • Change logs for all of the aforementioned documentation

Managing all of this documentation is a challenge, as the documentation changes regularly with real consequences for teams. For instance, it is common early in the competition season for game rules to change that might impact robot design. Also, teams are encouraged to ask questions about the rules, and those questions and answers are often summarized in the game documentation. Teams need to be informed in a timely manner so that they don’t proceed with designs that might not align with the game rules.

Another challenge is timing. Game rules are announced to the world at specific times on specific days. This is done through global simulcast so that no team has an advantage over another team when it comes to the game rules. Traditionally, documentation has been provided via password-protected PDFs on the FIRST web site. At the end of the simulcast, the password would be revealed and the teams could begin to read.

When we started talking about DPS with FIRST, these two challenges were topmost in our minds, and when I say “our,” I mean the Adobe team. I can’t speak for what was topmost in FIRST’s collective mind. We all believed that DPS could solve the update problem as well as the timed release of content problem very well, so we put it to the test in January of 2015 with the reveal of the 2015 FRC Game, Recycle Rush.

You can download the FIRST app from iTunes or from Google Play. You can also read the FRC Admin Manual, Game Manual, Team Updates in the DPS web viewer.

For FRC Kickoff, I went to a local college with most of the teams from Maine to watch the simulcast together. Many of the mentors and students had their mobile devices, and many had the FIRST app on their device ahead of time. As the game was revealed and as the password for the PDF was shown, the game manual for Recycle Rush appeared in the FIRST Game Manual app right on schedule. One of the mentors sitting next to me watched this happen. He looked at me and asked if he needed a password. I smiled and asked him to open the manual and find out. He tapped on the manual and began to read. Smiling, he looked up and said, “Wow. That was cool!”

A text push notice about a Game update.

The next test came a week later when the first updates were to be published. The manuals are made in InDesign, so the team at FIRST was able to make the adjustments and publish those changes from InDesign. Once published, teams needed to know that the changes were available, so FIRST used the built-in DPS push notification service. I and my team all received the notices on our iPads and our iPhones, and swiping or tapping the notice took us right to the updated content.

As we moved through the competition season, I watched how teams used the manuals. Many teams had it on their phones as well as their tablets, as they frequently returned to the manual to confirm design choices. Later, as the season progressed, they were looking carefully at the conditions which might lead to penalties. Even through the District Championship event, with teams having competed in two or more precursor events, teams still made frequent use of the manuals.

The design of the manual is as important as the content, and FIRST produced a clean, readable, and highly functional tool to help teams play the game and ultimately to be better competitors. Kudos to the FIRST documentation team, who produce manuals for all of the FIRST games.

I’m headed to the FIRST Championships in St. Louis, Missouri this week to volunteer some more and to see all of the FIRST programs draw to a close for the 2014-2015 season. It has been a pleasure and a delight to help bring the manuals on DPS to fruition and then to see the positive reaction and real world usage of the tool. I’m looking forward to helping the manuals evolve as the 2015-2016 season gets underway.

 

Share on Facebook