Welcome to the Scratch Wiki! We hope you will contribute much and well. You probably want to read the help pages before doing anything. If you have any questions, you can ask anyone on the Scratch Wiki. We will appreciate it if you make a lot of edits to the wiki, but make sure the edits are good quality edits. Again, welcome and have fun! :)
jvvg (talk | contribs) 15:28, 22 May 2016 (UTC)

Help Wanted

Please help me edit these pages:
Chibi-Matoran (talk | contribs) 20:11, 22 May 2016 (UTC)

Please don't make several edits in a short amount of time

It appears you have made a large amount of edits (6 in the last hour) in quick succession to the page Programming Language recently. Please use the "Show preview" button before submitting edits to prevent this in the future.
This message was sent by an automated bot run by jvvg. You can contact him on his talk page with any concerns.

WikiMonitor (talk | contribs) 21:31, 22 May 2016 (UTC)

Signature Test

Chibi-Matoran (talk | contribs) 23:55, 22 May 2016 (UTC)

Test 2--Test Signature 23:56, 22 May 2016 (UTC)

Do you hate me?

PrincessPandaLover Still Icon.png ♥PrincessPandaLover Talk | Contributions | Scratch Account 23:51, 1 June 2016 (UTC)

If there is a personal dispute going on, please don't let it affect your Wiki editing. We all need to act professional, and that sometimes means leaving our personal issues aside and working together.
jvvg (talk | contribs) 02:15, 2 June 2016 (UTC)

Please don't make several edits in a short amount of time

It appears you have made a large amount of edits (6 in the last hour) in quick succession to the page User:Jvvg/AF/Kaj recently. Please use the "Show preview" button before submitting edits to prevent this in the future.
This message was sent by an automated bot run by jvvg. You can contact him on his talk page with any concerns.

WikiMonitor (talk | contribs) 02:26, 16 June 2016 (UTC)
Chibi-Matoran (talk | contribs) 02:29, 16 June 2016 (UTC)

AF Kaj article

Hello! I dont belive that you should have removed the old link, ans as I think you are simply trying to get rid of the sonic content, I reverted it as the BRD rule says. Correct me if Im wrong, but the way I understand it, some can be kept as long as new ones can be added.
Helloandgoodbye9 (talk | contribs) 18:01, 2 July 2016 (UTC)

I replied to you on my Scratch profile and on the article's talk page.
Chibi-Matoran (talk | contribs) 22:26, 2 July 2016 (UTC)

Lambda Tutorial

I'm keeping track of your Lambda Tutorial page, and I have to say, I love it! It's very well written and I can't wait to see the finished product. :)
St19 Galla Logo.png St19_Galla   Talk • Contribs  14:06, 13 July 2016 (UTC)

KrIsMa Anamation2.gif KrIsMa user | talk | contribs | edits 01:26, 15 July 2016 (UTC)
Thank you, St19 galla and KrIsMa! I finished my tutorial just before I received KrIsMa's comment.
Chibi-Matoran (talk | contribs) 01:34, 15 July 2016 (UTC)
Excellent tutorial - love it!
Jokebookservice1 (talk | contribs) 21:07, 15 July 2016 (UTC)

Pages in Your Userspace

How do you make pages in your userspace?
Ziggy741 (talk | contribs) 02:25, 14 August 2016 (UTC)

Navigate to wiki.scratch.mit.edu/wiki/User:Ziggy741/<Insert Path Here> (without the angle brackets), and edit the page.
Chibi-Matoran (talk | contribs) 16:30, 14 August 2016 (UTC)
Ziggy741 (talk | contribs) 21:03, 14 August 2016 (UTC)

3D Tutorial Page

I noticed that you put a Template:In Progress on How to Make a Three-Dimensional Project. Do you mind if I help out on the page?
ErnieParke (talk | contribs) 13:49, 15 October 2016 (UTC)

Definitely! Your 3D engine project is great.
Should information about the data representation of models be added?
Chibi-Matoran (talk | contribs) 19:58, 15 October 2016 (UTC)
If we're going to include the data representation of objects, we would need to settle on a format.
Were you thinking of using Blender's model storage format? If you don't know it, see Blender.
Depending on what you're doing with the model, different data storage formats would work best. My engine does it similarly, but also includes the object center, object rotation matrix, colors, size, and culling.
But anyways, for now, I was thinking about adding line rendering, as well as polishing the point rendering portion of the tutorial.
ErnieParke (talk | contribs) 02:57, 16 October 2016 (UTC)
I'm not familiar with Blender' file format, and when I searched for it, I found it to be too complicated for a Scratch tutorial. (It appears to be a bunch of bits next to each other!) I was thinking of a Scratch-list representation. A model would consist of an array of points and an array of faces, and each face would consist of an array of point indices. However, I'm worried that the above representation would still be too complicated to explain. I don't want the reader's eyes to glaze over.
Update: The format on the page you linked to seems to be different than the one I searched up. Yeah, I think that format is simple. However, then we would need to teach people how to parse it. I think we should leave out a text format for now.
Update 2: Wait, in the file example in the article, why do the faces only have two numbers???
Chibi-Matoran (talk | contribs) 20:14, 17 October 2016 (UTC)
I didn't literally mean the Blender file format. What I meant by it is a Scratch list that has points, then vertices, then faces. Only 3D data.
Picking a good format is the main battle, you can already see that. Maybe we shouldn't pick one model over the other, but instead go abstract and give a general outline on how to implement objects. That sounds sufficient.
Also, I just checked the Blender article, and I'm confused too. That's something that will need looking into if anything.
ErnieParke (talk | contribs) 04:14, 18 October 2016 (UTC)
I began to add more to the article, but I'm not sure how to represent the data structures in the scripts. In my unshared 3D project, I used this OOP implementation. However, I'm worried that users might get lost. Should we use pseudocode with OOP dot notation?
define render model (model)
set [i v] to [0]
repeat (item (item (model) of [Model.faces v]) of [Array.size v])

