Graphics Town Rubric 2023

Page content

Graphics Town 2023: Instructions Rubric Hints Checklist Advanced

Summary: do enough cool stuff and document it, and you’ll get a good grade.

The hard part is quantifying “enough” and “cool”. We might say “you’ll know it when you see it.” But instead, we have to try to write something…

This page may be updated with clarifications and additional examples.

The grading aspects of this assignment are what gets complicated. The assignment itself isn’t that complicated. Make a cool “town”, and you’ll get a good grade. We might just give you an A because we think what you did is particularly cool.

In the past, we tried to give a complicated scoring system where everything had points that added up to the right amounts. You can see this in the 2021 Rubric. Instead, we will give you general guidelines on what is required for each grade level.

Grading is subjective. Course staff members will look at your assignment and decide what they think. They will look at your documentation to see if they missed anything. Multiple course staff will look at each assignment and reach consensus. We cannot assess assignments until we grade it.

More details are below, but:

  • Basic assignments (BC) - meet some basic requirements
  • Good Assignments (B) - have objects and behaviors that cover a number of requirements
  • Very Good Assignments (AB) - have an overall theme, a more complete set of objects and behaviors, and at least some advanced features
  • Excellent Assignments (A) - add more advanced features and/or are subjectively compelling (with complexity and a theme)
  • Outstanding Assignments (A+) - well, we know it when we see it

Note that this is the “standard pathway.” There can be exceptions: an assignment with some hard advanced features might make up for a lack of diversity in objects and behaviors, or we might overlook a missing basic requirement for an assignment that has other merits.

You must document what you have done in the textboxes of page two of the workbook. Also, remember to give proper attribution for anything you use from either someone else, or even a prior assignment. If you don’t give attribution, you may not get credit.

And please remember: we can’t grade it until we grade it. If you ask us “is this enough for an A” we will say “I don’t know.”

Generally, we don’t count all the details. For example, when we say “at least 10 objects” or “at least 5 kinds”, we shouldn’t have to count - it should be immediately obvious that there are lots of objects. Cool things shouldn’t be hidden (use the highlighting feature). If something isn’t obvious, be sure to explain it in the text boxes.

Basic Requirements

These are some simple checks to make sure things are being followed correctly. If you don’t meet these requirements, you might get worse than a BC.

  • The program runs without fixes. If your program doesn’t run, we may try to see if there is a small problem we can fix ourselves.
  • The program runs at a reasonable rate. If your program is slow, we may take away points. If it seems like your project is ambitous (and worthy of being slow on the computers we have), there is more leniency.
  • The user interface still works. This includes having the world stop moving when we turn off run, and for the speed control to correctly affect all objects. If the stop button is unchecked, everything should stop.
  • There are an appropriate number of objects on the highlight list. Avoid duplicates.
  • The program is visually distinct from the example provided. Visually, it can’t just look like you took the sample and added a few things.
  • No ??? in any text box. - We want to make sure you have answered all the questions. If there is something you didn’t do, leave the question blank (remove the ???).
  • The snapshot on the textbox page is updated - We want a picture of your program.

Elements of Good Assignments

Good Assignments (B or better) must show a diversity of objects and behaviors. These requirements are for having “enough stuff” in the world. Note that you must document most of these requirements in the textboxes. Many of these requirements need to have their objects in the highlight list.

To get full credit for a requirement, the object/behavior should fit the world and not be too simple. A cube floating in space for no reason, or an object that just spins is unlikely to count completely. When you list your objects, put the best ones (the ones most likely to count) first in the textbox lists. Explanations of some terms are below.

Objects

  1. There are more than 10 objects in the world - this should be obvious from looking at your program.
  2. At least 2 of object kinds were created for this assignment by you. (one instance of each should be highlighted)
  3. There are at least 5 different kinds of objects in the world that you created - not including the 2 above - (at most one instance of each should be highlighted)
  4. The type “types” of objects are represented (“buildings”, “natural elements”, “vehicles”)
  5. There is at least one object loaded from a model file (one instance should be highlighted)
  6. There is at least one shader that you wrote (one instance should be highlighted)

For requirements other than #2, you can use objects that you made for other assignments. For requirement 1, you can use objects that you didn’t make yourself.

For requirement 5 (model file), you may use a model you obtained from somewhere (with attribution). If you made the model yourself, you may use it in 2 or 3 - the textbox will ask you to explain. Note: that by model file we mean a file that contains the geometric information of the object (e.g., and OBJ or FBX file, not a JavaScript source code file that defines it).

Behaviors

