New sinks for sketch

Hey all,

sketch components have two new sinks, initialTool and initialColor. These determine the starting tool & color of the sketch, until the student selects a different one. They’re applied again on page reload.

The values for these will come from the constants sketchTools and colors. So for example,

initialTool: sketchTools.line
1 Like

Great, but why is this not in the CL documentation?

1 Like

It is, but there’s no code sample.

The names are there but the operations are unusable without a specification or at least the above examples. It feels like a trivial task to include such information and a long time since the sinks were announced. Is anyone looking after the documentation?


I find the document wholly unusable.

1 Like

This has been an outstanding problem for some time. I’m not sure what the rationale is in withholding information like this from public access but it’s poor UX and needs to improve.

1 Like

I’m very unknowledgeable when it comes to CL, but I am receiving the updates on this thread. So, I want to make sure I’m understanding what everyone is saying (and then I have a follow-up question).

The issue is that two new sinks are available for sketch. The names are given in the post, but we have no examples to go by, correct? Meaning, someone like myself, a middle school math teacher with no experience in coding, wouldn’t know how to use that new info.

Follow-up question that I think it related: I know about the sample codes that are given on a different desmos page. I tried to copy and paste them into my own activities in the same fashion and always get an error code that some variable has not been defined. In fact, it appears to be a variable that I don’t even see in the code.

So, how are the sample codes useable? How do they work for the page of examples but not for me? In cases where a page has a graph + note + input, yes, I have opened up all and copies all code. You would think they would interact the same way.

I have been very frustrated with trying to learn desmos CL, so I have given up. Perhaps if there is a quick solution to what I’m asking above, I’ll get back into it.

Kendra, my feelings exactly. I am not a coder and have spent hours trying to use that doc. I find way more solutions that are explained and I can duplicate in these threads.


  1. Don’t Give up!!!

  2. The sample code area you mentioned has not been completed. (I wish they would complete it! Or maybe if we volunteered to create samples so an employee could connect/publish it?) It’d be so nice to have a go-to source with everything. I know as they develop more code it can be hard to create an example that doesn’t link to other examples, however…

  3. When you have a specific question or get frustrated, post the question or your activity in the community. Many are quick to help and are very knowledgeable! Use this area to slowly learn.

  4. It could be that something was missing from the graph area? Not sure without looking at your activity, but if you create a new thread I’d be happy to take a look. I know others are even more helpful than me!

  5. Here are a few things I’ve done:
    a) I created a google doc with various CL examples, screenshots, copy/paste, etc. With notes about what it does, why it does, whatever makes sense in my mind. Sometimes I find it easier to Ctrl-F to search this document instead of trying to dig through my activities to find “where’s that slide that I know I have that does such and such?” It’s very disorganized and not very useful to share, it’s my “chicken scratch” file!
    b) I copy graphs over to the graphing calculator to save when they have useful or reusable stuff inside them. (I also have a cross reference google doc of links & descriptions to these graphs to find them easily)
    c) I am now trying to make sure I take note of which activity is “final draft” or “most complete”.
    d) I am trying to duplicate slides into their own activity and giving a title such as “[CL] Draggable Point with Check Button” (So I know this is a CL example). I use the description to describe it from a coding standpoint (not from instructional standpoint). I try to include the types of CL stuff that are in the page. Then I save this activity into a special Collection of my examples.

  6. When I find a good CL page/example from someone else, I save it 3-4 times:
    a) their original activity to a Collection.
    b) copy their activity and name it “[ORIG] Activity Name” and save it to a collection, possible same as the other one. This means if they choose to unshare, I still have a copy.
    c) I don’t edit my [ORIG] copy. So I can always go back and reference it. That way if I really mess something up, I still have the original copy for reference!
    d) So then I make more copies to edit, play, try, etc. Then I might split some of them up as mentioned before.

  7. I’m currently trying to work through the Computation Layer Challenge Files and to get better organized. I have a little programming background from college, but not much. However, that’s helped me a little. Also, because I taught Precalculus prior to my current role, the math used doesn’t overwhelm me as much as it might overwhelm you.

  8. Sometimes I have to let go of the “dream idea” and say “what do I have the ability and time to actually accomplish”. Bummer our brains can’t just make it a reality!

  9. When you learn something, make a recording explaining what you did and how it works. Then save the video for reference later. It helps to have an explanation when you are looking at code and can’t remember. (I also can get very messy in comments inside the code to ring a bell next time I look at it.)

  10. Hang in there! We are all on different learning curves, but there are many here to help you!

