javascript P5.js 代写 COMP1720/6720 Major project

Major project

Outline

  • Due: 9pm Friday October 26
  • Mark weighting: 40 marks
  • Submission: submit your assignment through Gitlab(full instructions below)
  • Policies: no late submissions accepted; for other policies (e.g. academic integrity) see the policies page

Description

In COMP1720/6720 your major project is an interactive p5 artwork for a new-media art installation. Here’s the scenario: gallery attendees are able to walk around and observe the various works (including yours) at their leisure. If they wish, they can pause at your sketch and interact with it, but they will receive no additional guidance/instruction on what to do. Your goal is to provide an engaging user experience of roughly three minutes, but the exact nature of that experience is up to you. It might be an interactive generative artwork, it might be an interactive movie/storytelling experience—you get to choose.

Theme

Each year, we choose a theme for the COMP1720/6720 major project. You shouldn’t feel limited by this—you have heaps of freedom to interpret and explore the theme however you like. Your artist statement (which must be more substantial this time than for your assignments) is your chance to explain how your interactive artwork relates to and explores the theme.

This year’s theme is:

NEW

You can interpret this theme however you wish, as long as you fulfill the requirements below.

Requirements

Your major project is a p5 sketch which must:

  1. allow interaction using either the keyboard, mouse, microphone, camera, or some combination of those
  2. provide an engaging interactive user experience of roughly three minutes
  3. relate to the theme in a meaningful way
  4. be suitable for public presentation, viewing and interaction—it can’t be obscene!
  5. have well-organised source code, displaying the appropriate use of functions, arrays, objects, and the techniques discussed in code & design lectures
  6. include an artist-statement.md (max 1000 words) describing your artwork
  7. include an interaction-statement.md (max 500 words) which describes how a typical user will interact with your artwork
  8. include a statement-of-originality.yml describing any inspiration/code/assets you got from other places. It’s ok to use these external sources, but your major project must contain significant new work by you—you can’t just cobble together stuff from these other places (you’ll fail if you do)
  9. include a thumbnail.png image file with an aspect ratio of 16:9 and a horizontal resolution of at least 1280 pixels (e.g. 1280×720 would be a good size) to use as a thumbnail in the “sketch selection” interface (see the FAQ for more info)
  10. run smoothly in fullscreen at the test URL on any canvas size from 1920×1080 (in the CSIT labs) to 2560×1440 (in the PK iMac labs) make sure you test it out in the labs
  11. include a “back to gallery” button in the bottom right-hand corner (this is provided in the template—so as long as you don’t remove it then you’re fine)

The artist statement

Your submission must include a short (max. 1000 words) artist statement. Here are some questions to help you get started:

  • how have you interpreted/explored your chosen theme?
  • how have you structured the experience (e.g. beginning-middle-end, or something else)?
  • what are you trying to make the viewer think?
  • what are you trying to make the viewer feel?
  • what do you hope the viewer tells their friends about your artwork after they leave the gallery?

Your artist statement shouldn’t just be a list of “the first screen is this, the second screen is this…”; that’s what your interaction statement is for. Instead, the artist statement is your chance to explain the deeper story you’re trying to tell and the questions you’re trying to raise through your work.

There’s no strict template for the artist statement—instead, you’ll be marked on how clearly you articulate your what you’ve tried to achieve artistically in your major project.

The interaction statement

Your submission must include a short interaction statement (max. 500 words) which describes how a typical user will interact with your artwork. This means a step-by-step discussion of your planned interaction experience from its beginning, to its middle, and its end. For each step in the interaction experience, you should describe what a user sees, what they should understand about the meaning of what they see, how they know what to do next, and what happens when they complete this step. When we assess your interaction statement, we will compare it with your sketch and decide whether or not it is realistic.

Marks

The major project is worth 40% of your total grade for the course.

Process

