Please keep your posts appropriate and directly related to coding, otherwise your accounts may be deleted.
![](https://cdn.creaticode.com/creaticode-data/user-avatars/z9dqCQCJqFrT2nmfr/starssmall_1637266441640.jpg)
Posts made by info-creaticode
-
RE: join a chat
-
Search or Generate Sprite Images Using AI
In the previous tutorial, you learned how to search AI-generated backdrops or generate your own. In this tutorial, you can follow some simple steps to learn a similar but more powerful tool for generating sprite costumes.
Note that strong moderation is applied to ensure all the images are appropriate for K-12 students. If any user tries to generate an inappropriate image, the request will be rejected. Please use this powerful tool responsibly. In addition, CreatiCode has the right to remove any inappropriate image from the library without the creator’s approval.
Step 1 - Open the AI Image Library Window
To get started, hover the mouse pointer over the circular button at the bottom right of the playground for adding sprites, and then select the “AI” option:
Step 2 - Search for a backdrop image from the community
Before generating a new sprite costume, you should first search among the existing sprite images generated by the community. This is much faster than generating new images by yourself.
Note that there are 2 different models for generating sprites:
- Human: this option should be selected when searching or generating human-like characters, or any character with hands/legs/eys/mouth etc.
- Non-Human: this option should be selected for all other types of objects, such as chairs, cars, animals, etc.
For example, you can input “a boy in blue shirt” into the text box, select the “Human” option, then click the “Search” button. The system will display some existing sprite images that are most related to “a boy in blue shirt”. You can then click on any one of them to add it to your project:
For another example, you can search for “a red car”, and make sure to select “Non-Human”:
You might notice that some of the images are not for cars, such as the “red fox”. This is because the “Search” button will search images by their descriptions, so the red fox is treated as somewhat related to the red car, as they are both red. Of course, the true red cars are ranked higher in the result list.
Step 3 - Refine Your Query
When there are many related images, you can refine your query to narrow down the list. For example, when we search for “a boy in blue shirt”, several images are for boys with golden hair. If we add “black hair” to our query, then the top results are all for boys with blue shirt and black hair:
Step 4 - Search by Name
As explained above, the “Search” button searches by the description of the images. For example, when we search for “a boy in blue shirt” earlier, the result images may have different names.
Another way to search is to try to match the image name with keywords directly. This is especially useful if you already know the name of the image you are looking for. For example, if you only want images with names that contain “captain hook”, you can do so using the “Search by Name” button:
Step 5 - Generate Your Own Sprite
If you can’t find the sprite you need, you can use the “Generate” button to create a new sprite. Note that it is critical that you give a more detailed description of the sprite, and don’t just use one or two words.
For example, suppose you need a boy in blue shirt that’s waving a hand, you may not find it in the existing library. You can set the description as “a boy, blue shirt, waving hand to viewer”, then click the “Generate” button. You won’t need to specify “Human” or “Non-human”, as our model will determine its type based on your description. After some waiting, the new sprite will be displayed:
For another example, suppose we need a red car for a new game project, but none of the existing red cars are horizontal, then we can generate a new one using this description: “a red car, facing right, game icon”:
Note that you can provide more details in your description, and our AI model will try to incorporate all of them into the image. For example, here is a more detailed description for the boy: a boy in blue shirt, yellow jeans, black shoes, short hair, south asian, dark skin. Here is the result:
Step 6 - Search for Images Generated by You
Since all your generations are shared with the community, you can search for images generated by you in the same way:
However, if you are only looking for images generated by you, you can select the “Created by me” option, and only your images will be searched:
Step 7 - Regenerate Your Images
If you are not happy with an image you have generated, you can generate another image using a different description, or you can simply “regenerate” this image: the same description will be used, but a different random “seed” will be used, so the new image will be different. This is most useful when you believe your description is fine but the AI model is not working well.
For example, an image is generated for “a small school bus”, but the result is not great. As shown below, when you click “regenerate” and confirm, the existing image will be deleted. After some time, you can search for your images again, and you will find the newly generated image:
Step 8 - Refine Your Image Description
Although the current sprite generation models can already generate beautiful and interesting images, they are still far from perfect. They sometimes fail to understand the request or miss critical details. Therefore, we often have to refine our description and regenerate the image multiple times.
Below are some useful tips on how to make the sprite AI model understand our descriptions better:
-
Use a few short phrases: our current image generation models can not understand complex sentences well, and they are mostly trained with requests composed of short keywords. For example, instead of saying “draw a boy wearing a blue shirt, who is waving a hand to us”, a better format is “a boy, blue shirt, waving hand to viewer”.
-
Use parentheses to emphasize key phrases: When there are certain requirements that you want to emphasize, you can wrap them using ( ). For example, suppose you are using this description: “a boy, blue shirt, waving a hand to viewer”. However, the generated images often fail to make the boy wave a hand. Then you can add a pair of ( ) like this: “a boy, blue shirt, (waving a hand to viewer)”. You can even add multiple nested ( ) like this to assign more weight to the phrase: “a boy, blue shirt, (((waving a hand to viewer)))”.
-
Learn from examples: When you find any image you like from the community library, you can find out what description was used to generate that image when you hover the mouse pointer over the name of that image. Over time, you will find out which keywords can be used to achieve a certain result:
Step 9 - Delete Your Image
If you are not happy with an image you have generated, you can also delete it from the library:
Step 10 - Check Image Generation Request Status
Unlike generating backdrop images, the process of generating sprite images is much slower, and there are also many more requests. Therefore, your request may be queued behind other users’ requests. In addition, sometimes, the image generated may have issues and be removed. For example, it might be inappropriate, or it might be blurry or malformed.
Therefore, to find out the progress of your requests, you can click the “Request Status” button, which will display a list of the most recent requests from you. You can review their description, image name, creation time and current status. In addition, if you want to cancel a queued request, you can click the “cancel” button:
Subscription vs Free Accounts
The AI-based sprite generation tool is freely available to all users. However, for users with a subscription, there are some advantages:
- The premium users have a much shorter waiting time when there are many requests in the queue.
- In times of high demand, free users may be subject to a rate limit on how many images they can generate every hour.
Advanced Topic 1 - Different Generation Styles
So far, you have learned the basic operations to work with AI-generated sprites. One additional technique you might want to explore is to specify different styles when you generate an image.
By default, a 2D cartoon-like style will be used to generate the backdrop. However, you can specify any other style in your description. There are tons of interesting styles, and below are some interesting examples you can try:
- 2D Flat Drawing
Description: a blue airplane, 2D flat drawing
Description: a princess in a pink dress, looking at viewer, 2D flat drawing
- Stylized Cartoon Drawing
Description: a blue airplane, stylized cartoon drawing
Description: a princess in a pink dress, looking at viewer, stylized cartoon drawing
- 3D Cartoon Style
Description: a blue airplane, 3D cartoon style
Description: a princess in a pink dress, looking at viewer, 3D cartoon style
- Minecraft Style
Description: a blue airplane, Minecraft style
Description: a princess in a pink dress, looking at viewer, square head, Minecraft game character
- Low Poly Style
Description: a blue airplane, low poly style
Description: a princess in a pink dress, looking at viewer, low poly style
- Play-doh Style
Description: a blue airplane, play-doh style
Description: a princess in a pink dress, looking at viewer, play-doh style
- Realistic Photo
Description: a blue airplane, realistic photo
Description: a princess in a pink dress, looking at viewer, realistic photo
- Comic Book Style
Description: a blue airplane, comic book style
Description: a princess in a pink dress, looking at viewer, comic book style
- Retro Game Style
Description: a blue airplane, retro-game style
Description: a princess in a pink dress, looking at viewer, retro-game style
- Steampunk Style
Description: a blue airplane, steampunk style
Description: a princess in a pink dress, looking at viewer, steampunk style
Advanced Topic 2 - Animation Using Variations
In Scratch, the same sprite may have multiple costumes, which allows us to create animations. This can be achieved by creating “variations” of an existing image. The idea is to select an existing image as a “reference”, and then ask the AI tool to generate a new image by modifying this reference image.
To use this feature, search for an image you would like to modify, and check the checkbox under it that says “use as reference”. After this, a new button for “Generate Variation” will appear:
After that, describe how you would like to modify this image, such as “make the boy do thumb up”, and then press the “Generate Variation” button:
After a while, the newly generated image will appear, with the requested change:
For another example, here is a bottle of green potion that can serve as the reference:
We can describe the change as “change the potion color to purple”, then click “Generate Variation”. The result image looks like this:
Note that the new person or object may not look exactly the same as the original one, but they should be very similar. Also, the AI tool may not be able to make the change exactly the way you request. You may need to try multiple times or change how you describe the change.
Advanced Topic 3 - Weapons as Game Assets
By default, you can not create any image that is related to violence. For example, if you try to generate an image of a tank, you will get an error message like this:
However, we often need weapon sprites in games, such as tanks or swords. Therefore, one exception is made if you include the keyword game asset in your request. For example, if your request is “a tank, game asset”, then it will not be rejected by the reviewing process:
-
Search or Generate Backdrop Images Using AI
In the standard MIT Scratch playground, there are only about 85 backdrops you can choose from, which significantly limits the kinds of projects you can create, especially for story-telling projects.
To fully unleash your creativity, the CreatiCode playground features an AI-based image generator. You can describe the backdrop you need and then use AI to generate it. You can also search among a huge number of backdrops generated by other users in the community.
Note that strong moderation is applied to ensure all the images are appropriate for K-12 students. If any user tries to generate an inappropriate image, the request will be rejected. Please use this powerful tool responsibly. In addition, CreatiCode has the right to remove any inappropriate image from the library without the creator’s approval.
In this tutorial, please follow a few simple steps to learn how to use AI for backdrop images.
Step 1 - Open the AI Image Library Window
To get started, hover the mouse pointer over the circular button at the bottom right of the playground, and then select the “AI” option:
Step 2 - Search for a backdrop image from the community
Before generating a new backdrop, you should first search among the existing backdrops generated by the community. This is much faster than generating new images yourself.
For example, you can input “parking lot” into the text box, then click the “Search” button, then the system will display some existing backdrops that are most related to “parking lot” based on their descriptions. You can then click on any one of them to add it to your project:
Step 3 - Refine Your Query
When there are many related images, you can refine your query to narrow down the list. For example, suppose we need a parking lot backdrop as a dark background, we can change our query to “parking lot dark”, and we will get images that are mostly showing a dark parking lot:
Step 4 - Search by Name
As explained above, the “Search” button searches by the description of the images. For example, when we search for “parking lot” earlier, one of the result images is named “neon cinema street life”. Althought this name doesn’t say “parking lot” at all, it contains a parking lot.
Sometimes, if you already know the exact name of the backdrop you are looking for, you can use the “Search by Name” button instead. For example, if we still search for “parking lot”, but use the “Search by Name” button, then all the result images will contain “parking lot” in their names:
Step 5 - Generate Your Own Backdrop
In case you can’t find the backdrop you need, then you can use the “Generate” button to create a new backdrop. Note that it is critical that you give a more detailed description of the backdrop you need, and don’t just use one or two words.
For example, suppose you need a large and empty parking lot, but none of the existing backdrops from the community fits this description. You can type in the description “a large and empty parking lot”, then click the “Generate” button. After a short waiting time, the new backdrop will be displayed:
Note that all backdrop images you generate are shared with the community. Anyone using the CreatiCode platform can use them. However, they can NOT be used outside the CreatiCode platform.
In addition, your description should be for a background image. It will not work well if you try to generate images of objects or people. You can use the AI generator for sprites instead.
Step 6 - Search for Backdrops Generated by You
Since all your generations are shared with the community, you can search for images generated by you in the same way:
However, if you are only looking for images generated by you, you can select the “Created by me” option, and only your images will be searched:
Step 7 - Regenerate Your Image
If you are not happy with an image you have generated, you can generate a new image with a different description, or you can simply “regenerate” this image: the same description will be used, but a different random “seed” will be used, so the new image will be different.
As shown below, when you click “regenerate”, the existing image will be deleted. After some time, you can search for your images again, and you will find the newly generated image:
Step 8 - Refine Your Description
Image generation is a random process, and it often takes a few iterations to refine your description. Usually, the image generation model can “understand” what you need, so you should include important details in your description.
For example, suppose you need an icecream truck in the parking lot, you can modify the description to this: “a large and empty parking lot, with an icecream truck at the center”. Here is what you will get:
Now, suppose we want to add some kids waiting to buy the ice cream, and we change the description to this: “a large and empty parking lot, with an icecream truck at the center, with a few kids waiting”. The updated image will look like this:
As you can see, when we add more details, the image generator will try to include them in the image, but it might fail, so we need to regenerate the image or change the description repeatedly.Although the current backdrop generation model can already generate beautiful and interesting images, it is still far from perfect. It sometimes fails to understand the request or misses critical details. Therefore, we must refine our description and regenerate the image multiple times patiently.
Step 9 - Delete Your Image
If you are not happy with an image you have generated, you can also delete it from the library:
Subscription vs Free Accounts
The AI-based backdrop generation tool is freely available to all users. However, for users with a subscription, there are some advantages:
- The premium users have a shorter waiting time when generating each backdrop.
- The images generated by premium users have more details and more accurately follow the description.
- In times of high demand, free users may be subject to a rate limit on how many images they can generate every hour.
Advanced Topic - Different Generation Styles
So far, you have learned the basic operations to work with AI-generated backdrops. One additional technique you might want to explore is to specify different styles when you generate an image.
By default, a 2D cartoon-like style will be used to generate the backdrop. However, you can specify any other style in your description. There are tons of interesting styles, and below are some interesting examples you can try:
3D Cartoon
Description: a large and empty parking lot, 3D cartoon style
3D Isometric
Description: a large and empty parking lot, 3D isometric
Minecraft Style
Description: a large and empty parking lot, Minecraft Style
Comic Book Style
Description: a large and empty parking lot, comic book style
Retro-futuristic
Description: a large and empty parking lot, retro-futuristic
Play-doh Style
Description: a large and empty parking lot, play-doh style
Van Gogh Style (or any other artist you like)
Description: a large and empty parking lot, Van Gogh style
Line drawing, no color
Description: a large and empty parking lot, line drawing, no color
Fantasy Art
Description: a large and empty parking lot, fantasy art
Realistic Photo
Description: a large and empty parking lot, realistic photo
Advertising Poster Style
Description: a large and empty parking lot, advertising poster style
Watercolor
Description: a large and empty parking lot, watercolor
-
RE: Broken append block
We can see the issue. Will post a fix soon. Thanks for the feedback.
-
RE: Coding questions
Can you explain what kind of joystick? Do you have an example or a picture?
-
RE: Sourcing Creaticode Extensions
Noted. Thank you for the feedback and suggestions. As you know, our main target users are K-12 students learning coding and AI, so we will prioritize features that support this objective.
-
RE: there is a block that is not in my inventory
which block are you referring to?
-
CreatiCode XO (AI Assistant) - Teacher Controls
Introduction
For teachers, if you have created a class to manage your students’ accounts (see this tutorial), then you can easily manage how students use CreatiCode XO.
Turn On/Off XO for Students
After logging in as a teacher, when you open the “My Classes” page ( https://play.creaticode.com/myclasses), you can select a class from the left, and find the controls in the “Home” tab. You can either turn on/off the access to XO for the entire class, or change it for individual students:
Note that after disabling XO for a student, the next time that student opens the playground, he/she will not see the XO button anymore. However, if that student already has the playground opened, then he/she can still type into the XO window, but XO will not respond.Similarly, after enabling XO for a student, that student should reopen the playground (by reloading the page) to make sure XO is displayed.
Review Chat History between XO and Students
All the conversations between students and XO are logged for review purpose. We suggest all teachers tell their students about this logging feature, which will usually motivate students to use XO properly.
As a teacher, to review the XO chat history log for any student, you can open the “XO Log” tab for any class, then click the “view” link next to any student:
The conversations will be sorted by time, and you can pick any time from the dropdown. -
RE: Inappropriate messages.
I have removed the screenshots you posted since they are not appropriate. Please send messages directly to me instead of posting them.
That user has been banned for 2 weeks.
CreatiCode
-
RE: The Sprite rotation isn't working
Not sure I get your point. I have updated the demo project to place the arrow at x=100 and y=100. It still correctly points tot he green ball.
Maybe you can share your project?
-
RE: The Sprite rotation isn't working
Please try to set the rotation style to “all around” like this:
The block is working fine, as you can see in the following simple example:
https://play.creaticode.com/projects/664657bdff1b4908d7f46bc0
-
RE: 2d collison without 2d physics block
Any reason you don’t want to use the 2D physics blocks? They are actually awesome and can do amazing things for you with very few code blocks. For example, the water simulator only uses 22 blocks:
https://play.creaticode.com/projects/78337eed686831330f3879a0
If you have a more specific question on how to do something with the 2D physics engine, we can give you some example code.
CreatiCode
-
RE: Putting Scratch Projects in Creaticode
Please follow these steps:
Step 1: On the MIT scratch website, select “File” -> “Save to your computer”, which will download an “*.sb3” file. Note its location on your computer.
Step 2: On the CreatiCode website, create a new project.
Step 3: Select “File” -> “Load from your computer”, then select the sb3 file, then it should load the project with the correct blocks/assets/name:
Note that if you are not the author of the original Scratch project, please add a link to that original project in the “Notes and Credits” area.
-
RE: Is it possible? AI
That’s an interesting idea, but currently it is hard to do for 2 reasons:
-
ChatGPT can not “see” the screen, so it doesn’t know the game state, like what are the blocks around the player and the player’s position/collection, etc. So to make it work, you have to write code to tell ChatGPT the current state of the game yourself, which is hard, since there are so many things to describe.
-
ChatGPT has a limit on how much it remembers, so after a few iterations, it will “forget” what happened earlier.
In the future, more powerful models will solve both issues though.
CreatiCode
-
-
RE: Error in Einstein AI tutorial?
Your program looks fine. The checkmark is automatically added by our server to indicate that is the end of the stream, since there is no other way for you to tell whether more text is coming from the server.
You can double-check it by examining the value of the “response” variable after some chats:
CreatiCode
-
RE: SCP player blinking...
Got it. Besides what @Tyller_ suggested, you can also try to put a black ball outside the camera for a short time?
Here is an example:
https://play.creaticode.com/projects/66424f07ff1b4908d7f23000
-
RE: The inline comment block should have a second input
Got it. We will put that on our list of improvements. For the time being, please use the "// " comment block above the block.
-
RE: SCP player blinking...
Sorry, our 3D models do not have any animation for blinking eyes.
-
RE: SCP player blinking...
Can you be more specific? Make “what” blink? objects or eyes?
-
RE: reputation
It should be shown on your own profile page (click your own icon). Currently, the most direct way to gain higher reputation is to post articles that other users upvote.
-
RE: Community Models
If the model already supports animations, then you can use CreatiCode blocks to play those animations. In other words, CreatiCode can not add new animations to community models.
-
RE: @info-creaticode I need help...
That is one of the methods to use XO to help you debug. More info here:
https://www.forum.creaticode.com/topic/1102/creaticode-xo-ai-assistant-debugging
-
RE: @info-creaticode I need help...
Hi, please move your post on SCP to this section. It should not be in the “Tutorials” section, since it is not a tutorial. Thank you.
To get help on it, we suggest you try to use our AI Assistant “XO”. Here is how to use it for new project ideas:
https://www.forum.creaticode.com/topic/1103/creaticode-xo-ai-assistant-new-project-design
CreatiCode
-
RE: reputation
Yes. Please feel free to publish more interesting posts and help out. Also, you are welcome to create tutorials on interesting projects for new learners.
Thank you
CreatiCode -
RE: reputation
Hi, “reputation” is a standard feature of online forums that reflects how much contribution a user has made to the community, such as sharing and replying,
-
RE: New Creaticode Extensions with New Blocks and Customizations!
Thank you for this list of requirements! We will try our best to accommodate these requests and fix the issues you raised.
Some of them are already available, such as the integration of ChatGPT AI (your #25). Please check it out.
CreatiCode
-
RE: Minecraft
That’s a very ambitious goal! I suggest you start with this demo project and try to understand how it works, then you can start making changes to it:
https://play.creaticode.com/projects/660aa865b57a3da838c387bc
CreatiCode
-
RE: How do you create your own scene and model
Hi, there are a few tutorials that talk about using your own models as “community models”. Please check them out:
- https://www.forum.creaticode.com/topic/413/3d-using-a-tinkercad-model-difficulty-2
- https://www.forum.creaticode.com/topic/652/3d-using-models-from-sketchfab-or-cgtrader-difficulty-2
- https://www.forum.creaticode.com/topic/412/3d-using-your-ufo-as-a-model-difficulty-2
CreatiCode
-
ChatGPT AI: Talk to an AI Sprite (Difficulty 2)
This is a video tutorial shared at
The project is shared at: https://play.creaticode.com/projects/662fd189af2b57d41a397bc1
-
RE: The inline comment block should have a second input
Currently it is meant to be a placeholder telling the user what they should do, such as:
It seems what you are looking for is a new block. Can you give an example how you would use it?CreatiCode
-
RE: Emitter with model
For anyone interested, here is a demo of using emitters to emulate sonar waves:
https://play.creaticode.com/projects/662a5a22af2b57d41a37f3e2
-
AI - Use Neural Network Model for Training and Prediction (Difficulty: 5)
Introduction
Neural Network (NN) Models are the core building blocks for many modern AI models, including large language models like ChatGPT.
In this tutorial, you will learn to build a simple NN model that predicts the result of a math expression.
Step 1 - Starting Project
Please open and remix this project as the starting point:
https://play.creaticode.com/projects/663058eedc3cd90d25ae3b11
This project contains some basic blocks to add 5 buttons for creating, training, testing, saving and loading NN models. 2 empty tables for “training data” and “test data” are also available. Lastly, an “error” variable will be used to display the prediction error.Step 2 - Create an Empty NN Model
When button0 is clicked, we will create an empty NN model like this:
The model will be named “m1”, and we will be using this name to refer to this model in many places below.Step 3 - Add a Layer
A neural network model is made of many “layers” of “neurons”. Each neuron is a small calculator that takes some input values and calculates an output value based on the input values. A layer is just an array of such neurons. For example, this picture below shows an NN model with 3 layers: the first layer has 2 neurons, the second layer has 5 neurons, and the last layer has 1.
source: https://www.makeuseof.com/neural-network-vs-deep-learning-are-they-different/
For our example project, we will build a 3-layer NN model like drawn above. It will take 2 input values at layer 1, and output 1 value as the final output at layer 3.Note that the first layer is always the “input layer”, so we don’t need to explicitly add it.
We can start by adding the second layer like this:
A few notes:- Its input shape “2” must match the number of input variables in the first layer, which is 2;
- Its output size of “5” is how many neurons are used in the second layer.
- For “activation”, it refers to how the output value is determined by the input values, and you can choose “relu” for most situations.
After this step, we have a 2-layer NN model now.
Step 4 - Add Another Layer
Now let’s add the third layer:
Its input shape must match the output size of the previous layer, which is 5. Since this is the last layer, its output size also has to match the number of variables we are predicting, which is 1.
After this step, we have built a 3-layer model, which takes 2 input variables, calculates 5 values based on them, then aggregate these 5 values into one output variable.
Step 5 - Compile the Model
Now we need to compile the NN model before using it:
This step allows us to configure the model with a few parameters:- The “loss” calculation method is set to “meanSquareError”: this is a common way to calculate the prediction error of the model. The basic idea is the following: suppose we have 10 sets of training data, and when we run the model, we generate a prediction for each set. We calculate the “error” for each prediction, square it, then calculate the sum of all these squared values.
- The optimizer is set to “adam”. This is a commonly used method that controls how the model adjusts its neurons based on the errors it gets during training.
- The learning rate is set to 0.01, which controls how much the model changes its neurons in each training cycle.
By now we have completed the model creation, but the model only contains some random values for the neurons in it, and it can not do anything useful. Therefore, the next task is to train the model with some data.
Step 6 - Generate Training Data
We will first need to generate some training data. Please define a new block “generate training data”:
Step 7 - Define the “training data” Table
To store the training data, we need to add 3 columns of “x”, “y” and “z” in the “training data” table:
Step 8 - Add Training Data
Now we will use a repeat loop to add 1024 rows of data into the “training data” table. For each row, it will have a random number for the x and y values, and the z value is calculated as x * 2 + y * 3:
Of course, once you are done with this project, you can change the z value to a more complex expression.Now if you run the “generate training data” block, you will get 1024 rows of data like this:
Step 9 - Train the NN Model
Now we can use the training data to train the model:
When we “train” the model, we use the model to predict the z value repeatedly using the given x and y values, and we try to adjust the value of the neurons in the model based on the prediction error we get. Over time, the prediction error will reduce as we adjust the model.
This block takes these inputs:
- The model to be trained is named “m1”
- The training data is in the given table
- We are using rows 1 to 1024 from the table for the training: you can change these 2 inputs to use less data if you like.
- Input columns and “x,y”: these are the column names of the input variables in the table, separated by commas. The have to match the name of the columns in the “training data” table.
- Output column is “z”, which is the desired output value from the model for each row. It also has to match the column name in the training data table.
- Batch size is 128: this controls how many rows of data are used to train the model in each cycle.
- Epochs: this is the number of training cycles to use. The higher the value, the more iterations the model will be trained to improve its parameters, and in general the smaller prediction error we will get.
Step 10 - Create Test Data
Next, we will test our model to see how well it can predict the z variable for any given x and y variables. When the “test” button is clicked, we will first create 100 rows of test data:
As shown, the code is very similar to how we create the training data, except that the table name is changed to “test data”, and we are generating only 100 rows. Note that there is a new column “prediction” as well, which will be used to store the prediction from the model.When we run this block, we will see some test data like this:
Step 11 - Run the Model for Prediction
Next, we can use the model “m1” to run prediction for the data in the “test data” table:
The inputs are:- model name: “m1”
- table containing the data: “test data”
- rows: we are using row 1 to 100 of this table
- input columns: the x and y columns will be used as the 2 input variables for the model
- output column: the prediction output will be stored in this column
When we run this block, it will run the model on every row of the test data, and store the corresponding prediction output in the “prediction” column. Here is an example result:
Note that the predictions are very close to the actual z values, but they are still not exactly the same. That’s because the NN model doesn’t really know that the z variable is 2 times x plus 3 times y. Instead, it try to guess this relationship by adjusting its neurons repeatedly. If we train the model more, it will get more and more accurate.Step 12 - Calculate Root Mean Square Error (RMSE)
To measure how well our model is doing, we can calculate the Root Mean Square Error (RMSE) using the test data. RMSE is a common metric used to measure how well a model predicts numberic variables. It tells us the average distance between the model prediction and the true value.
Here is the logic for calculating RMSE. We go through each row in the test data table, and calculate the difference between the z value and the prediction, and take a square of this difference, and add it to the “error” variable. In the end, we calculate the average of the squared differences, and calculate the square root of it.
Note that the RMSE depends on the test data. If we click the “test” button a few times, we will see the error value changes each time, but it is roughly the same range:Step 13 - Re-train the Model
Suppose we are not happy with the current error value we are getting. We can train the model again. The easiest way to improve it is to train it through more iterations, so it gets more chances to adjust its neurons to reduce the prediction error. For example, we can change the training epochs from 100 to 500 and train the model again:
After the training completes, we can test it again:
We can clearly see that the errors are significantly smaller than before.Step 14 - Saving and Loading the Model
If you are building the model for other users, you don’t want to require everyone to train the model. They should be able to simply load the model you have trained and use it for prediction. You can save the model parameters to the CreatiCode server, and then load the model from the server in the future. Note that you can only load models that are saved in the same project.
Here are the blocks:
For a test, try to save the model now, then reload the project. The model will not be available in the playground when you reload the project, so when we test the model, it will not generate any prediction. However, if we load the model, then it can be used to predict again:Step 15 - Next Steps
Here is the final project:
https://play.creaticode.com/projects/6544eaa9f569b60441928e1f
This is a very simple example, and there are many ways to play with the model more. Here are some suggestions:
- A more complex expression: you can try to change how the true value of z is calculated, and see if the model can still be trained to predict z accurately. You can also add more variables besides x and y
- A more powerful model: our current model is very simple. you can add more layers to it and make each layer bigger. Note that the first layer’s size should always match the number of input variables, and the last layer’s output size should match with the number of variables you are predicting.
-
RE: Lag Bug
It loos pretty smooth when we run it:
Could it be an issue with the computer or browser you are using?
CreatiCode
-
RE: Is the layering bugged?
When we run it, we got this at the end:
The retry button looks fine. Can you give some more details on the issue?BTW it’s an interesting game.
CreatiCode
-
RE: Is the layering bugged?
Hi, can you please share your project and post a link here? We will look into the issue.
CreatiCode
-
RE: Emitter with model
@flores-yorkshireacademy said in Emitter with model:
My students are learning to code in 3D. They want to use the emitter as a sonar for an ROV; is this possible?
Hi Kathleen,
It is not clear what your students are trying to do. If you can share an example project, we can try to help modify it.
For a generic explanation, to make anything glow, it has to have emission colors. By default the models don’t have emission colors (they only have diffusion colors), so they won’t glow. However, we can update the models to add emission colors to them.
Note that the “update color” block requires you to specify an “area”, which can be up to 4 parts of the model, and the meaning of each area is different depending on the specific model (you will have to try them to find out). Here is more information on that block:
https://forum.creaticode.com/topic/136/update-object-colors
CreatiCode
-
RE: My friend can't sign into creaticode forum
Can you please ask your friend to email his/her email login to info@creaticode.com? We will check why.
CreatiCode
-
CreatiCode XO (AI Asssitant) - Give Me a Quiz
Introduction
To most people, quizzes are not fun: they can be too easy or too hard, and we may have to take them before we are ready. However, quizzes are one of the most effective tools for reinforcing what we have learned and identifying gaps in our understanding.
With XO, you can get quizzes that are much more fun: you can customize the theme of the quizzes and choose the difficulty level.
If you are a teacher, you can also use XO to generate quizzes for your entire class.
For an important note: XO can not accurate evaluate all quizzes yet, especially coding challenges. That is because currently, XO can not run the program, so it has to rely on reviewing the code. Also, XO is not smart enough to recognize all coding issues yet (though it is catching up fast!). To be safe, teachers may still need to review the final answers.
Generate Quiz for Any Difficulty Level
In the most basic format, you can ask XO to generate a random quiz by saying “give me a quiz on [TOPIC] with difficulty [LEVEL]”. The LEVEL can be 1, 2, 3 or 4, with 1 being the easiest. For example, when you say “give me a quiz on variables with difficulty 1”, you may get a response like this:
Now you can simply answer the quiz in the chat and get the result:
Specify Quiz Format
By default, XO will randomly select from these 3 formats: coding challenge, multiple-choice question and short-answer question. However, you can specify the format if you have a preference. For example, you can ask “give me a coding challenge on variables with difficulty 2”:
After implementing the solution, we can ask XO to check out solution by saying “check my code” or “check my answer”. If there is an issue, XO will point it out:
After fixing the issue, we can ask XO to check again by saying “check again” or “how about this new answer”:
Specify Quiz Theme/Story
Quizzes can be made fun when we add some “flavors” to them. Specifically, we can ask XO to generate quizzes with a given background story, character or theme. XO will be happy to do so. For example, you can pretend to be any character, like an Alien:
Below are some more examples that you can try:- I’m Frodo and you are Gandalf. Give me a coding challenge on repeat loops
- It’s Earth Day. Write a level 1 coding quiz for using events that aligns with this theme.
- Give me a coding test on the <key pressed?> sensor block, and use the storyline of Star Wars
- As a wizard in Hogwarts, I need a quiz on cloning sprites using the “create clone of” block. Difficulty Level 2.
- I’m a detective solving a mystery. Challenge me with a puzzle on broadcasting messages. Difficulty Level 1.
- Imagine I’m a pirate seeking treasure. Create a navigation challenge using motion blocks. Difficulty Level 3.
- I’m a chef in a cooking show. Whip up a coding recipe that uses lists to manage ingredients. Difficulty Level 2.
- Pretend I’m a superhero. I need to learn about sensing blocks to avoid obstacles. Difficulty Level 1.
- I’m an astronaut on Mars. Send me a coding task to analyze patterns with “repeat until” loops. Difficulty Level 3.
- As a medieval knight, I need to learn about variables to keep track of my health and gold. Difficulty Level 2.
- I’m a time traveler in ancient Egypt. Teach me how to use events blocks to start scripts. Difficulty Level 1.
- As a vampire hunter, I need a challenge on using “if then else” statements to make decisions. Difficulty Level 2.
- Imagine I’m a DJ at a party. I need to learn how to use sound blocks to mix tracks. Difficulty Level 1.
- I’m a scientist researching climate change. Give me a quiz on using data blocks to record temperatures. Difficulty Level 3.
- As a spy behind enemy lines, I need a stealth coding task using operators to crack codes. Difficulty Level 2.
- I’m a dinosaur in the Jurassic period. Challenge me with motion blocks to dodge meteors. Difficulty Level 1.
- Pretend I’m a farmer. I need a coding quiz on repeat loops to automate my farm tasks. Difficulty Level 2.
- I’m a king defending my castle. Create a challenge using variables to track resources and soldiers. Difficulty Level 3.
- As a deep-sea diver, give me a coding test on the “touching color?” block to navigate coral reefs. Difficulty Level 2.
- I’m an elf crafting magical items. Challenge me with lists to manage my materials. Difficulty Level 1.
- As an explorer in a haunted house, I need to use broadcast messages to trigger ghostly events. Difficulty Level 3.
- I’m a hacker in a cyberpunk city. Send me a quiz on using “repeat until” loops to bypass security. Difficulty Level 2.
- Imagine I’m a racer at the Grand Prix. I need a coding test on motion blocks to control my speed. Difficulty Level 1.
- As a magician preparing a show, give me a challenge using sensing blocks to interact with the audience. Difficulty Level 2.
- I’m an artist in a gallery. Create a coding quiz on cloning sprites to replicate my paintings. Difficulty Level 3.
- Pretend I’m a kid in a candy shop. I need to learn about variables to count my candies. Difficulty Level 1.
- I’m a robot in a factory. Challenge me with operators to calculate production efficiency. Difficulty Level 2.
- As a superhero fighting villains, send me a quiz on “if then” statements to choose my actions. Difficulty Level 3.
- I’m a historian decoding ancient scripts. I need a task using lists to categorize artifacts. Difficulty Level 2.
- Imagine I’m a beekeeper. Give me a coding test on repeat loops to manage my bee routines. Difficulty Level 1.
- I’m a snowboarder in the Olympics. Challenge me with motion blocks to perform tricks. Difficulty Level 3.
- As a composer writing a symphony, I need a quiz on sound blocks to arrange my music. Difficulty Level 2.
- I’m an alien exploring Earth. Create a coding challenge on broadcasting to communicate with my spaceship. Difficulty Level 4.
Specify More Details
XO can follow our instructions very well, so we can feel free to add more details to our request. Here are 2 examples.
Example 1 - Limit Scope of Blocks
Since XO may not know which blocks we already know, it may generate a quiz that uses some blocks that we are unfamiliar with. To avoid this issue, we can specify which blocks can be used like this: give me a coding challenge on clones. difficulty 1. note that I am new to Scratch and I can only use motion and event blocks
Example 2 - Reference the Project
Since XO can read the code in the playground, you can ask Xo to use that as a reference when creating the quiz. For example, you can open the Explore page and find an interesting game, then ask XO this: I’m a 5th grade teacher. I just explained this project to my class, and now I hope to test their understanding. Give me a multi-choice question of level 1 about how this project works.
Share Your Quizzes
If you have found any interesting way to prompt XO to generate quizzes, please feel free to reply to this post below with the request you used and XO’s response.
-
CreatiCode XO (AI Assistant) - Automatic Feedback
Introduction
This tutorial is designed primarily for K-12 educators, though students may also find it insightful.
As educators, one of our key goals is to provide students with constructive feedback that acknowledges their efforts and guides them towards improvement. Effective formative assessment is crucial in this process, as it helps highlight both strengths and areas for growth.
Nevertheless, crafting thoughtful and comprehensive feedback can be quite demanding. It requires a careful review of each element of a student’s work and a considered choice of words to ensure the message is both encouraging and instructive.
To address this challenge, XO has been developed to provide feedback on any given project when we provide it with a rubric. Here is how it works:
- Teachers draft a rubric as part of the assignment, a common practice already in place.
- Students, as they progress with their project, can request XO to assess their work according to the specified rubric. They can continue to seek feedback and make improvements until they are satisfied with their project.
- Students submit the final project to their teachers for evaluation.
- Teachers can review the log of XO conversations for each student and can also utilize XO to evaluate student submissions.
The key advantage of this approach is that it offers students instant, personalized feedback, significantly enhancing both the efficiency and engagement of the learning process.
Example Step 1 - Teacher Creates an Assignment
Let’s consider a scenario where a teacher has recently introduced the concept of the “broadcast message” block in class. Here’s an example of how an assignment using this concept might be structured along with its rubric:
Create a project that effectively demonstrates the use of message broadcasting between sprites. Rubric: 1. The project must include at least two sprites, each with appropriately descriptive names. 2. At least one sprite should broadcast a message that another sprite receives and responds to. 3. All message names used should be clear and meaningful. 4. The project should narrate a coherent story, such as a dialogue between two people or an interaction between two animals. 5. [Extra credit] Implement a broadcast message that triggers simultaneous actions in two or more sprites.
Example Step 2 - Student Buiids Initial Project
Suppose a student creates an initial version of the project with 2 sprites like this:
Sprite “Sprite1”:
Sprite “Crab”:
Note that the Sprite1 is missing the “broadcast” block.
Example Step 3 - Student Gets Initial Feedback
Now, suppose the student asks XO for feedback. He/she needs to ask XO to “review the project for the given assignment”, then paste the assignment/rubric into the chat. Don’t worry about the format, as XO will still understand the request even if it is all in one line:
Note that XO has gone through every requirement in the rubric thoroughly, and it has correctly pointed out some issues, especially that “message1” is not sent out.
Example Step 4 - Student Improves Program
Next, suppose the student has updated the program to broadcast the message, and also renamed the message name like this:
Sprite1:
Crab:
Example Step 5 - Student Asks for Feedback Again
Now, the student can ask for another review by saying “review again” or “how about now”:
Note that the review has been updated to confirm the changes the student has made, and also encourage student to focus on the remaining issues.The student can keep improving the project continuously until he/she is happy about it.
Notes on Writing Rubrics for XO
It’s important to understand that XO is capable of evaluating only the code blocks within each sprite. This means that XO is unable to assess several aspects of the project:
- Aesthetics: XO cannot “see” or evaluate the visual elements like costumes or backdrops on the stage.
- Runtime Issues: XO does not run the projects, so it cannot detect certain bugs or issues that only appear during execution.
- Project Description or Comments: XO is unable to read and interpret any written project descriptions or embedded comments.
Given these limitations, XO is best utilized for static analysis of the programming elements of a project.
Use XO to Write Rubrics
If you’re uncertain about how to write effective rubrics for XO, you’ll be pleased to know that XO can assist in writing the rubrics itself. Who doesn’t love an AI that can write instructions for itself?
For best results, here are some tips for asking XO to write rubrics:
- Provide as much details about the student and the assignment as possible;
- Include all key points you want to include
- If you already have a sample project, open it and ask XO to use this project as a reference
- Ask XO to improve until you are satisfied
Here is an example request:I'm teaching fifth grade students how to use repeat loops in combination with variables. Write an assignment with rubric. It should cover variable initialization and variable updates inside the loop.
And here is an example output from XO: -
CreatiCode XO (AI Assistant) - New Project Design
Introduction
CreatiCode extends MIT Scratch by introducing a variety of new block categories including 3D game engines with physics capabilities, 2D physics, artificial intelligence, app widgets, multiplayer online games, augmented reality, and table variables. These additions allow for the creation of a much broader range of projects beyond what is possible with standard MIT Scratch.
Starting a new project can sometimes be daunting if you’re unsure of where to begin. This is when you can ask XO for help. XO has seen many different types of projects, so it can often make some suggestions on how to design a new project.
It’s important to remember that XO is primarily an assistant. While it can provide helpful tips and guidance, it cannot create an entire project on its own. XO is optimized for short, specific responses, and its performance may decline when tasked with generating lengthy replies. Moreover, as a coding learning tool, XO aims to enhance learning by encouraging students to engage more deeply with the programming process. Providing full code solutions would be counterproductive to this educational goal.
Also, XO can not generate original ideas: everything XO says is a response to your idea based on other existing projects that XO has seen before. For a project to truly stand out, your own creativity and vision are key. XO’s role is to assist in bringing your unique ideas to life, offering support and suggestions based on its vast database of project insights.
In this tutorial, you will learn how to use XO to design new projects.
Generate Project Outline
Whenever you come up with an idea, you can ask XO how to build it. XO would give you an outline of the project. You are use this as a baseline to estimate the complexity of the project, and whether you are ready for it.
For example, you can ask, “how to build a 3D platformer game?”, and here is an example response:
It typically follows this format:- Overview of the project
- Key components (stage and sprites)
- Key logical steps to implement each component
- Tutorial or demo project links
Customize with More Details
If you simply provide a few words for your project idea, XO will respond with a fairly generic outline. To get more original results, you would have to provide more details. As a basic rule, as you provide more details, XO’s response will also become more unique.
For example, here is an updated request:
Tell me how to design a 3D platformer game, where the player controls an Alien that can both jump and change direction in the air, and the platforms are moving themselves, and there are enemies that fire lasers at the Alien. The Alien can also pick up awards to run faster or jump higher.
Here is what XO says about it. As explained before, the originality has to come from your input.
Start Small
Since XO can generate outlines for any project idea, it’s easy to be ambitious and aim for a project that might be too complex to manage effectively. For instance, numerous students have contemplated building “Minecraft in 3D” only to realize that such a project exceeds the typical scope of school assignments.
A key principle to follow is “don’t bite off more than you can chew.” This means you should aim for projects that are challenging yet still within your capabilities. As you develop your coding skills through continuous practice, you’ll be equipped to tackle increasingly complex projects over time.
Ask for Project Ideas
Sometimes you run out of ideas on what to build, you can also ask XO to give you some suggestions. For example, you can say: I want to build a project to practice how to use ChatGPT blocks, can you give me some ideas for small projects?
You will get a list like below, which may inspire you to find your own idea:
Focus on Specific Steps
After getting a project outline, most people are tempted to say this: “give me all the code!”. However, XO can’t simply convert the project design to a fully working project. Most likely, you will get a “disappointing” response like this:
So, what’s the right way to proceed? We simply need to focus on individual steps/features. For example, if we focus on the first step to set up the 3D scene, XO will be happily working with us again: -
CreatiCode XO (AI Assistant) - Debugging
Introduction to Debugging
One area where every Scratch programmer needs help is debugging. When we say a Scratch program has a “bug”, we are really saying the program is doing something unexpected. This usually happens because what you expected to see isn’t what actually appears on the screen. Most of the time, the project is doing exactly what you told it to do through your code—it’s just not what you wanted.Think of debugging as being a detective in your own computer game. Your mission is to find the clue—a specific part of your code or a single piece of information you’ve entered—that’s causing the unexpected behavior. You can look at each part of your code closely, or you can play detective by watching what the project does and making smart guesses about what might be wrong.
Now, you might be wondering, how does XO fit into all of this? Think of XO as your trusty sidekick in this detective game. In this tutorial, you’ll discover several strategies for debugging with XO’s support.
Important Note: Do not rely solely on XO to detect all problems in your code. XO does not execute your code but reviews it statically, which is challenging even for experienced programmers. Additionally, XO’s capabilities in logical reasoning and error detection are limited. Consequently, the primary responsibility for identifying issues rests with you, and XO should serve merely as a supporting tool.
Explain “Expected vs Actual”
The biggest mistake in using XO for debugging is asking questions that do not clearly explain the problem, such as “it is not working!”, “what’s wrong?” or “help me debug!”.
XO doesn’t know what you are expecting to see. Also, XO can only look at your code, and it can not run it, so it does not know what you observe when the program runs. When it is not clear what’s the issue, XO will ask for clarification:
The recommended format to ask XO to debug is to include these 2 parts:
- What I expect the program to do
- What I observe when the program runs
Here are some good examples:
- I expect the Dog to say 1 to 10, but it only says 1 to 8
- I am trying to move the clone to a random position, but I see that it always appears in the same position
- I thought the list would contain 10 numbers, but when I ran it, I only got 1 number
Sometimes, the expected behavior is obvious from the description, so you may omit it. For example:
- The chatbot never responds to my question --> implying we expect the chatbot would respond in a short time
- The sprite doesn’t move, why? --> implying we expect it to move
- The 3D table’s top is not connected with its legs --> implying we expect the table top to connect with the legs.
Common Coding Mistakes
For commonly made coding errors, XO can spot them right away. It will only report one or two such problems each time to avoid overwhelming you. Also, the problem it reports may not directly resolve the issue you are facing. Yet, you should still fix the reported problem first, then ask XO for more suggestions.
For example, here is a simple program with a variable initialization bug. XO can not only point out the issue, but also suggest how to fix it.
Note that XO understands all the new blocks used in CreatiCode, and can point out issues associated with their usage. For example, here is a common issue in 3D programs about initializing 3D scenes:
Narrow Down the Problem’s Scope
For more complex issues and larger projects, XO may not have the immediate answer. In these situations, it’s important to first figure out where the problem might be coming from by focusing on specific parts of your project. You can often determine the most important parts to look at by thinking about how your program is supposed to work. For instance, if your character isn’t moving when you press a button, you should check the parts of your code that are supposed to respond to button presses and make your character move.
If you’re not sure which parts of your code to look at first, you can get XO’s help. If you explain the problem well, XO can help figure out the best place to start looking.
As a practice, please open the following project and remix it:
https://play.creaticode.com/projects/6616a1a7564fc287b0e9b879
Next, modify this block to set the y speed to -450 instead of 450, which will be the bug we try to find.
Then you can ask XO to help locate the issue, and it will suggest a few relevant places:
Use XO as a “Rubber Duck”
Another commonly used debugging technique is called “Rubber Duck Debugging”. The idea is to describe your code to a rubber duck toy that will listen to you. This process often helps us rethink the logic of the program and identify flaws. In addition, it forces us to pay attention to every block and every input as we describe the code. It sometimes helps us spot small mistakes we have overlooked.
XO can serve a similar role as a rubber duck. You can simply tell XO to serve as your rubber duck, or you can click the question mark button directly:
After this, XO will enter a special mode: it will respond with short sentences, assist you in walking through your code, and point out any potential mistakes as you talk.For example, with the issue of wong y speed above, XO will suggest that issue as we discuss with it:
To exit this “rubber duck” mode, you can simply clear the chat to restart the conversation: -
RE: Can we make tutorials?
Yes, please feel free to post in the tutorial category: https://www.forum.creaticode.com/category/17/tutorials
Thank you
-
RE: CreatiCode XO (AI Assistant) - Explain To Me
It should be able to write code for you and display them visually. As shown above, when you ask “how to use the ‘for’ block”, it would show you an example program as visual blocks, and you can directly copy that into your playground.
If that doesn’t work for you, please share the prompt you are using, and we will investigate why.
Thank you
Bin -
RE: ChatGPT feature only works when logged in
Hi Lucie,
You are right. Only users who have signed in can use the ChatGPT blocks. That’s partly because we need to monitor any users who abuse this feature and take action.
Any user can easily sign up for free with a valid email address, or they can log in directly using Google login.
You can also create a class with new student accounts for free, and then assign them to your students: https://www.forum.creaticode.com/topic/547/teacher-only-how-to-manage-students-in-the-my-class-page
CreatiCode
-
RE: Why can't CreatiCode keep up?
CreatiCode preloads much more code and data than the original MIT Scratch to provide a richer set of capabilities, but that also consumes more memory and CPU power. That might lead to some slowness on some computers.
Paper Minecraft is a huge project, so it might indeed have some loading issue on some computers. We are constantly optimizing our platform, and hopefully it will cause less such issues over time.
-
CreatiCode XO (AI Assistant) - Explain To Me
Introduction
CreatiCode XO is a coding assistant running in the CreatiCode playground. It is an AI chatbot trained to help K-12 students learn Scratch programming. It can help students and teachers in many tasks, such as answering questions and writing code.
The key benefit of using XO is to get personalized and timely help. You no longer need to wait for your turn to ask your teacher your own question. Instead, you can ask XO to help you anytime and get a response right away.
In addition, learning to code with XO isn’t just about coding; it’s about developing essential skills for the future. You’ll learn how to ask precise questions and thoughtfully analyze the responses you get. As AI assistants become a part of everyday life and work in the future, these skills will be invaluable.
There are many ways to use XO, and in this tutorial, we will focus on how to ask XO to explain things to us.
Explain How to Use a Block
When you wonder how to use any block, you can ask XO like this:
Note that XO will not only explain what the block does but also give you a simple example. You can directly copy the example code into the playground to run it and observe the result.Note that you should make sure XO understands exactly which block you are referring to. For example, if we ask “how to use the touching block?”, then XO will not know whether you are referring to the “touching Sprite” block or “touching color” block.
Explain How to Do Something
When you are not sure what block to use, you can simply ask XO how to do something, such as how to implement a feature or how to make the sprite do something. For example, this is the response you get for “how to draw a star?”:
Note that your request should be as specific as possible, since XO may make mistakes if it has to write a lot of code at once. As a rule of thumb, your request should not require more than 10 blocks to implement.
Explain A Concept
XO is also really good at making coding ideas clear, especially when you ask questions starting with “what is xxx?” So, if you were to ask, “what is a clone?”, here’s how it would explain it:
Explain Code
There are times when you’re exploring someone else’s project and might not grasp everything about how it functions. This is a great opportunity to seek XO’s assistance. You can inquire about broader aspects, such as the interaction between sprites, or delve into more detailed queries about the purpose of a particular block or sequence of blocks. For instance, here is how to ask about user input handling in the “ChatGPT - Chat with Einstein” project:
Use a Different Language
XO always responds in the same language as you do. If you use Spanish/Chinese/French, it will also show code blocks in those languages. Here is an example in Spanish:
Add Your Personal Flavors
XO isn’t all serious when answering your questions. If you throw in a fun twist, XO often comes back with unexpected and enjoyable answers. For example, if you ask, “Explain what is a loop. I’m a pirate.”, here’s how it would respond:
The possible ways to twist your questions are endless. Here are some fun examples:- “Explain what is a variable as if I’m 5 years old.”
- “Explain what is an event listener. You are Harry Potter.”
- “Explain what is a conditional statement. Pretend we’re time travelers.”
- “Explain how to use clones. Assume I’m a chef.”
- “Explain what are messages used for. You’re a detective solving a case.”
- “Tell me about sprites. We’re astronauts on the International Space Station.”
- “What is a list in Scratch? Imagine we’re deep-sea explorers.”
- “Explain what is a costume. You’re a superhero with transformation powers.”
- “Explain what is a sound effect. Pretend we’re in a zombie apocalypse.”
- “Explain what sensing means. Assume I’m a medieval knight.”
- “Explain what is an operator. You’re an alien explaining earth technology.”
- “Explain what is a touch event. Imagine we’re inside a video game.”
- “Explain what is a backdrop. You’re a wizard with a spellbook.”
- “Explain what is a pen tool. We’re on a spy mission.”
- “Explain what is direction. Pretend I’m a dragon hoarding knowledge.”
- “Explain what is a boolean. You’re a famous inventor from history.”
- “Explain what is a custom block. Imagine we’re running a circus.”
- “Explain what is an animation. You’re a comedian on stage.”
- “Explain why we have repeat blocks. You’re an ancient philosopher.”