Wednesday, July 23, 2008

Get your lineSegment! Make drawings using S4SL!

You may have noticed at the end of the S4SL video, I show the bug creating a colorful stairway (shown on the right). Or maybe you've tried to use the "pen" blocks and can't get them to work. The secret is having a special object called lineSegment (more info on acquiring one is at the end of this post)

Basically, the pen blocks allow you to make your object leave a trail behind it as it moves. In this way you can make 3D drawings and sculptures using S4SL. Just drag the lineSegment object into the inventory of your object. Now if you put the "pen down" block in your script, any time after that when you use a "move" block, it will leave a trail.

Here's a simple example you can try out- when you say "square," it draws a square in a random color. Type "clear" to clean up the lines (the "clear" block does not work in alpha v0.1 due to a bug- instead you need to use "broadcast clear").

For the code for the stairs example shown above, you can look in the "pet bug" project that comes with S4SL.

Getting a lineSegment

It appears that our in-world locations for picking up a line segment are now gone, so I'm going to provide instructions for advanced users to create their own versions of it, and hopefully provide them to others. Basically, it is a small cube-shaped prim with some LSL in it. To make one:
  1. create a cube shaped prim, 0.1m on all sides
  2. color it white
  3. grab the LSL code for it from here
  4. create a new script and paste in that code
  5. test it using the methods described above
  6. set permissions so other users can take a copy
  7. leave it somewhere, and provide a SLURL here
Good luck! Also, since you read this far, here is a sneaky little tip. The special code in lineSegment enables the line segments that are left behind to be resized to the correct length and colored according to the code in the parent object programmed wih S4SL... if you don't care about the resizing and coloring, you can just put any object into the inventory of your S4SL-programmed creation, name it lineSegment, and it will get rezzed as it moves (just use the pen down block first). Just be careful not to clutter everything up with rezzing... Enjoy!

Monday, July 21, 2008

Ideas for the next version

I'm thinking about what the next version of S4SL will look like and I'd love your input as I try to prioritize things to add. I've gotten some feature requests, and I have a few ideas of my own.

Here are some blocks I am thinking about adding:

* set texture [menu of a few fixed textures]
* set texture [name of any texture]
* distance to object [name of object]
* point toward object [name of object]
* rez [name of object] and move it [number] meters

Some other areas that I may think more about:

* particle effects
* loading URLs
* more sensing

Also, I'd like (eventually) to automate the code generation process more so that you only get the helper function code that you need, not the whole bag of tricks. At first I thought this didn't matter, since it's just a few hundred lines of bloat. But now I realize people will actually want to use the generated code to learn from, so if it makes more sense to look at it, they will have an easier time.

What do you think? Any comments on these? Other ideas?

Friday, July 18, 2008

S4SL video tutorials

I would love to have some nice video tutorials to introduce people to S4SL, to complement my existing video (which is more of an overview) and web page tutorial.

I just found an S4SL tutorial in Spanish. Wow! I don't speak spanish, but as far as I can tell it looks great. It's here.

Please comment here if you find more video tutorials, or create your own.


This is the official blog for Scratch for Second Life (S4SL). I'll post here to announce any interesting developments, and software updates. Please leave comments- I'd love to hear about people's experiences. Include your feature requests, bug reports, and links to images or video of cool things you create with S4SL. If you can share your S4SL files that would be great too!