function renderModel(model) {

for (var i = 0; i < model.faces.size; ++i)


Chibi-Matoran (talk | contribs) 20:50, 18 October 2016 (UTC)
I was thinking it would be better if instead of dot notation we used something like "Model faces" instead of "Model.faces". It has less technical formatting.
ErnieParke (talk | contribs) 22:30, 19 October 2016 (UTC)

──────────────────────────────────────────────────────────────────────────────────────────────────── I'm sorry to say that I am unable to follow your camera rotation code. From my understanding, you need to rotate around each axis in the opposite direction (using the trig angle subtraction formula instead of the addition formula and vice versa). I don't understand what you are doing with your rotations list. You are probably better at 3D than me, so please pardon my failure to grasp your intention.
Chibi-Matoran (talk | contribs) 20:48, 22 October 2016 (UTC)

It sounds like you're new to 3D rotation matrices in general. We can deal with that.
You said that you need to rotate around each axis in the opposite direction. That is what the 3D rotation matrix does. For each combination of three rotations, there is a corresponding rotation matrix which when you multiply a point by it, you rotate it by these three rotations.
Ex: Let's say I want to rotate any point by 90º roll, 90º pitch, and 0º yaw. I can generate a rotation matrix M for these rotations.
Now let's say there is a 3D star at (0, 0, 1) = P. I can rotate the star 90º, 90º, 0º by doing: P x M
You can read about this at the Wikipedia article. I recommend skipping to the sections "In two dimensions" and "In three dimensions"
The "Camera Rotation" section is simply one way to compute the 3D rotation matrix.
I will post more info later.
ErnieParke (talk | contribs) 20:08, 26 October 2016 (UTC)
Ohh, now I get what you were doing!
[a d g
 b e h  * (x y z) = (a * x + b * y + c * z, d * x + e * y + f * z, g * x + h * y + i * z)
 c f i]
The element a in the matrix corresponds with element 1 of the list, the element b of the matrix corresponds with element 2 of the list, and so on. I learned this multiplication before when reading about 3D, but I didn't immediately recognize it.
In the part of the article that I wrote, I did not express the rotation in matrices. The article should use a consistent coding style. Which version do you think is more understandable for readers?
Chibi-Matoran (talk | contribs) 20:37, 26 October 2016 (UTC)
Now that you bring it up, it would be better not not use matrices in the tutorial. The only thing they do is reduce computation costs. We could still keep it as a note. What do you think?
ErnieParke (talk | contribs) 21:13, 26 October 2016 (UTC)
Okay! How do matrices "reduce computational cost?" Languages such as GLSL have native matrix support, but in Scratch, with "matrix" lists, I don't see how they help. Matrices would only result in extra computations; for example, to translate (1, 4, -2), you only need to do (x + 1, y + 4, z - 2), but the equivalent matrix transformation would be
[1, 0, 0
 0, 4, -2 * (x, y, z)
 0, 0, -2]
, which involves useless calculations such as x * 0.
Chibi-Matoran (talk | contribs) 22:07, 26 October 2016 (UTC)
I was making the assumption that you would be rotating on three axis each frame. If you're only rotating on one or two... Then you're correct.
I've never really thought about the differences between the two. Really good point Chibi.
ErnieParke (talk | contribs) 01:21, 27 October 2016 (UTC)
Wait, aren't you rotating on three axis on each frame (roll, pitch and yaw)? What I was trying to say that the matrix calculations involve components that aren't part of the calculations that are multiplied by 0 and added as part of the dot product. Those excess calculations aren't really needed.
Chibi-Matoran (talk | contribs) 01:58, 27 October 2016 (UTC)

──────────────────────────────────────────────────────────────────────────────────────────────────── I sense a disconnect. I was referring to a single rotate matrix for all three rotations, and not a rotation matrix per pitch/yaw/roll rotation.
ErnieParke (talk | contribs) 02:58, 27 October 2016 (UTC)

Huh. All the 3D tutorials that I read use separate matrices for each rotation. Examples of such tutorials include MDN's "Matrix Math for the web" and OGLDev's "Tutorial 07 - Rotation Transformation."
Chibi-Matoran (talk | contribs) 21:17, 27 October 2016 (UTC)

Please categorize new pages

It appears that when making the page Linked List, you did not include any categories. Please remember to categorize all new pages and files. Check out Help:Categories for details. Thanks!
This message was sent by an automated bot run by jvvg. You can contact him on his talk page with any concerns.

WikiMonitor (talk | contribs) 01:58, 1 February 2017 (UTC)