See the definitions below.

  1. There are at least 5 objects moving
  2. There are at least 3 different behaviors that you made
  3. At least one object is rideable / followable
  4. At least one behavior is “not simple” (discussed below)
  5. Articulated figure animated (multiple parts move relative to each other) - that you created

With 1 and 2: multiple objects can have the same behavior. In the example, three objects go around the track. This counts as 3 moving objects, but it is only 1 behavior (go around a circular track).

The grader may only give you partial credit if your example is too simple. For example, a swing (from graphics park) is unlikely to fully satisfy #5.

Highlight an object that fills each of requirements 2-5. These must be added to the textbox.

If you are concerned that your object won’t satisfy a requirement, you may list more than the minimum.

Better Assignments: Coherence, Theme, Subjective

To achieve a good grade (above a B), you must not only have objects and behaviors, but you must use them effectively. Your town needs to “make sense” - it isn’t just a bunch of objects lying around a graphics window.

This is a subjective thing - the graders will judge. You may explain your theme in a textbox if it isn’t self-evident.

If the grader thinks what you’ve done is particularly creative, interesting, or unique, they will reward you. But the “points” in this section are for the subjective excellence of your project, not because you have a cool idea that you didn’t pull off.

Advanced Things

These are specific things that you do that are technically challenging. We will give you a list of suggestions to try, but the list might actually grow - there are things we haven’t thought of, or might think of as the project progresses. Think of these as an opportunity to explore a more complex graphics topic, or try out something.

There are two types of variability: how hard the thing is, and how well its done. The harder something is to do, the lower the expectations we have for what you must achieve to count it as done.

For “how well it’s done”, we think of this as 3 levels:

  1. It works well enough that we can tell you tried.
  2. It works well enough that we can tell that it works correctly.
  3. It works well and actually is put into good use in your town.

Of course, you must list this in the type ins. You should only list things that work well enough to reach level 1.

Generally, you must implement the “advanced things” yourself. However, in some cases adapting something can be an advanced thing. If you want credit for adapting something that you got from somewhere else, be sure to explain where it comes from.

The list of possible advanced things is on the Graphics Town Advanced Things 2023 page. Note: there is a “none of the above” category, but if you have an idea you want to ask about, make a Piazza posting - and we might add your idea to the list.

Generally, to get an A you will need to do more than 1 advanced thing. But you might do several easier things and get to level 1 or 2, or do a really hard thing and get to level 3, or …

Some Definitions

Kinds of objects: You need to have many different kinds of objects in your town (we say “kinds” because you might have several instances of the same kind of object). In the example, the house, the helipad and the helicopter are all kinds of objects.

Object diversity: you need to have enough different types of objects. The minimum is 7 across three categories: “buildings”, “natural elements”, and “vehicles”. These categories are named for towns, so in a wilderness scene or space scene you might have different things. In a wilderness scene, the “vehicles” might be birds rather than cars and helicopters. In space, you might have asteroids or planets rather than trees.

Behaviors: behaviors are ways that objects move. Some behaviors are simple - spinning, driving in a circle, swinging back and forth. Some behaviors are complex enough to be an “advanced thing”. Other behaviors are somewhere in-between - they are “not simple”, but not good enough to qualify as an advanced thing. Examples include following along a 2D spline path (e.g., a track on the ground), or a simple state machine (e.g., going to a place, stopping, then going to the next place).

The helicopter in the example (it takes off, chooses a random helipad, flies to the helipad, and lands) could count as a complex behavior (albeit, one that I made so you can’t count it).

Examples of “complex” behaviors (that can count as “advanced things”) include:

  • a roller coaster that correctly follows a 3D track (banking during turns, …)
  • objects that move to a destination, do some secondary behavior at that destination, and then move to another. For example, your airplane can fly around, land, turn around, take off again. Your train can stop at a station and have people get on and off.
  • an excavator can scoop up some dirt and dump it some place else
  • your cars can stop at stop signs and wait for pedestrians

Complex Objects: The complexity must come from your graphics skill, not just because you loaded a complicated looking model. If you have a cool looking car because you found a very detailed model on the web and loaded in using the FbxLoader, that’s not a complex thing worth points. Complexity can come from putting lots of pieces together in an interesting way.

Complex Adaptations: Finding something complex does not get you complexity points. Generally, you need to make complex things yourself. However, if you adapt something you find, and the adaptation is complex, we can give you complexity points for the adaption. Be sure to describe what you started with (attribution) and why you think the adaptation is worth complexity points. For example, if you were to take the flowing river texture and make it work on a curving river going through your town, that would probably require significant adaptation.

Graphics Town 2023: Instructions Rubric Hints Checklist Advanced