Acknowledged. This will be fixed soon. Thanks
Best posts made by info-creaticode
-
RE: Some avatars aren't shown to select until searched for
-
How to record and share screen recordings as gifs
Introduction
When you need to explain how a project should work, the best way is to make a screen recording of the stage. This short article will explain which tools you can use to record the screen, and also how to share the gif file to get a URL for it.
Screen Recording on Windows
If you are using a Windows computer, we recommend a free tool named “ScreenToGif”, which you can download here: https://www.screentogif.com/
Here is a short video explaining how to use it: https://www.yo utube.com/watch?v=ELfCBzN1Mtc
Screen Recording on Macbook
If you are using a Macbook, you can use a free tool called “Giphy Capture”: https://giphy.com/apps/giphycapture
Here is a short video showing how to use it: https://www.yo utube.com/watch?v=m-4cJMBGfS4
Share your gif file
Once your gif file is ready, you can share it this way:
-
Go to the “My Stuff” page at https://play.creaticode.com/mystuff, and make sure you are logged in.
-
Select “My Files” tab on the bottom left
-
Click the “+Share a New File” button on the top right
-
In the pop up window, click “Click to upload file”, and then select the gif file from your computer.
-
Click the green button that says “upload and share with the CC Attribution license” at the bottom.
After that, you will see the new file in the list of files, and then you can click “Copy file URL” button for that file, which will copy the URL to the clipboard, which would look like this: https://ccdn.creaticode.com/user-files/BfemEPCxatY6MMAPs/castfireball.gif
-
-
Wishlist for New Models
If you are looking for a particular 3D model that is not in our library, please reply to this topic. If you can include an example picture of it, it would be more clear what you are looking for. We will try to fulfill these requests as best as we can. Please make sure you do not submit duplicate requests by searching for it first.
Thanks
CreatiCode Support -
RE: Current error with accessing the website
Hi all,
Sorry there was an outage on our platform earlier this morning. Sorry about the inconvenience. Now we are back online.
CreatiCode
-
RE: Code block presets?
You are right. We should allow users to submit new extensions.
However, the code snippet library should be more like backpack than extension, since it will allow users to modify the code blocks after a snippet is imported. If it is an extension, then users won’t see its implementation and also won’t be able to customize it.
-
Shape-Based Particle Emitters
Introduction
You learned about Single-Point Particle Emitter, which generates particles from a single point in the 3D space.
In this article, we will discuss “shape-based” emitters, which generate particles from within a 3D shape like a box. They allow us to produce very different visual effects.
Box Emitters
The box emitter is simply a transparent 3D box, and it can generate new particles from any random point inside this box. We can not see this box since it is transparent, but we can indirectly see its shape by where the particles are generated.
To use the box emitter, we need 2 steps:
- Select the “Box” shape when creating the emitter
- Configure the size of the box by its minimum and maximum X/Y/Z positions
Here is a simple example:
This program creates a box emitter that is 400 units in each dimension. For example, in the X dimension, the minimum is -200 and the maximum is 200, so the x position of new particles can be any random value between -200 and 200. When you run this program, you can see the particles are all confined within this box-shaped region:
Sphere Emitters
The shape of the emitter can also be a sphere. When we configure the sphere shape, we can set its size using the “radius” parameter.
There is also a “range” parameter (between 0 and 1), which controls the range of possible values along the radius. You can think of “range” as “thickness”:
- When “range” is 0, the particles will only be generated on the surface of the sphere, and not inside it.
- When “range” is 1, the particles can be generated at any random point on the surface or inside the sphere.
- When “range” is between 0 and 1, the particles will not be generated near the center of the sphere, but can be generated on the surface or near the surface.
Here is an example program with a range of 0:
As shown, particles are only appearing on the surface of the sphere:
Hemisphere Emitters
Hemisphere emitters generate particles from a half-sphere shape. You can specify its radius and range the same way as the sphere emitters.
One thing special about hemisphere emitters is that we can rotate the half sphere to different directions. As shown below, when we rotate it around X-axis for 90 degrees, the new particles are all generated at the bottom half of the sphere:
Cylinder Emitters
The emitter can also take a cylinder shape. We can control the radius of the circle, and also the height of the cylinder.
The “range” parameter also works for cylinders. You can think of it as controling the “thickness” of the cylinder’s skin. For example, when radius 0.5, the thickness of the cylinder skin is half of the radius:
The cylinder shape also supports an additional parameter of “direction randomness”. This only matters when we set the particles to not face the camera all the time, and we will see the particles facing different random directions when we set “direction randomness” to 100:
Lastly, we can rotate the cylinder emitter as well. For example, we can make it “lie down”:
Cone Emitters
For the cone-shaped emitter, we can console these parameters:
- Radius: The radius of the bottom circle of the cone
- Angle: The opening angle of the cone. Note that the angle and the radius would imply the height of the cone, so we won’t need another “height” parameter.
- Radius Range: This range value applies along the radius direction. When it is 0, the particles will only be generated on the surface of the cone. When it is 1, the particles may come out from anywhere inside the cone or on its surface.
- Height Range: This range value applies along the height of the cone. When it is 0, the particles will only emerge from the bottom of the cone, and when it is 1, the entire height can generate particles.
We can rotate cone emitters as well.
-
RE: Multiplayer 3D games
We are working on fixing the cloud blocks. Should be within next few days. Sorry about that.
-
Number of Seconds since 2000
Introduction
In MIT Scratch, you can already manage dates using the “days since 2000” block. However, if you need a more granular control of date and time, you can use this new block:
This block will return the number of seconds that have passed between the given timestamp and the beginning of 2000.01.01.
Input Format
The input is a timestamp, which contains the date, a “T”, and then the time. The date is represented as year:month:day. The time is represented as hour:minute:second. Each field has to be 2 digits, except that the year has to be 4 digits.
The timestamp is assumed to be the local time of the computer that’s running this program. If you want to use the UTC time, which is the same across the world, then append a “Z” at the end of the timestamp, such as “2024.01.01T10:00:00Z”.
If the input is left empty, then the current time is used:
Calculating Time Difference
With this new block, you can easily calculate how many seconds are between 2 timestamps. You just need to run this new block for both timestamps, then calculate the difference between them:
Converting to Date
You can also convert the number of seconds back to a Date object. For example, the program below first gets the number of seconds for a specific timestamp, then create a date object using that result, and we get the same timestamp as our input:
-
RE: Issue.
@luna
Well, we are a small team, and we have many more urgent tasks on the list.
-
3D - A Spinning Earth (Difficulty: 1)
Key Topics Covered
Introduction
In this tutorial, you will learn to create a spinning Earth:
Step 1 - Initialize An Empty Scene
First, create a new project, and load an empty scene using the “initialize 3D scene” block.
By default, it will create an empty scene with nothing but a blue background:
Step 2 - Set the Background Starfield
Next, use the “set sky” block to create a better-looking backdrop:
You should get a starfield with the Sun on the right.
Step 3 - Add a Big Sphere
Next, add a sphere with a large diameter of 10000 to the scene. Don’t worry about its color yet.
The sphere would look brighter on the side that faces the Sun.
Step 4 - Add Earth Texture
Now we need to update the sphere’s texture with the Earth. Add the “update texture” block, click the “Please select” input box, then search for “Earth” in the library window.
Step 5 - Flip the Earth Texture
You might have noticed an issue with the texture: the continents are upside-down. We need to flip the texture vertically to correct this issue. This can be done by changing the vertical repeat count from 1 to -1.
Step 6 - Make the Earth Spin
To make the Earth object spin, we can use the “set speed” block. Note that the Earth needs to be spinning from “left” to "right, so the “Z-rotation” speed needs to be negative.
Now your Earth object should be spinning slowly.
Step 7 - Highlight Around the Earth
Lastly, to make the Earth object glow in blue lights, we can create a new highlight layer, then add the sphere to that layer.
Now your Earth object should carry a blue light around it.
Next Steps
You can try to use a similar method to build other projects. Here are some example ideas:
- A Different Planet: You can change Earth to other planets like Mars;
- A Spinning Trophy: You can try to make a trophy object spin and shine.
-
RE: Suggestions for both the forums and CreatiCode!
@mathew139616-10db496a
Thanks for the suggestions.
For unpublished projects, the authors do not want it to be seen, so we can not let anyone see it, even the original author.
We can look into adding the notifications.
For forum, most of the questions are fairly specific to CreatiCode so ChatGPT can’t answer them well. Don’t worry, we have enough staff to answer questions, and there are also a few active users who often help out.
-
AI - The T.I.R.E. Prompting Method (Difficulty: 3)
Introduction
Prompting AI models like ChatGPT can be frustrating and intimidating sometimes. You may not get what you expect and don’t know what to do.
In this tutorial, we will introduce a straightforward method for prompting: the TIRE method. Hopefully, it will give you a “tire” for your journey of learning to write effective prompts.
The TIRE Prompting Method
Here is an overview of the TIRE method. We will walk through an example task later.
“TIRE” stands for these 4 words: Task, Instruction, Refinement, and Example.
1. Task
The task refers to what we are asking the AI model to do. It should at least contain a verb and maybe also the expected result. For example:- write a short story about a dog
- explain this question for me
- can you give me some feedback on this essay
- calculate this equation
- help me answer this question
- I’m preparing for dinner. recommend a few recipes.
It is often confusing to the AI model if you do not specify the task. For example, if you say “my teacher gave me a B on this essay”, then the AI has to guess what’s its task, which can be “explain where it needs to be improved”, “tell me how to argue with my teacher” or “can you give me your rating on my essay”.
2. Instruction
The second key component of the prompt is your instruction, which tells the AI model how to carry out the task. You can also think of this part as your specific requirements.
Why we need instructions? For a given task, there can be millions of ways for the AI to respond to it. By giving more specific instructions, we are selecting the most desirable results.
Below are some common ways to give formatting instructions:
-
Length: You can tell the AI to give a detailed or concise answer, or even specify the number of words. It will be hard for the AI to use the exact number of words, but it will be pretty close. Therefore, limiting word count is one of the most effective ways to control AI’s response length.
-
Tone: You can ask the AI to use a formal or informal tone, a casual or serious tone, a plain or technical tone, etc.
-
Output Format: Depending on the task, you can ask AI to respond in various formats, like “return the data as a table”, “give me a CSV file”, “use markdown format”, “give me bullet points”, “format your answer in 4 paragraphs”, etc.
-
AI’s Role: You can often tell AI its role, which will greatly influence how it answers, such as “Asnwer as if you are a 5th grade teacher”, “Pretend you are a corporate lawyer”, “You are a professor”, etc.
-
Your Role: You can also tell AI who you are, which is equally effective. Note that it does not have to be really who you are, but think of it as a technique to get different results from the AI. For example, you can say “I am 5-year old”, “I am retired”, “I am an expert in this topic”, etc.
Besides formatting, you can give many other types of instructions, which are highly dependent on the specific task. You can think of them as “Do-It-This-Way” or “Don’t-Do-It-That-Way” rules. Below are some examples:- write a story about a dog. The dog must be 2 years old, has no home, enjoys eating fish and playing with rocks. I don’t like sad stories.
- summarize this article. focus on the key problem the author is addressing, and skip the discussion on the solution.
- help me solve this math problem. don’t just tell me the answer. I want to walk through it myself. Just give me some hints on the first step.
3. Refinement
After you have the task and instruction, you can start trying to use it and review the response you get. If the response is perfect, then you can stop here.
However, most of the time, you may find some issues in the response. When that happens, many people will simply think, “This AI is not smart enough,” or “This is the best I can get, so I will accept it.”
Such thoughts will leave a lot on the table. Instead, this is the time to refine your task description or instruction and keep trying until you get a high-quality answer. You should have confidence that the AI model is like a gold mine, and if you keep digging, you will discover real gold (the perfect prompt).
4. Example
Most of the time, you only need the task and the instruction, and keep refining it. However, there are times when you don’t know how to describe your requirements in words.
When this happens, you can try to provide some examples in your prompt, since AI models are very good at mimicking examples.
For example, suppose you are asking the AI to write a multiple-choice question, but you don’t know how to describe the format of the response you need. This would be a good time to provide an example for the format like this:
Give me a multiple-choice question for 6th-grade history. Use this format: QUESTION (The quiz question) CHOICES A) ... B) ... C) ... D) ... ANSWER C
This example will make sure the AI responds in the exact format you like, which is especially useful if you plan to parse the AI response in code.
A Detailed Example - Writing a “How-To” Guide
Now let’s walk through a detailed example to illustrate how to apply the TIRE method. Suppose our task is to create a simple tool: the user can specify a goal, such as “how to become great at coding” or “how to make more friends”, and we will use AI to generate a “how-to” guide.
Step 1 - Describe the Task
Based on our TIRE method, we will start with the task. Since we will allow the user to input any goal, we need to dynamically compose the task like this:
Write a how-to guide for the following goal: (insert user input here)
Step 2 - First Set of Instructions
Although it is tempting to just try with the task itself, we recommend that you form a habit of always giving some instructions along with the task description. In this case, suppose our target users are middle-school students, we might want to add a few instructions like this:
Write a how-to guide for the following goal: (insert user input here) Instructions: 1. You are talking to a middle-school student. 2. Be concise and humorous. Use no more than 200 words. 3. Reject any inappropriate topic
Notice that a header of “Instructions:” is added to tell the AI model where the instructions are clearly.
Step 3 - Try it out and evaluate the result
Now we have both the task and some initial instructions, let’s use a simple project to test it out:
play.creaticode.com/projects/679f826a69f04bc3c7cc081e
Open this project, and click “See Inside”, and you will find it only has 3 blocks:
To use it, we just need to add our prompt in the LLM block, and then click the green flag to run it. The response will be printed out in the console panel below. For example, suppose we use “how to become great at coding” as the user goal, then our prompt will look like this:
When you run it a few times, you might get a response like one of these:
Step 4 - First Refinement of the Instructions
The response above is pretty good, but we should not just stop here. Instead, we should try to identify any issues in the response, and then refine our prompt accordingly.
For example, one issue is that the AI model tends to number the bullet points from 1 to 5. This may be misleading since the bullet points are not done in a sequential order. Also, 5 points may be too many and hard to follow through in practice. To fix these issues, we can update the prompt by adding an additional instruction:
This time, you should get a response that reflects changes in our instructions pretty well:
Step 5 - Second Refinement of the Instructions
Now let’s review the response above, and see if we can improve it more. One idea is to list 3 “Do’s” and 3 “Don’ts”. This contrast often makes it easier for the user. We can refine the prompt into this:
Here is an example output:
Step 6 - Add an Example
Lastly, to precisely control the output format, we can give the AI an example format like this:
Write a how-to guide for the following goal: how to become great at coding Instructions: 1. You are talking to a middle-school student. 2. Be concise and humorous. Use no more than 200 words. 3. Reject any inappropriate topic 4. Give me 3 Do's and 3 Don'ts as bullet points use this format: 3 Do's: * Do this ... (in 10 words) * Do this ... (in 10 words) * Do this ... (in 10 words) 3 Don'ts * Don't do this ... (in 10 words) * Don't do this ... (in 10 words) * Don't do this ... (in 10 words)
Here is what you will likely get, which matches our example format pretty well:
Practice
You have now learned the basics of the TIRE prompting method. It is very easy to understand, but it will take a lot of practice to master, especially with the continued refinement of the instructions.
For more practice, here are some tasks. Please try to compose the best prompt using the TIRE method.
-
Ask AI to write an engaging introduction to the city/state/country you live in to attract foreign visitors.
-
Ask AI to write a short science fiction that is engaging to read.
-
Ask AI to explain a hard concept that you are learning
-
RE: How to make a simple platformer game :>
Thank you for contributing to the community.
I assume you got these pseudocode using the right-click menu’s “copy pseudocode” option, right?
FYI, you can also use the “Export PNG Image” option above it, so that you get high quality block images. Of course, you can also use screen capture. Usually a block image is easier to read compared to the pseudocode for beginners.
-
RE: Wishlist for New Models
Please check out this new avatar:
Its source is at https://sketchfab.com/3d-models/jotaro-kujo-idle-unity-03309a5dd9bc413fa0105597a7755ae9
The original author is https://sketchfab.com/Maxime66410
-
RE: Raycasting.
Basically it is drawing some arrows from the object to all directions, and when the arrow touches some other object, it triggers some actions.
More info here:
https://www.forum.creaticode.com/topic/41/checking-for-object-collisions-with-ray-cast
-
RE: Customizable blocks.
@106809nes
It would be interesting. We can certainly add this feature, but frankly it will be fairly low priority at this point, compared to other features on our list.
-
RE: "Important Forum Announcement" - Question
@011830-0a42ef84 said in "Important Forum Announcement" - Question:
@info-creaticode am I able to be a moderator/mod helper?
Currently 2 helpers are good enough. If they are overwhelmed we might need to add more. Thanks for the offer.
-
RE: Some avatars aren't shown to select until searched for
FYI this issue is fixed now.
-
RE: Does saving private data act as like a "secret" or "environment variable"?
It should not be used to store real secrets like passwords. The reason is that this block runs on the “client” side (the user’s browser), so when the data is sent over the Internet to the webserver, it is exposed in the network package.
However, for most games/projects you build for learning, it should be good enough.
The “private” mode is meant to store data specific for one user. Say 100 users are running your shared game. Suppose each of them can specify a secret passcode that can be used to save or load game progress. You can use this block and use the “private” mode, so the data is separated by user ID, and 2 users can’t see each other’s data.
-
RE: new block ideas
Thanks for the kind offer. It is not easy to open up our code base for external contribution at this point. If you are looking for something challenging to do, it would be very helpful to us and to our user community if you can create more interesting projects that demonstrate the potential of our rich set of blocks, especially the AI, 3D, widgets, 2D physics engine and cloud blocks.
-
RE: Hitboxes
That’s also a good option, if the hit box must have an empty square hole inside it.
Here is an example of how to do it using “compound shape”. You just need to draw the costume using 4 boxes:
https://play.creaticode.com/projects/670083d55689190abfe5461f
-
RE: Using an AI other than CreatiCode if you can't find what you are looking for
Hi everyone, this is an engaging topic, and it’s great to see a thoughtful and respectful debate from both sides.
From CreatiCode’s perspective, our main goal is to help K-12 students cultivate creativity and logical thinking through coding activities. One common challenge they face is finding or creating quality images that fit the story or game they’re building. Many students struggle with drawing, especially digitally, and often can’t afford professional images online. To address this, we provide AI image tools that allow them to generate or find high-quality backdrops and sprites for their projects.
Additionally, using these tools offers another key benefit: students can hone their AI prompting skills. Generating the perfect image for a project requires giving clear, detailed descriptions and refining prompts based on the results. These skills will be increasingly valuable in a future shaped by AI technology.
There are ongoing philosophical debates about whether AI-generated images infringe on artists’ copyrights or stifle creativity. While we don’t take a definitive stance on this matter, we ensure that all images produced with CreatiCode’s AI tools are fully licensed. Users retain complete copyright over these images, allowing them to use them in their CreatiCode projects without concern.
-
RE: What is the email that CreatiCode uses for Google Sheets?
Great question. The email we use is “user-606@creaticode.iam.gserviceaccount.com”
-
RE: new block ideas
@luna
The widget blocks work in both 2D and 3D projects. There are good and bad videos on Youtube. If anyone uses bad content from Youtube, we will delete the project and ban the author.
-
RE: Broken append block
We can see the issue. Will post a fix soon. Thanks for the feedback.
-
RE: new block ideas
With regard to the “play sound from URL” block, you can actually use the youtube block instead. You just need to set its width and height to 0.
You can find almost every possible sound or background music you want on Youtube. For example, there are at least 50 videos for horse noise.
-
RE: even when logged in, front page says login
Regarding your feedback below:
The forum and website feel a bit seperate, and the forum has features the site doesn’t, like dark mode themes.
At the top of the navigation bar in the forums, maybe there could also be a link to go back to CreatiCode instead of having to press back in my browser button a million times to get back to CreatiCode.com.
I also think the whole thing where you have to make a forum account using a CC account and all is a bit confusing and unnecessarily complicated. Like you have two different usernames (possibly) and profiles and bios, even though it’s the same site but different subdomain (forum.).
If you’re logged in on CreatiCode, then why can’t that same login session/token/whatever just apply to the forum? I get that the subdomain thing might be an issue but if so then the forums could just be moved to https://app.creaticode.com/forums or wherever within the main domain right?We are aware of this disconnection. It’s mostly because the forum is a third party project that we do not have time to make too much changes yet. We will optimize it over time.
-
RE: How to remove old version of a game without deleting every version at once?
Got it. We will provide a way to delete any specific version. Thanks.
-
RE: 3d avatar style I like
That’s called the “Chibi” style. We will sure add more such avatars when I can source them with proper license.
-
RE: Feature request: a block to make a string backwards and other text stuff
Thanks for the proposals. We can definitely add these blocks, but we would like to see more upvotes before committing to them.
-
RE: Feature request: a block to make a string backwards and other text stuff
Can you explain what kind of project would make use of the “cowsay” block?
-
RE: Feature request: a block to make a string backwards and other text stuff
You know, we should only add blocks that’ll be widely used in many projects, so it doesn’t seem cowsay is a good candidate for that?
-
RE: Feature request: a block to make a string backwards and other text stuff
Agreed. We can put that on our list.
-
RE: Code block presets?
Yes, it is similar to a backpack that’s shared with everyone, and you will also be able to search for the snippet you need.
-
RE: Code block presets?
We do have some forum moderators (volunteers), who are doing a great job spotting issues in new posts. Of course, if you see any issues, please feel free to report them as well.
-
RE: Code block presets?
@jeffreyrb03-gmail said in Code block presets?:
For both of these, they would need to be moderator reviewed, like in a posting queue system.
We will probably allow the users to submit a new snippet after automatically running it through a moderation AI checker. Then, later, anyone can review them and report issues.
-
RE: Code block presets?
@jeffreyrb03-gmail said in Code block presets?:
For libraries added to a project, their information could be accessed using this perhaps?
Can you please explain this part more? An extension is usually just a list of new blocks. It is not clear why you would need this sensing block to access it.
-
RE: Code block presets?
Yes those things can happen, but they can also occur with new comments or projects, and we can’t really review all of them manually. So we will just have to assume most users are well-intended and delete any user that tries to do harmful things immediately when we find out.
-
RE: Issue with add costume from url block
You are right. Currently it adds the costume to the selected sprite. We will change it to add the costume to the sprite where this block is being used. Thank you.
-
RE: Feature request: better thumbnail control
Thank you. We will put that on our list.
-
RE: Creaticode AI bug - copying blocks
@jeffreyrb03-gmail @011830-0a42ef84 @SirBots
FYI a new block has been added for changing the cursor type:
-
RE: ProDetect Module V1
Our solution is the new moderation block that’ll be released soon. Using the ChatGPT block for it may lead to other issues. Sorry.
-
Nested Loops
Prerequisite
What are Loops?
A “loop” is a block for playing other blocks repeatedly. Below are some loop blocks you can use on the CreatiCode playground;
What are Nested Loops?
When you put one loop inside another loop, it becomes a “nested loop”. You can even have a third loop inside the inner loop.
How Nested Loops Work?
When you run a program with a nested loop, the inner (child) loop will work like a normal loop. However, because of the outer (parent) loop, the inner loop itself will be repeated.
Here is a step-by-step example:
Step 1: The main loop is played.
Step 2: The Nested loop is started.
Step 3: The blocks inside the nested loop are played until the condition of the nested loop is completed.
Step 4: The blocks after the nested loop are played (if there are any).
Step 5: The main loop is restarted.
Note: All of the above 5 steps keep repeating until the condition of the main loop is completed.
For example, as shown below, “repeat until ” is the nested loop, which keeps the monkey moving until it touches the edge of the stage. And “repeat (5)” is the main loop which repeats the nested loop 5 times.
Use of Nested Loops
We use Nested loops when we want to repeat multiple blocks at the same time, until multiple conditions are completed.
For example, as shown below, nested loops are used to make the monkey move and eat bananas at the same time.
-
Video Planes for Showing a Video Clip
Introduction
You can add a plane in the 3D world that can automatically play a video clip with this block:
Parameters:-
URL of a video file in mp4 format. Note that YouTube video links do not work.
-
width and height of this plane
-
an optional name for this plane
Example
You can follow these steps to add the video plane:-
Find or create a mp4 video file (make sure it’s appropriate).
-
Share the file online. One easy way is to use the “My Files” tab in the “My Stuff” page: https://play.creaticode.com/mystuff/files
That page allows you to upload a file and copy its public URL.
- Use the video’s public URL in the video plane block. Note that you can move or rotate this plane the same way as any other 3D object.
It will look like this:
-