programminghistorian / ph-submissions

The repository and website hosting the peer review process for new Programming Historian lessons
http://programminghistorian.github.io/ph-submissions
139 stars 114 forks source link

Review Ticket for Augmented Reality Lesson #17

Closed fredgibbs closed 8 years ago

fredgibbs commented 8 years ago

The Programming Historian has received the a new tutorial: Introduction to Mobile Augmented Reality Development in Unity by @jacobwgreene. This lesson is now under review and can be read at:

http://programminghistorian.github.io/ph-submissions/lessons/intro-to-ar-development

I will act as editor for the review process. My role is to solicit two reviews and to manage the discussion, which will take the form of comments on this ticket. We aim to complete this process within 4 weeks.

Members of the wider community are also invited to offer constructive feedback also on this discussion thread, but they are asked to first read our Reviewer Guidelines (http://programminghistorian.org/reviewer-guidelines) and to adhere to our anti-harassment policy (below).

The Programming Historian embraces openness in its review process, and endeavors to keep the review conversation here on GitHub. If anyone feels the need to discuss anything privately, you are welcome to email me. You can always turn to @ianmilligan1 or @miriamposner if you feel there's a need for an ombudsperson to step in.

Anti-Harassment Policy _

This is a statement of the Programming Historian's principles and sets expectations for the tone and style of all correspondence between reviewers, authors, editors, and contributors to our public forums.

The Programming Historian is dedicated to providing an open scholarly environment that offers community participants the freedom to thoroughly scrutize ideas, to ask questions, make suggestions, or to requests for clarification, but also provides a harassment-free space for all contributors to the project, regardless of gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, age or religion, or technical experience. We do not tolerate harassment or ad hominem attacks of community participants in any form. Participants violating these rules may be expelled from the community at the discretion of the editorial board. If anyone witnesses or feels they have been the victim of the above described activity, please contact our ombudspersons (Ian Milligan or Miriam Posner - http://programminghistorian.org/project-team). Thank you for helping us to create a safe space.

fredgibbs commented 8 years ago

@jacobwgreene: here are some comments (in order as I worked through the tutorial) from my ultimately unsuccessful attempt to complete the tutorial. It's really shaping up nicely, but I got stuck when trying to position the target and overlay sprites in the scene pane. Looking forward to any help you can provide. Also, have you solicited the reviewers you mentioned? Or should I find other people? Thanks!


I think we could use an early screenshot of what AR looks like (the current one is nice image, but hard to see exactly what’s going on unless you already know about it). The later BP image is good, but perhaps there is one that is more obviously relevant to historians that could be used? Perhaps the current image could be used alongside a zoomed in shot of the phone in that image?

It would be nice to provide a warning that this tutorial has a LOT of steps, many of which are simple connect the dots kinds of things. The AR stuff is actually a small fraction of most of the steps which are about setting up an environment generally. It’s also worth noting that most of the steps take longer to explain than to complete!

For this tutorial paragraph could use a simple definition of overlay.

Might be nice to have more info about Unity downloads. Not sure what version to get or if it matters. A note about download size and times would be helpful, just so readers know they can’t just sit down and do the tutorial without allowing time for getting set up.

A note about installing components would be helpful. I just went with the default settings.

The first screen shot of unity doesn’t match what i saw, which was a blank window. So I closed Unity and reopened it and it asks me to sign into my unity account, which means creating an account and verifying via email. this needs to be at least mentioned in the directions.

Can you define “Game Objects”?

“Try to locate the two game objects in your scene.” Not sure what I’m supposed to be doing here. If I’m supposed to notice that there is a camera and sun icon in the scene panel that correspond with the two objects on the hierarchy panel, I’d prefer that you just say that in the directions, since “Try to locate” sounds like a challenge, when it really isn’t.

When deleting the game objects, the “delete” button on a Mac doesn’t do anything; I had to right click and select delete.

In the choosing the image section, it would be helpful to have an overview of what’s going to happen: ie take a picture of an object that you will hold up to your computer’s camera. Therefore, it has to be something you can hold up easily and the photo has to be at an angle you can reproduce in front of the camera relatively easily. Flat, matte objects are better. Round and shiny objects will cause problems, right? We want to give the reader as few ways to go wrong as possible.

“sufficient” level of visual complexity needs to be explained. How am I to know what is sufficient? Perhaps better would be “significant visual complexity” (which is also vague but less relative). Are stark color contrasts something to look for?

It might be worth spelling out that the reader should take a picture with their phone and upload the photo to their computer. Surely people will end up doing that, but it’s nice for readers to know they are in fact doing what they are supposed to be doing.

You can also explain that the image should have as little marginal clutter as possible, since it will need to be removed; and possibly a good photo doesn’t need to be edited, true?

“unstable features” maybe should be “extraneous features not part of the target object”

On a Mac, image dimensions are found by right-click and “Get Info”.

My Dowload Dataset was labeled as Download Database. It might be nice to have a screenshot to show where to click.

It would be helpful early on in the Vuforia steps to explain WHY i need to upload this image (which presumably is to code it with tracking information), and that Vuforia does this and Unity does not.

When I upload my image, it is projected onto a 3D globe in the bottom of the inspector pane. Not sure if this matters, but I’d like to know!

“The scene view should now display your Image Target.” IT DOESN’T! So now what? Can you tell me the steps I must take to achieve this? Does it matter? After more random clicking of the red, yellow, and blue indicators and random clicking and dragging while holding keys down, I can get something closer to your screenshot, but it’s not exactly the same, and I don’t know what I’m looking for to see if I’m doing it right.

This part of the tutorial, while the individual steps are explained clearly, needs a higher-level explanation as to what’s going on, and how to remedy potential problems. There is really no explanation of what I’m trying to accomplish here, so now that the steps haven’t worked for me, I’m totally lost.

“The image target prefab will resize according the dimensions of your image, so you might need to manually adjust the size of the image target to ensure that it fits within the view of your AR camera. “ I have no idea what this means or what I’m looking for, especially since the one screenshot you have is significantly cropped, and doesn’t doesn’t look like mine anyway (apart from the different image, obviously). I can’t even begin to troubleshoot this because I don’t know how to express what’s wrong.

It’s fine to outsource the transform directions via the link, but I’m not sure what I’m looking to do with the transform. More screen shots would be super helpful. At a minimum, I need more explanation of what I’m trying to achieve.

When you said to “Try to locate the game objects” I started clicking and dragging on the scene pane. Did this SNAFU everything else?

Even after redoing all of the steps in a new project and not messing with the scene pane, I needed to zoom way out in the scene view to see my image loaded there, and the scene arrows do not match your screen shot. As is, the tutorial directions do not match what is happening for me, and I have no idea how to fix it. Clicking on the Game tab, I see only black. I don’t understand how I supposed to arrange the image and camera to wort together, or what that looks like in the Scene pane. Your screenshot doesn’t include the camera at all. The screenshot related to adding the overlay gives more visual clues, it seems the scale of my image is much different and I don’t know how to tell when I have the right size image.

I continued on anyway, and now I can see the overlay and the target image, but they are completely different sizes and in different planes (do they need to be the same size? is there any autoscaling?). I can transform them so they better overlap, but I’m just hacking at this and have no confidence that it’s going to work.

“Use the transform tools to position your image overlay.” Here again I don’t know what the correct position is relative to the target (or the camera), or how to tell if it’s correct.

I’ve tried resetting my images (as per the directions), but again they end up as WAY different sizes and on different planes. If I line them up by sight and transforms, is it really going to work?

Let’s delete the audio overlay and save for a more advanced tutorial (or put at the very end, since the mobile part is the real payoff here)

When I click play, my camera light turns on, but I don’t see anything but black.

I don’t see any point in continuing with the mobile section, since clearly I’ve gone off track. I’ll try to figure out what’s going on, but any clarification you can add to the tutorial would be very helpful. Perhaps the best approach is to assume someone (like me) has gotten their images out of sync (which may or may not have been my fault). How can you explain how to transform the images and position them with respect to each other and the camera in the scene pane?

I don’t think you need to add a lot necessarily, but a few descriptive sentences and maybe a screenshot or two would probably allow users to end up in a similar position to get back on track.

jacobwgreene commented 8 years ago

Hi Fred,

Thanks for the detailed feedback. You are definitely not alone on having issues with image scaling in your Unity scenes. My students are similarly lost when adding image overlays and resizing. I'll add some more detailed steps to this section that I think will provide clarity on working with images in Unity. And I agree with moving the audio overlay to another section.

Part of the overall issue might be that Unity and Vuforia just updated both of their sdks. I'll upgrade and take some new screenshots.

I will email my potential reviewers and let you know if theyre in. I'll send them (and you) the revised version.

Best,

Jake

Sent from OWA on Android


From: fred gibbs notifications@github.com Sent: Thursday, April 7, 2016 10:49:43 AM To: programminghistorian/ph-submissions Cc: Greene,Jacob W Subject: Re: [programminghistorian/ph-submissions] Review Ticket for Augmented Reality Lesson (#17)

@jacobwgreenehttps://github.com/jacobwgreene: here are some comments (in order as I worked through the tutorial) from my ultimately unsuccessful attempt to complete the tutorial. It's really shaping up nicely, but I got stuck when trying to position the target and overlay sprites in the scene pane. Looking forward to any help you can provide. Also, have you solicited the reviewers you mentioned? Or should I find other people? Thanks!


I think we could use an early screenshot of what AR looks like (the current one is nice image, but hard to see exactly what’s going on unless you already know about it). The later BP image is good, but perhaps there is one that is more obviously relevant to historians that could be used? Perhaps the current image could be used alongside a zoomed in shot of the phone in that image?

It would be nice to provide a warning that this tutorial has a LOT of steps, many of which are simple connect the dots kinds of things. The AR stuff is actually a small fraction of most of the steps which are about setting up an environment generally. It’s also worth noting that most of the steps take longer to explain than to complete!

For this tutorial paragraph could use a simple definition of overlay.

Might be nice to have more info about Unity downloads. Not sure what version to get or if it matters. A note about download size and times would be helpful, just so readers know they can’t just sit down and do the tutorial without allowing time for getting set up.

A note about installing components would be helpful. I just went with the default settings.

The first screen shot of unity doesn’t match what i saw, which was a blank window. So I closed Unity and reopened it and it asks me to sign into my unity account, which means creating an account and verifying via email. this needs to be at least mentioned in the directions.

Can you define “Game Objects”?

“Try to locate the two game objects in your scene.” Not sure what I’m supposed to be doing here. If I’m supposed to notice that there is a camera and sun icon in the scene panel that correspond with the two objects on the hierarchy panel, I’d prefer that you just say that in the directions, since “Try to locate” sounds like a challenge, when it really isn’t.

When deleting the game objects, the “delete” button on a Mac doesn’t do anything; I had to right click and select delete.

In the choosing the image section, it would be helpful to have an overview of what’s going to happen: ie take a picture of an object that you will hold up to your computer’s camera. Therefore, it has to be something you can hold up easily and the photo has to be at an angle you can reproduce in front of the camera relatively easily. Flat, matte objects are better. Round and shiny objects will cause problems, right? We want to give the reader as few ways to go wrong as possible.

“sufficient” level of visual complexity needs to be explained. How am I to know what is sufficient? Perhaps better would be “significant visual complexity” (which is also vague but less relative). Are stark color contrasts something to look for?

It might be worth spelling out that the reader should take a picture with their phone and upload the photo to their computer. Surely people will end up doing that, but it’s nice for readers to know they are in fact doing what they are supposed to be doing.

You can also explain that the image should have as little marginal clutter as possible, since it will need to be removed; and possibly a good photo doesn’t need to be edited, true?

“unstable features” maybe should be “extraneous features not part of the target object”

On a Mac, image dimensions are found by right-click and “Get Info”.

My Dowload Dataset was labeled as Download Database. It might be nice to have a screenshot to show where to click.

It would be helpful early on in the Vuforia steps to explain WHY i need to upload this image (which presumably is to code it with tracking information), and that Vuforia does this and Unity does not.

When I upload my image, it is projected onto a 3D globe in the bottom of the inspector pane. Not sure if this matters, but I’d like to know!

“The scene view should now display your Image Target.” IT DOESN’T! So now what? Can you tell me the steps I must take to achieve this? Does it matter? After more random clicking of the red, yellow, and blue indicators and random clicking and dragging while holding keys down, I can get something closer to your screenshot, but it’s not exactly the same, and I don’t know what I’m looking for to see if I’m doing it right.

This part of the tutorial, while the individual steps are explained clearly, needs a higher-level explanation as to what’s going on, and how to remedy potential problems. There is really no explanation of what I’m trying to accomplish here, so now that the steps haven’t worked for me, I’m totally lost.

“The image target prefab will resize according the dimensions of your image, so you might need to manually adjust the size of the image target to ensure that it fits within the view of your AR camera. “ I have no idea what this means or what I’m looking for, especially since the one screenshot you have is significantly cropped, and doesn’t doesn’t look like mine anyway (apart from the different image, obviously). I can’t even begin to troubleshoot this because I don’t know how to express what’s wrong.

It’s fine to outsource the transform directions via the link, but I’m not sure what I’m looking to do with the transform. More screen shots would be super helpful. At a minimum, I need more explanation of what I’m trying to achieve.

When you said to “Try to locate the game objects” I started clicking and dragging on the scene pane. Did this SNAFU everything else?

Even after redoing all of the steps in a new project and not messing with the scene pane, I needed to zoom way out in the scene view to see my image loaded there, and the scene arrows do not match your screen shot. As is, the tutorial directions do not match what is happening for me, and I have no idea how to fix it. Clicking on the Game tab, I see only black. I don’t understand how I supposed to arrange the image and camera to wort together, or what that looks like in the Scene pane. Your screenshot doesn’t include the camera at all. The screenshot related to adding the overlay gives more visual clues, it seems the scale of my image is much different and I don’t know how to tell when I have the right size image.

I continued on anyway, and now I can see the overlay and the target image, but they are completely different sizes and in different planes (do they need to be the same size? is there any autoscaling?). I can transform them so they better overlap, but I’m just hacking at this and have no confidence that it’s going to work.

“Use the transform tools to position your image overlay.” Here again I don’t know what the correct position is relative to the target (or the camera), or how to tell if it’s correct.

I’ve tried resetting my images (as per the directions), but again they end up as WAY different sizes and on different planes. If I line them up by sight and transforms, is it really going to work?

Let’s delete the audio overlay and save for a more advanced tutorial (or put at the very end, since the mobile part is the real payoff here)

When I click play, my camera light turns on, but I don’t see anything but black.

I don’t see any point in continuing with the mobile section, since clearly I’ve gone off track. I’ll try to figure out what’s going on, but any clarification you can add to the tutorial would be very helpful. Perhaps the best approach is to assume someone (like me) has gotten their images out of sync (which may or may not have been my fault). How can you explain how to transform the images and position them with respect to each other and the camera in the scene pane?

I don’t think you need to add a lot necessarily, but a few descriptive sentences and maybe a screenshot or two would probably allow users to end up in a similar position to get back on track.

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHubhttps://github.com/programminghistorian/ph-submissions/issues/17#issuecomment-206939023

fredgibbs commented 8 years ago

thanks @jacobwgreene! I forgot to mention that if it would be easier to do something like a quick screencast of the process than trying to write it out (I can imagine even the best possible description causing confusion), we can certainly embed that in the tutorial.

jacobwgreene commented 8 years ago

Oh cool! I wasn't sure if you supported videos. Maybe I could do a short intro video for moving objects around in the scene view.

Sent from OWA on Android


From: fred gibbs notifications@github.com Sent: Thursday, April 7, 2016 6:07:03 PM To: programminghistorian/ph-submissions Cc: Greene,Jacob W Subject: Re: [programminghistorian/ph-submissions] Review Ticket for Augmented Reality Lesson (#17)

thanks @jacobwgreenehttps://github.com/jacobwgreene! I forgot to mention that if it would be easier to do something like a quick screencast of the process than trying to write it out (I can imagine even the best possible description causing confusion), we can certainly embed that in the tutorial.

You are receiving this because you were mentioned. Reply to this email directly or view it on GitHubhttps://github.com/programminghistorian/ph-submissions/issues/17#issuecomment-207110196

acrymble commented 8 years ago

We should think about file formats before we start doing videos. This should be a well-considered and sustainable solution that we won't regret later.

jacobwgreene commented 8 years ago

Hi Fred,

I have contacted two potential reviewers for my lesson, Jason Crider (crider3@g.clemson.edu) and Sean Morey (smorey@clemson.edu). Jason is an incoming PhD student at UF and Sean is an assistant professor at the University of Tennessee. They both have some familiarity with Unity and Vuforia, and I think they would make great reviewers.

I should have another version of the tutorial finished in the next few weeks. If this sounds good, I will send out an updated version to you and the two reviewers.

best,

Jake


Jacob Wes Greene PhD Candidate Department of English University of Florida jacobwgreene.comhttp://www.jacobwgreene.com


From: fred gibbs notifications@github.com Sent: Thursday, April 7, 2016 6:07 PM To: programminghistorian/ph-submissions Cc: Greene,Jacob W Subject: Re: [programminghistorian/ph-submissions] Review Ticket for Augmented Reality Lesson (#17)

thanks @jacobwgreenehttps://github.com/jacobwgreene! I forgot to mention that if it would be easier to do something like a quick screencast of the process than trying to write it out (I can imagine even the best possible description causing confusion), we can certainly embed that in the tutorial.

You are receiving this because you were mentioned. Reply to this email directly or view it on GitHubhttps://github.com/programminghistorian/ph-submissions/issues/17#issuecomment-207110196

fredgibbs commented 8 years ago

Hi Jake,

Thanks for lining up some reviewers! Just a reminder, though I've mentioned it before and to be doubly official about it, reviewers are always encouraged to consult Reviewer Guidelines (http://programminghistorian.org/reviewer-guidelines), adhere to our anti-harassment policy, and to post comments on this issue thread.

I agree it will be beneficial to have them go through a revised version that helps with the last steps of lining up the target and overlay images so we can give them a run through. A few weeks sounds more than reasonable. I look forward to it--and thanks for your continued work on this!

jacobwgreene commented 8 years ago

The second round of revisions are complete, and it looks like the page has been updated successfully. I'm going to get in touch with my reviewers and send them links to 1) the updated lesson, 2) the Reviewer Guidelines, and 3) this issue thread. Let me know if there's anything else I need to do at this point. Thanks!

fredgibbs commented 8 years ago

Sounds great! I can't think of anything else to add. Except that to make sure the reviewers know to contact me directly if they have any questions or concerns that they don't want to put in the public thread here. I think that's already in the generic guidelines, but it's always good to be overly clear. Thanks for your help!

jasoncrider commented 8 years ago

Hey Jake,

Looks great! I just completed the tutorial, and got a test app successfully running on my iPhone 5s (it's a little wonky, but it's working!). This is really great stuff. I thought your quick yet thorough explanations of various technical components was especially impressive, and the pictures and .gifs used throughout are extremely effective. I would say all of my comments are pretty nitpicky, and that you should feel free to ignore them, with the exception being the iOS section where I updated a couple of small, but important, areas.

My comments are below, which I've organized by the bolded section titles you use in your tutorial. Let me know if I can clarify anything!

A Note About AR Creation Platforms

The Aurasma vs. Vuforia compare/contrast table is difficult to read because the text all runs together under each category column, making it hard to distinguish from the category "rows" on the left. Tested this on Firefox, Chrome, and Safari. I also tested this on mobile, where the Aurasma column was spaced properly, but the Vuforia one was not.

Software Requirements

When installing to OSX from the Unity Download Archive, the "Choose Components" option is only available when you download the Unity Installer. It is not present when installing from the Unity Editor option. My suggestion would be to make a "Download for Windows" section and a "Download for OSX" section. It's much easier to download the Unity Installer and choose the components as part of the download than it is to download the Unity Editor and deal with that later. Maybe I am missing something though?

It might also be helpful to add a line clarifying the difference between the two for OSX like you did for the difference between the 32- and 64-bit installations for Windows, especially considering how similarly named the two are on OSX (Unity Intaller vs. Unity Editor). But maybe that is too extraneous.

Convert your Image Target to a Dataset

Maybe add another sentence about Skwarek's piece? Something like: "the ubiquity of the BP logo adds to the power of the critique by…" That's bad, obviously. Don't write that. But maybe something like it? What you're hinting at (the true potential AR has) could be really eye opening for someone that is still pretty new to AR. Just a thought.

"If you’re using a Mac, Ctrl click and select 'Get Info.'" In this section, if you want to clarify, you can add something like: on Mac, it doesn't give the specific width, just the "963x1600," so you just select the first number because it is "Width x Height," but does not specify that in "Get Info."

Add an Image Overlay

The animated gifs you use make this extremely easy to follow. Good idea!

You write: "To rotate the author image, select the 'rotate' tool and adjust the image by clicking and dragging on the red, blue, or green circle." Maybe add: "Alternatively, you can set the X axis to 90 degrees in the "Transform" window on the right." It might be nice to add just to show that Unity has multiple options for pretty much everything, and for people (like me) using a trackpad instead of a mouse. Anytime I can avoid precision-based mouse stuff in Unity I am grateful.

iOS

"Once your project is built, open it in your file explore and create a new folder…" By "file explore" I think you mean "Finder," which is OSX's default file explorer / GUI. I might change that just for clarity.

When opening Xcode for the first time I got the following message: "Unexpected code bundle Unity4XC.xcplugin" The text below read "The 'Unity4XC.xcplugin' code bundle is not provided by Apple. Loading code not provided by Apple can have a negative effect on the safety and stability of Xcode or related tools." This is basically a "we don't really like third party bundles" message, and nothing to worrying about, but it might be good to add a line about it. There are two options: "Load Bundle" and "Skip Bundle." Even though "Skip" is highlighted, you obviously and definitely need to hit "Load" for this to work. I took a screencap if you want it.

Need to add a step about registering a device to Xcode. First connect the iPhone or iPad you would like to test the app with to your computer. This device must be registered under the same Apple ID you are using with Xcode. Next, go to Window—>Devices and make sure the device is showing up. For whatever reason, this part of the tutorial did not work for me until I physically connected my iPhone to my computer. You obviously connect the phone later in your tutorial, but maybe you could just bump that step up a bit? Not sure if the registering issue is exclusive to me or not.

I think the Settings app has been updated recently, so it's not under General—>Profile anymore. You actually need to navigate to General—>Device Management and then select your Developer App certificate to trust it. Xcode walks you through it after the build completes. So I would also remove that picture you have there for it. I'm more than happy to send an updated screencap of what it looks like now if you'd like.

That's all I've got!

Best, Jason

jacobwgreene commented 8 years ago

Jason,

Thank you so much for the in-depth feedback on the tutorial! Especially with the iOS section. I work with Android/Windows so that section really needed some closer attention from someone familiar with OSX. If you could, shoot me an email with any screenshots from the iOS section of the tutorial and I'll add those in. Thanks again!

sugarloaf79 commented 8 years ago

Hey Jake,

Overall, this review is clear and very helpful. I would (will) definitely direct my students to it when I teach Unity/AR again in the future.

I learned a lot, it was well-structured, had a consistent tone, and I felt it addressed a consistent audience: one who had limited to no experience with Unity or AR.

I was able to complete the tutorial with a successful outcome. However, I did run into snags, and had a few general comments where the writing might be clearer (listed below).

Many of my comments echo Jason’s, and I also organize them by each section and as I encountered them in the tutorial.

General First, however, here are three general observations/suggestions that span the whole tutorial:

Introduction While the title is clear, it seems to me that the beginning of the tutorial needs a short introduction describing the overall lesson before moving into the specific goals that do not yet have a context other than the title. The intro doesn’t need to be long, just some basics to better orient the reader. I think some of the language you use later (such as the first paragraph of “A Note About AR Creation Platforms”) could be copied/revised for an opening intro.

What is Augmented Reality? In the first sentence, you might substitute “Google Glass” with “Microsoft HoloLens,” as it’s the new, featured AR device (which Glass never really was anyway).

Also, perhaps reverse the clauses to start with AR? I.e.:

Augmented reality (AR) can be defined as the overlaying of digital content (images, video, text, sound, etc.) onto physical objects or locations, and is typically experienced by looking through the camera lens of an electronic device such as a smartphone, tablet, or head-mounted display (e.g. Google Glass).

A Note About AR Creation Platforms

Software Requirements Might you include a quick “software list” at the beginning? Such as, “To complete this lesson, you will need to download the following software packages: Unity, Vuforia SDK…etc.”?

When you begin to discuss Unity, consider including the instructional step first, then discuss it. You might also include these as numbered steps. I.e.:

Step 1: Download and install either the Unity Editor 32-bit or the Unity Installer from the Download Archive.

If you have a 64-bit computer, you can download either one. If you have a 32-bit computer, you must download the 32-bit editor. The only difference is that the 32-bit Unity editor will allow you to use your webcam while testing your application; however, it requires a few more steps to complete the installation process. Access to your webcam is not necessary for creating AR applications in Unity.

NOTE: Unity is a large application, and it will take some time to download and install. You might want to begin the download process while working on something else.

Installing the 64-bit editor…

Installing the 32-bit editor…

Step 2: Download the latest Unity package from Vuforia.

In order to use Unity…

For the Vuforia step, you might note that you will explain how to install the Vuforia SDK in the next section.

NOTE: When I installed Unity 5.3.4f1 (64-bit) I only got Choose Component options for Unity and Monodevelop.

NOTE: When creating a Vuforia account, you might let readers know that they need to scroll all the way down the TOS/Agreement in order to accept.

Navigating the Unity Interface

Convert your Image Target to a Dataset

“When selecting a book cover to augment, make sure that it has stark color contrasts and a variety of complex shapes.”

Should you explain that this helps the camera and software better detect the trigger image, even though you go into greater detail about this later?

“Navigate to the Image Targets database for your application and select the image you just uploaded."

This was a little hard to find at first, and I wasn’t sure if it was referring to Vuforia’s online portal, or to Unity.

Import the Image Target

“Next, select the “ARCamera” object in your project hierarchy and check the “Load Database” and “Activate” parameters in the “Database Load Behaviour” component in the inspector panel on the right.”

This was a bit hard at first until I got to the end of the sentence; the order seems backward. Perhaps revise as:

“Next, select the “ARCamera” object in your project hierarchy and locate the “Database Load Behavior” section in the inspector panel. Check the “Load Database” and “Activate” parameters.”

Add an Image Overlay This section is very well done with short, divided steps and lots of screenshots/animations. I also appreciate that the steps are immediately followed by a short troubleshooting section if the user can’t find their image overlay.

Building Your Application to a Mobile Device It was a few more screens on my Samsung Galaxy 3s to get to “About Device,” but easy enough to figure out.

“Next, you will need to download and install the Java Development Kit for your operating system.”

Do you need to clarify that this is now on the computer, and not the smartphone?

Then, scroll down to the folder labelled “Extras” and select the “Android Support Library” and “Google USB Driver.”

I didn’t see “Android Support Library,” but did see “Android Support Repository” and checked this.

When I tried to import Android and Java, I didn’t see them (based on them not being in the “Choose Components” earlier). From the instructions earlier, I don’t think it was clear that I needed the “Unity Installer” and NOT “Unity Editor 64-bit.” I re-installed and continued with the tutorial. However, this still did not work, so I deleted all of Android and then re-installed the full Android Studio, which solved my problems.

My app worked through the USB connection, but perhaps add the steps needed to view and test the .apk file once it’s completed through other kinds of file transfer?

Again, overall the tutorial is very informative and pretty clear, but I think the order of the language at times could be more sequential (sometimes it's backwards, as noted above), and I had a lot of trouble with the Android section. However, I can't wait to see the final version.

Thanks, Sean

jacobwgreene commented 8 years ago

Hey Sean,

Thanks for the fantastic feedback! I'll let you know when I make my next round of revisions.

-Jake


Jacob Wes Greene PhD Candidate Department of English University of Florida jacobwgreene.comhttp://www.jacobwgreene.com


From: sugarloaf79 notifications@github.com Sent: Friday, June 3, 2016 12:06:17 AM To: programminghistorian/ph-submissions Cc: Greene,Jacob W; Mention Subject: Re: [programminghistorian/ph-submissions] Review Ticket for Augmented Reality Lesson (#17)

Hey Jake,

Overall, this review is clear and very helpful. I would (will) definitely direct my students to it when I teach Unity/AR again in the future.

I learned a lot, it was well-structured, had a consistent tone, and I felt it addressed a consistent audience: one who had limited to no experience with Unity or AR.

I was able to complete the tutorial with a successful outcome. However, I did run into a snags, and had a few general comments where the writing might be clearer (listed below).

Many of my comments echo Jason’s, and I also organize them by each section and as I encountered them in the tutorial.

General First, however, here are three general observations/suggestions that span the whole tutorial:

Introduction While the title is clear, it seems to me that the beginning of the tutorial needs a short introduction describing the overall lesson before moving into the specific goals that do not yet have a context other than the title. The intro doesn’t need to be long, just some basics to better orient the reader. I think some of the language you use later (such as the first paragraph of “A Note About AR Creation Platforms”) could be copied/revised for an opening intro.

What is Augmented Reality? In the first sentence, you might substitute “Google Glass” with “Microsoft HoloLens,” as it’s the new, featured AR device (which Glass never really was anyway).

Also, perhaps reverse the clauses to start with AR? I.e.:

Augmented` reality (AR) can be defined as the overlaying of digital content (images, video, text, sound, etc.) onto physical objects or locations, and is typically experienced by looking through the camera lens of an electronic device such as a smartphone, tablet, or head-mounted display (e.g. Google Glass).

A Note About AR Creation Platforms

Software Requirements Might you include a quick “software list” at the beginning? Such as, “To complete this lesson, you will need to download the following software packages: Unity, Vuforia SDK…etc.”?

When you begin to discuss Unity, consider including the instructional step first, then discuss it. You might also include these as numbered steps. I.e.:

Step 1: Download and install either the Unity Editor 32-bit or the Unity Installer from the Download Archive.

If you have a 64-bit computer, you can download either one. If you have a 32-bit computer, you must download the 32-bit editor. The only difference is that the 32-bit Unity editor will allow you to use your webcam while testing your application; however, it requires a few more steps to complete the installation process. Access to your webcam is not necessary for creating AR applications in Unity.

NOTE: Unity is a large application, and it will take some time to download and install. You might want to begin the download process while working on something else.

Installing the 64-bit editor… Installing the 32-bit editor…

Step 2: Download the latest Unity package from Vuforia.

In order to use Unity…

For the Vuforia step, you might note that you will explain how to install the Vuforia SDK in the next section.

NOTE: When I installed Unity 5.3.4f1 (64-bit) I only got Choose Component options for Unity and Monodevelop.

NOTE: When creating a Vuforia account, you might let readers know that they need to scroll all the way down the TOS/Agreement in order to accept.

Navigating the Unity Interface

Convert your Image Target to a Dataset

“When selecting a book cover to augment, make sure that it has stark color contrasts and a variety of complex shapes.”

Should you explain that this helps the camera and software better detect the trigger image?

“Navigate to the Image Targets database for your application and select the image you just uploaded.”

This was a little hard to find at first, and I wasn’t sure if it was referring to Vuforia’s online portal, or to Unity. Perhaps:

Import the Image Target

“Next, select the “ARCamera” object in your project hierarchy and check the “Load Database” and “Activate” parameters in the “Database Load Behaviour” component in the inspector panel on the right.”

This was a bit hard at first until I got to the end of the sentence. Perhaps revise as:

“Next, select the “ARCamera” object in your project hierarchy and locate the “Database Load Behavior” section in the inspector panel. Check the “Load Database” and “Activate” parameters.”

Add an Image Overlay This section is very well done with short, divided steps and lots of screenshots/animations. I also appreciate that the steps are immediately followed by a short troubleshooting section if the user can’t find their image overlay.

Building Your Application to a Mobile Device It was a few more screens on my Samsung Galaxy 3s to get to “About Device,” but easy enough to figure out.

“Next, you will need to download and install the Java Development Kit for your operating system.”

Do you need to clarify that this is now on the computer, and not the smartphone?

Then, scroll down to the folder labelled “Extras” and select the “Android Support Library” and “Google USB Driver.”

I didn’t see “Android Support Library,” but did see “Android Support Repository” and checked this.

When I tried to import Android and Java, I didn’t see them (based on them not being in the “Choose Components” earlier). From the instructions earlier, I don’t think it was clear that I needed the “Unity Installer” and NOT “Unity Editor 64-bit.” I re-installed and continued with the tutorial. However, this still did not work, so I deleted all of Android and then re-installed the full Android Studio, which solved my problems.

My app worked through the USB connection, but perhaps add the steps needed to view and test the .apk file once it’s completed through other kinds of file transfer?

Again, overall the tutorial is very informative and pretty clear, but I think the order of the language at times could be more sequential (sometimes it's backwards, as noted above), and I had a lot of trouble with the Android section. However, I can't wait to see the final version.

Thanks, Sean

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/programminghistorian/ph-submissions/issues/17#issuecomment-223486047, or mute the threadhttps://github.com/notifications/unsubscribe/AJRdRkBOGvAaUbeyI8yKc-Z1kQqkhEJQks5qH6g5gaJpZM4H4HU0.

jacobwgreene commented 8 years ago

This lesson has been revised based on feedback from two solicited reviewers @jasoncrider and @sugarloaf79 . The majority of the revisions dealt with 1) contextualizing how humanists can use AR and other AR platforms available, 2) moving all download instructions to the beginning of the lesson, 3) providing clearer instructions for moving game objects in the Unity scene view, 4) clarifying the "building to a mobile device" section for both Android and iOS, and 5) correcting minor sequencing and grammar/spelling errors.

@fredgibbs Let me know if there's anything else I can do at this point. Thanks to the fantastic feedback from my reviewers, I think the lesson is much clearer than when you first went through it!

jacobwgreene commented 8 years ago

Oh, there are a couple of other formatting issues that still need to be fixed that I either didn't know how to do or wasn't sure what the editors preferred.

1) Sean mentioned that it would be helpful if the links opened in a new window. I started to change these to html with "target=_blank", but I wasn't sure what PH guidelines were for hyperlinks so I left them as the markdown links described in the style guide.

2) I'm having trouble formatting the Vuforia and Aurasma comparison table. The text seems to get all bunched up in the Aurasma column. If it proves to be too much trouble, we can nix the table and I can explain the differences in a short paragraph.

fredgibbs commented 8 years ago

Thanks @jasoncrider and @sugarloaf79! Your outstanding reviews are extremely thorough and helpful!

@jacobwgreene, I'll go back through the tutorial in the next week or so, and address the table formatting issues you flagged in your last post--though it actually looks fine for me on safari right now--and offer any last comments or potential clarifications. But at first glance, it looks dramatically improved, and the animated gifs certainly make it much clearer how to manipulate new objects. I think we'll have this fully published in the next few weeks. Thanks for all the hard work on this!

jasoncrider commented 8 years ago

@fredgibbs Happy to help! If there's anything I can add or clarify, please don't hesitate to let me know!

jacobwgreene commented 8 years ago

Hi @fredgibbs, I'm going to be participating in the New Scholars Seminar at DH 2016 in Krakow, Poland next month (July 10th), and I just wanted to see if you would be able to take a look at the tutorial by then as I might direct people to it during the seminar sessions. Thanks!

fredgibbs commented 8 years ago

Hi @jacobwgreene,

Sorry for the long delay (lots of travel without internet and a debilitating cold over the last several weeks have made work mostly impossible).

Here are some comments on the latest version. All the reviews and revisions have improved this tutorial immeasurably since the first version from several months ago. Other than the minor issues noted below (mostly enhancements rather than problems), it's ready for publication! After you've addressed these as much as you feel is needed, we'll move it to the main site. Obviously, the tutorial will be more visible and easier to access for DH2016 when fully published, so even if you can't finish everything you'd like to do before then, you could do what you feel is most important, we'll migrate it, and you can finish minor revisions later. Excellent work!


First P could be clearer that this is a totally introductory lesson that doesn't require previous experience or programming knowledge (esp because of the SDK and language about building applications, I can see many people assuming they need to code to do this). As is, the first sentence sounds a bit intimidating. In other words, "game engine" and "SDK" could turn a lot of folks away. The details of the software can wait until the Lesson Goals sections.

How can Humanists use Augmented Reality?:

It is perhaps worth mentioning at the end of the P (as a transition to the next) that while AR development can be a complex and time consuming endeavor, it is gaining traction not only in industry, but the expanding world of digital humanities.

The P before 'A note about AR creation Platforms':

Vuforia is discussed without being introduced; at least a brief 1 sentence description would be helpful. Better yet, don't introduce Vuforia yet and keep your nice description in general terms (and you don't need the "Image Target" term just yet) You might also reference the nice image you have in the description, since you're describing exactly what it illustrates.

A note about AR creation Platforms':

You describe Unity, then compare Aurasma and Vuforia directly. What is the relationship between Unity and the other tools? Such an explanation will also make it a bit clearer what's going on in the installation instructions.

"Click on the .exe file ..." This is only true for Windows, but you're giving instructions for both platforms (so, need to mention the .dmg file or don't mention extensions explicitly)

"Click the green y-axis option of your directional widget." When I do this, the green arrow goes away; it would be nice if the directions described what change I should expect to see when I click so I know I'm OK.

"This should bring your ImageTarget prefab within the viewport of your scene panel." It would be nice to have a screenshot of what this looks like (even if repeated from elsewhere) so that users can know if they are still on the right track.

"If your scene view does not look like something similar to the image above" ... Before saying this, I would remind / instruct the user (instead of later), to hit "F" while the cursor is in the scene pane to make sure the zoom level is not causing confusion. When I first associated my image/database, I was super zoomed in on the image and it was hard to see what was going on (but i already knew from having done this already).

"The position of your image overlay (the author image) in the scene view is the same position that it will appear when scanned with a mobile device camera." Does this mean it's a flat, front-on view? It might be helpful to describe what the larger goal is here in case something isn't quite right (or the reader is confused).

Small typo: "You can know move"

When you say place the image on top of the book cover, can you be more precise about how close they need to be on the z-axis? Is it ok, for instance, if the overlay is much "higher" than the target, or do they need to be essentially on the same plane? Or can you briefly describe how this relationship ultimately matters?

In general, you might want to explain before getting into the manipulation tools that there are 3 particular ways to manipulate the image, and the user will need to use each of them, and perhaps iteratively. This part was a bit confusing because, at least for me, i couldn't see my overlay image at all, so selecting the tools and moving things around was not helpful, as I thought it would be--ie bringing my image into view. (being able to see the overlay image in the screencast would be helpful, too.) Once I hit "F" to better see the image, things were easier (it might again be nice to mention that upfront here). But then once I thought it was the correct size, I changed my perspective on the scene pane and realized it wasn't (because the z-axis distance was too much). So the instructions make it seem like there is a linear order, but it seems like that won't always work. I think I had to rotate the image to be able to see it well enough to align it. It might be worth being explicit that there is no fool-proof procedure to follow. BUT, unlike last time, I was totally able to get it to work once I started messing around.

In the test your scene, I was able to follow along, but at some point I just held up the book with the "game" tab selected and saw the overlay image appear next to the book I was holding up, which was super cool and far more striking than seeing it work in the "scene" view (where it wasn't totally clear to me what was happening, anyway, since I don't know how the "scene" pane normally works--but I do know how my webcam works and that seeing images projected onto it is pretty dope). Unless this is a tricky step that often doesn't work, it would be better to have people use the game view and see the image appear as part of their webcam view, so to speak. (this also answers my above question, since i could immediately understand more about how the relationship in the scene view translates into a user experience--it might be worth highlighting this as well when beginning the positioning instructions).

wcaleb commented 8 years ago

The figures for this lesson need to be updated using the new guidelines for images posted here. And all image files will need to be placed in a subdirectory.

jacobwgreene commented 8 years ago

Thanks for the feedback @fredgibbs! I'll get the revisions posted once I'm back in the US along with the new image guidelines.

jacobwgreene commented 8 years ago

@fredgibbs I just submitted my revisions based on your feedback. The only thing I didn't change much about was the webcam issue near the end of the lesson, although I did a sentence or two to clarify why I was testing it in the scene view and not the webcam. I've found that testing with the webcam is not a very reliable method, so I didn't want users to be surprised if it didn't work. For the most, it seems to work on the 32-bit Windows editor (and I guess it works well on Macs). In general, it's not necessary for AR development (other than viewing simple overlays like images), and it won't work at all in more complex projects with video and/or interactive overlays.

@wcaleb I updated to the new image guidelines but I don't see my images in the lesson anymore. Maybe I put the folder in the wrong place? I created a new folder in the "images" folder and named it "intro-to-ar-development." If you could take a look I would really appreciate it. Thanks!

wcaleb commented 8 years ago

@jacobwgreene With the new figure syntax, you don't need to include the leading images/ in your path at all. It's just filename=ar-dev-1-16.png or whatever. You actually have the syntax right here, but I notice that there you are referring to an image called new-ar-dev-1.png that doesn't seem to be in the repo yet. Hope that helps.

jacobwgreene commented 8 years ago

Thanks! I fixed the markdown and the images are showing up now.

fredgibbs commented 8 years ago

Hello @jasoncrider @sugarloaf79 @jacobwgreene,

This lesson is now published! A few essential housekeeping items before we are fully done:

@jasoncrider and @sugarloaf79, can you please indicate how you would like your names to appear on the lesson as reviewers? I will then update the lesson accordingly to reflect your important contributions.

@jacobwgreene, can you send me a brief author bio (the ones that appear at the end of all lessons)?

I'll close this issue once we've gotten these taken care of.

Thanks everyone!

jacobwgreene commented 8 years ago

Awesome! Thanks for all your help @fredgibbs!

Here's the author bio. Let me know if it's too long/short: Jacob Greene is a PhD Candidate in English at the University of Florida. His work explores how augmented reality technology can be leveraged within humanities teaching and research, and he currently serves as the Augmented Reality Criticisms Coordinator for Trace Innovation, a digital humanities initiative in the University of Florida English Department.

sugarloaf79 commented 8 years ago

Hi Fred and Jake,

This looks great, and thanks for letting me be a part.

What's the standard format that most reviewers request?

Thanks, Sean

On Mon, Jul 25, 2016 at 1:45 PM, Jacob W. Greene notifications@github.com wrote:

Awesome! Thanks for all your help @fredgibbs https://github.com/fredgibbs!

Here's the author bio. Let me know if it's too long/short: Jacob Greene is a PhD Candidate in English at the University of Florida. His work explores how augmented reality technology can be leveraged within humanities teaching and research, and he currently serves as the Augmented Reality Criticisms Coordinator for Trace Innovation, a digital humanities initiative in the University of Florida English Department.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/programminghistorian/ph-submissions/issues/17#issuecomment-235027838, or mute the thread https://github.com/notifications/unsubscribe-auth/ASyd5rJfjtmpggius3FBBUYQA4yMc-egks5qZPZEgaJpZM4H4HU0 .

fredgibbs commented 8 years ago

Hi Sean,

There isn't a standard format, just however you'd like your name to appear at the top of the lesson as a reviewer (full name, middle initial, or whatever). We don't maintain bios for reviewers, only authors, but we certainly want to have your "publication name" appear properly!

Thanks again for your help improving the lesson!

jasoncrider commented 8 years ago

Great, thanks for the name info @fredgibbs! You can just put me down as Jason Crider.

And @jacobwgreene the final lesson looks great!

sugarloaf79 commented 8 years ago

Great. Just Sean Morey is fine.

Thanks!

On Sat, Jul 30, 2016 at 10:43 PM, jasoncrider notifications@github.com wrote:

Great, thanks for the name info @fredgibbs https://github.com/fredgibbs! You can just put me down as Jason Crider.

And @jacobwgreene https://github.com/jacobwgreene the final lesson looks great!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/programminghistorian/ph-submissions/issues/17#issuecomment-236404802, or mute the thread https://github.com/notifications/unsubscribe-auth/ASyd5lNrMI9LUlb9citeQBWWydA4JYA9ks5qbAvMgaJpZM4H4HU0 .

fredgibbs commented 8 years ago

great! the lesson metadata has been updated, and everything is squared away. thanks again everyone!