Here’s the process for working on & submitting your major project:

  1. fork the major project template repository from the CECS GitLab server
  2. clone1 & work on your fork of the major project repo
  3. regularly commit & push your changes to the GitLab server
  4. at the submission deadline, the latest commit on the master branch on the GitLab server (not on your local machine!) will count as your submission

As usual, the major project repo has some (minimal) starter code. There’s asubmission checklist below to help you make sure you’ve completed everything you need to in your submission.

This process is exactly the same as for all the assignments. Remember to take advantage of the Git help on the resources page.

Submission checklist

  1. my project satisfies the requirements
  2. my completed project has been pushed to the master branch on GitLab server, and all the required files (including any assets) have made it to the server
  3. my statement-of-originality.yml file includes all the necessary references/acknowledgements, and everything not mentioned in there is my own work
  4. my sketch works when viewed in Chrome/Chromium on the lab machines at the testing URL (http://comp1720.cecs.anu.edu.au/uXXXXXXX/comp1720-2018-major-project/, with uXXXXXXX replaced with your UID)

COMP1720 test URL

Every time you push your code to GitLab the latest version will also be visible (on campus only) at the following URL:

http://comp1720.cecs.anu.edu.au/uXXXXXXX/comp1720-2018-major-project/

This is helpful for a few reasons:

  1. you can check that your commits have been pushed to GitLab successfully
  2. you can see that it works correctly (and that you’re not having any “only works on my machine” issues)
  3. if you like, you can send the link around to share it with others (as long as they have access to the ANU campus network)

FAQ

You can ask a question on the COMP1720 forum using the major-project label and if it’s popular enough I’ll put it up here.

What’s the thumbnail.png for?

The main showcase website interface will be a bunch of images—one for each person’s project. Viewers will be able to browse (and search) through the showcase on any web browser.

The purpose of the thumbnail.png image is to provide a still image for yourmajor project artwork on this main page which the viewer would click on to go to your (full-screen) sketch. It could be a screenshot from your sketch, but it could also be a new image you made specially for that purpose. It doesn’t have to have any text on it (your name will be added below the image).

If you do want to use a screenshot from your sketch you could do it using the same technique from the name tag assignment—put something like this in yourkeyTyped function:

if (key === " ") {
  saveCanvas("thumbnail.png");
}

Remember to grab the thumbnail.png image from the Downloads folder and commit it to your Git repo!

When/where can I get feedback on how my project is going before I submit?

Since it’s such a significant part of the overall course mark there will be plenty of opportunities for you to get help. The lab sessions from week 10 onwards don’t have set lab material, instead you should come with your work-in-progress major project and get assistance from your tutor (and possibly Ben as he floats around and makes guest appearances like some sort of celebrity). There’s also a major-project label in the COMP1720 forum, so you can post questions there as well.

Non-standard hardware: can I use input/output devices other than the iMac keyboard, mouse, camera and microphone?

Possibly (depending on cost/logistics), but only if you come and talk to me ahead of time (by Thurs Sep 29). Making sure that it all works reliably for the duration of the gallery show is your responsibility, though, so if you have a great idea but it crashes or doesn’t work, you’ll get a low mark (and you’ll fail if it doesn’t work at all).

Can I make a game for my major project?

This is a question which comes up a lot—so it gets an entry in the FAQ.

The answer is that your major project has to be an interactive artwork which explores the theme. It can certainly incorporate game-like elements, but if you just make a game then you won’t get a great mark (even if the game is really good). As an example, if you make an pacman-style game and “skin” the characters with things to do with your theme, then that’s not really engaging deeply with the theme (and you’ll be marked accordingly).

So the answer is no, you can’t just make a game, but it’s ok to have game elements. Talk to your tutor about your ideas to make sure you’re finding the right balance here.

What does it mean for my project to be engaging?

That’s a tough question to answer without knowing more about what your project is and what story you’re trying to tell, but here are a few hints:

  • show, don’t tell
  • your goal is to make an artwork, not just show some information, so don’t just have lots of text
  • there are enough powerpoint (.ppt) presentations in the world, don’t make another one for your major project!
  • can you come up with some interaction techniques other than “click this button to proceed”?

Most of all, attend all the labs in the last few weeks of the course and get feedback from your tutor—we want to help you out, but you have to ask!

Will my major project be visible to the public?

Yes—as we’ve said all along, the major project is an art gallery exhibition, so your work will be visible to the public2 (through the COMP1720/6720 Showcase).

Can I use insert advanced p5 feature or external js library here?

The aim of the major project is for you to use the stuff we’ve covered in this course. There are more advanced features of javascript & p5, and you’re not forbidden to use them, but you should be aware: if you have trouble with things that we don’t cover in the course, then it’s up to you to figure them out. In the end, you’ll be marked on what you actually hand in (and how it works), so if it crashes/doesn’t work then you’ll fail.

If there’s any doubt about whether your sketch works properly, refer to the marking software environment policy.

I don’t want to discourage you from exploring—if you’ve got a good idea then I’d love to help you make it happen—but just be aware that if you want to do this then you assume the responsibility for making it work.

Do I have to do weird extra/extension stuff to get a good mark?

No! The point of this course isn’t about what techniques you use, but about using them to create an effective and engaging artwork. You can totally do that in “vanilla” p5 using just the ideas & features we’ve covered in the course.

What’s the difference between the 1720 and 6720 major project?

The spec & deliverables for the major project are the same for both undergraduate (1720) and postgraduate (6720) students. The difference will be in our expectations—we expect a higher level of achievement in a masters-level course, and will grade the 6720 projects accordingly.

You can’t remove it, you can’t re-position it (it has to be in the bottom right), and you can’t re-size it, but you can re-style it if you like (e.g. change the colours to match your sketch). It must still be clearly visible, though (again, convenor’s decision is final).

Unless you really have a good reason to, though, you should probably leave it as-is.

I don’t know where to start?

I’m sure that your ideas are better than mine, so I don’t want to stifle that creativity. The best advice I can give is to start thinking about your major project now, and we can discuss your ideas in the labs and on the COMP1720 forum. Still, here are a few ideas/things to think about:

  • You need to engage the viewer for roughly three minutes, so you need to think about the “interaction trajectory” (beginning, middle, end) of your artwork. Don’t use up all your best ideas in the first 30 seconds!
  • You want the gallery visitor to notice your artwork out of all the others in the gallery—how are you going to draw them in?
  • How will the user know what to do when they come to interact with your artwork? Make sure you give them cues, but you also want to encourage them to explore and discover things for themselves.
  • What do you want the lasting memory of your artwork to be? What do you hope the viewer will remember afterwards?

So are there really no late submissions allowed?

Yep, really. If you hand it in 5 minutes late, you’ll get zero for the major project and fail the course. So push early and push often!

How do I check if my submission has been pushed to the GitLab server properly?

The best way to check is to visit the test URL from somewhere on the campus network.

Other than that, you can check through the GitLab website. If you can look at the GitLab page for your fork of the major project repo and you can see your versions of all the files (including any asset files), then it’s successfully pushed up. You can see how to do this in the check video on the git help page which might be useful.

What size should the sketch be?

The template uses windowWidth and windowHeight to set the canvas size based on the size of the display (so that it can run in fullscreen mode). Your sketch needs to adapt to whatever size display it’s running on—so use width and heightinstead of hardcoded numbers (e.g. 200) wherever you can.

There’s an easy way to test this—just re-size your Chrome window and refresh the page. If things break, then your sketch doesn’t work properly. Have a look at the responsive design section of the week 9 “toolbox” lab for some tips on how to fix it.

What’s the go with this “md” file extension?

Markdown is just a way of structuring text files to make them easier to read. Headings start with one or more # characters, bullet points start with - or *, etc.

You don’t need a special program to write these files, the templates (artist-statement.md and statement-of-originality.yml) are already in the template repo. You can just open them in VSCode and write away. If it’s readable by your tutor, then it’s fine.

Can I use assets (e.g. images) from the internet?

Yes, with the following caveats:

  1. you must reference the author of the image (or audio file, or video file, or any other type of asset) in the statement of originality
  2. you can only use assets with an appropriate licence (e.g. Creative Commons) and you must state the licensing information in your statement of originality (if you don’t have a licence for it, you can’t use it—it’s the same as plagiarism)
  3. you won’t get good marks if all you’ve done is found a cool image, so make sure you do something with it (it’s actually risky to rely on other people’s cool assets, since it might seem like your actual contribution isn’t very interesting in comparison)

As always, remember to add & push these asset files to the git repository—if they’re not pushed to the server then they don’t count, and your major project probablywon’t work without them. See the README.md file in the assets/ folder for more info.

I just found a cool asset on the internet—what’s the licence, and can I use it?

Just because you find something cool on the internet (e.g. through a Google search) doesn’t mean that you can just use it in your sketch—even if you credit it in your statement of originality (although you must do that).

Content creators can put assets (e.g. images they’ve drawn, photos they’ve taken, songs they’ve recorded) on the internet without giving anyone else a licence to use it. In fact, that’s the default. You can only use it if the creator explicitly makes it available under a suitable licence (e.g. Creative Commons). Have a look on the webpage to see if the creator mentions the license for their work, or you can email them directly (although this takes time).

The penalties for using assets in your major project without an appropriate licence will vary on a case-by-case basis, but they may be severe. You don’t want to make something awesome but lose half your marks because it’s not available under a licence which allows you to use it.

Can I use stuff I’ve already submitted in my assignments for this course?

This is an interesting one—this is called recycling and it’s allowed in COMP1720 as long as you refer to your assignment in your statement of originality. If you don’t do this, it’s plagiarism like any other “unreferenced” code from elsewhere (even though you wrote it yourself).

However, you should be really careful about re-using assignment code in your major project—in fact I’d advise against it. The major project is your opportunity to show how you can put all the skills you’ve learned in this course together to make a significant new piece of interactive art. If you just re-use your assignments, then you’re not doing that—and you’ll be marked accordingly. It’s entirely possible that you’d fail (get less than 25/50) the major project assessment item if it’s based on an assignment submission you’ve already received a mark for (even if your project is quite good overall).

How will the major project be marked?

As I’ve said all along (in the first lecture, on the FAQ page, etc.) this course isn’t like the other courses. There are no unit tests to pass, and your mark will be based on the quality of your artwork, using the following general ANU marking guide (you can find it in Table 2 on this page).

Grade Letter Grade Numerical Mark (%) Standards
High Distinction HD 80-100 Work of exceptional quality, as demonstrated in the attainment of learning outcomes at or above the relevant qualification level
Distinction D 70-79 Work of superior quality, as demonstrated in the attainment of learning outcomes at or above the relevant qualification level
Credit C 60-69 Work of good quality, as demonstrated in the attainment of learning outcomes at or above the relevant qualification level
Pass P 50-59 Work of satisfactory quality, as demonstrated in the attainment of learning outcomes at or above the relevant qualification level
Fail N 0-49 Work in which the attainment of learning outcomes at or above the relevant qualification level has not been demonstrated

Will I get marks & feedback for my major project like all my other assignment submissions?

The major project submission happens at the end of the course, and Ben, Kieran and your tutor will all have a look at it independently (just to make sure you get a fair mark). So, just like for your final exam, you won’t receive a separate mark or feedback for your major project work. You’ll just receive your grade for the course when all the final grades are released on Thursday 30 November.

However, if you do want to get feedback on your major project, then contact Ben over the summer and we can organise a time to catch up and discuss your project.

  1. make sure you clone your own fork (i.e. the one with your uni ID in the url) to your local machine, not the template (because obviously you aren’t able to change the template for everyone—GitLab won’t let you) 
  2. If this is a problem for you, then contact Ben and we’ll try and figure something out.