1 Like

The main thing I like about that doc (if it were completed) is that we’d have an organized resource of everything that was available. Then I could come here to ask questions and get the understanding that I might not get straight from the example CL.

It’s why I have spent so long trying to use it but it is not complete enough and I find I am missing pieces that are needed to get the CL to actually work but aren’t explained anywhere in the doc.

I completely get it. The best thing is to upload what you have and ask questions. Or if you watch some of the webinars, I think they are still linked around here somewhere?

With coding it can be something small like a comma or something big. But the community is here to help and it’s better than the CL Documentation page. They’ll help you with a page that actually means something to you!

From most of the examples, the comments included in the code describe what things are. The main thing, I think, that is maybe unclear are the component names (they go where it says “Unlabeled Graph” or “Unlabeled Table” on the main slide editing page). If you don’t name your components (e.g. turtleGraph, table3, blueNote, exp5 or whatever identifier you want to use), then you can’t use anything from them in other components’ CLs.

@ASmith is right though. Check out the webinars in the Announcements section. They can be found easily by searching for ‘webinar’.

I aplrecoate you taking the time to write out that possible answer, and that was my thought as well. I basically tried to recreate their entore slide on my own, including renaming the components the same way. Still didnt work :confused:

Well, if ever you need assistance, you can copy/paste the Share Activity link and there are a number of prompt people who can help you identify problems or alternate ways of achieving a desired outcome. I’m on here waaaaay to much. :smiley:

1 Like

The thing is… documentation is the heart and soul of every viable coding-based project. It says a lot about commitment to user experience and access to new users.

Something more git-like in the sense of repositories and pull requests might go a long way to helping build the documentation and improve the state of the project.

That said, it should absolutely not requires users to crib their own tips and tricks to figure things out. Nor should it take a user sifting through a messageboard’s responses to figure out something that is undocumented.

We’re hearing frustration and this is merely from those who have bothered to post about it. Just think about how many more haven’t bothered to. I know many, many teachers have tried their hands at this, looked at the documentation(or lack thereof) and just given up as it’s too hard to figure out really simple things and their time is better spent elsewhere.

It doesn’t have to be this way. I love that there are seminars running and that people here are very helpful in answering questions, but this is in no way a proxy for good documentation in the first place. Documentation, including code snippet examples, would provide 100x the payoff and should be a priority.

It strikes me somewhat like a classroom setting. You can ask students to come for help, and tell them there are after school sessions they can attend to ask questions, and you’ll get some kids showing up for sure - but think about how many more could understand - and then help others themselves - by providing working code product in the first place to practice with and understand from step 1.

It needs to come from Desmos and I hope to see this as a priority for development.


Agreed! The CL Manual can either be managed by Desmos or made a public shared document. The current position is unprofessional and, I think, unacceptable.

I agree with most of what you’ve written here. However, one thing in Desmos’ defence is that basically Computation Layer was originally a cool behind-the-scenes thing you could use to create activities like the official Desmos ones. Then they opened it up to the public and they even gave us some clues about how to piece things together.

Personally I’m grateful they did open this up to us, even if it wasn’t ready for primetime, as it’s meant I’ve been able to create learning experiences that would otherwise not have been possible.

However, it does seem that they haven’t pivoted that well from “this is a secret inhouse tool” to “this is now a standard feature that we want teachers being able to use”. Although I was grateful to have 30 minutes of Jay’s time, I probably could have figured out what I’d wanted to if there had been code samples for countNumberUsage, and then his time could have been used working with the Desmos Teaching team to make great new activities, or with the Engineering team to help them improve the language.

That’s maybe okay as a starting point in 2018 but “what’s the plan?” There seem to be just two possible responses:
A: “CL is a ‘take-it-or-leave-it’, ‘warts-and-all’ service. It’s documentation, though flawed, won’t change and we won’t allow you to change it.”
B: “CL is an evolving service. It has not changed for some time, but our plan is…

It would be great to hear “B” to conclude this thread, otherwise it’s “A” by default…

Agreed in many ways. And I completely understand the concept that each employee at Desmos is one person with only so much time. There’s more emotional impact to helping a person complete their activity versus creating an example for documentation.
I understand the idea of Desmos continuing to work towards what they feel has the biggest impact. I’d love it if there was a way that WE could give back to Desmos by assisting them in building out their examples. They’d still have to have an employee vet our submissions.
The best part of desmos is the ability to customize and the support from Desmos and users in these forums. It’d be great if we could expand that in other ways.