Goal: Make the “Profile Cut Begin and End” spinners visible in the Edit window while editing a Box, Cylinder, or Prism. Currently it only shows up for Torus, Tube, and Ring (and under the name “Dimple” for Sphere), but the setting does have a useful effect on Box & friends. I also wanted it to only show up when I turn on the the “AdvancedMode” preference that I added.
-
10Mar
Tags: ossviewer
-
10Mar
Goal: Add a keyboard toggle for the “Edit Linked Parts” checkbox in the Edit window. I’ll also probably add a menu entry for it in the Tools menu as part of that process.
Tags: ossviewer
-
28Feb
Today I came across an article, Interfaces for Staying in the Flow by Benjamin B. Bederson. “Flow” is a term for a highly-desirable mental state characterized by concentration and an enhanced feeling of efficacy and control over the situation. Opposed to flow are feelings of distraction, frustration, or futility. Imagine a free-running river compared to one which is stopped up by a dam, and you’ll understand the metaphor.
Bederson notes that software user interfaces can be designed to encourage flow, or (through bad design) discourage it. I had Second Life’s interface in mind as I was reading, noting places where its interface was good or bad.
-
03Feb
What a super idea! I’ve got the YAYZERAMA HANDS too now!!
Features like this (and other cool things, too!) could be added to the viewer client, ‘specially now that it’s open source, but so many features require just a little bit of help from the server to do it properly.
For example, right now there’s no good way for the sim to remember “This prim has a saturation of 0.5 on all its sides” and tell that to everybody that comes by, so there isn’t any way to share the desaturated goodness with anyone else! (Maybe you could store some cryptic data in the prim’s name or description for other special viewers to notice, but that would be a dirty, dirty hack. Yuck!)
Sure, we could tug on the Linden programmers’ shirt tails every time there’s a new client-side feature we’d like the sim to store a little bit of data for. But, even if they were just twiddling their thumbs all day and waiting for something to do, there would never be enough time to add something for every feature that someone thinks up. (Plus they’d have to do a grid-wide update every 15 minutes.)
A better way would be to give each prim a little pocket where it can hold some arbitrary data to give to viewers that see it. There would be a hard limit on the size of the data (maybe 1k, or 5k), and it would be completely up to the viewer software to decide what to do with it. And of course, scripts would have to be able to read and write this data!
Ideally, objects and prims in SL should be sent as XML, kinda like this:
<primitive name="My Awesome Prim" description="The best prim ever made." shape="torus" texture_uuid="top: [uuid], bottom: [uuid]" contents="[first_item_uuid], [second_item_uuid]" size="8m 2m 2m" skew="80%" awesomeness="23.5" />Then the scripts could do something like this:
if( llGetAttribute( "shape" ) == "torus" ) { llSetAttribute( "awesomeness", "infinity" ); }Or if we had a decent scripting language, like ruby, it would be like this:
if self.shape == "torus" self.awesomeness = "infinity" end
And if you had a special viewer client that was programmed to understand the “awesomeness” attribute, the client could do something cool like write “This prim is so awesome!!” on your screen with a big squiggly arrow pointing to it.
That would be awesome.
P.S. If you’re worried that this would contribute to sim load because of the increased amount of data being sent, remember that textures are the #1 cause of
teen pregnancysim lag . Plus, the sim could enforce a data size for the prim declaration, by dropping out some nonstandard attributes if it gets too big.P.P.S. Yeah, I know this could be a big ol’ security hole. What isn’t? ‘specially if you’re using a custom viewer client provided by some homeless person down the street.
Tags: ossviewer
-
10Jan
Just brainstorming features (large and small) that would be both possible and desirable to add to the Second Life viewer client. Things which would require server changes don’t fit here, only things which can be accomplished by changing the client only. I’m also focusing only on new features for this post; I might make another post of bugs that should be fixed.
Tags: ossviewer
-
06Dec
There are specific things that I want to accomplish which drive me to poke my nose in SL’s XML User Interface (XUI) definitions.
-
04Dec
Today, I was writing up a huge post about custom keyboard shortcuts. I was covering all the bases: why keyboard shortcuts make everything happy and warm, the ways in which SL’s shortcuts are poo, and how Linden Lab could and should implement custom keyboard shortcuts. During my research into this last aspect, I realized something:
I can do it myself.
-
24Nov
The sun and moon in Second Life are unrealistic and just plain ugly.
That’s right, I said it. I went there. Ugly!
-
04Nov
There is still one more part of Color Curves yet to be written, but it requires significant research and development into methods of algorithmically generating intermediary control points between the two blended colors, taking into account neighboring control points. (For the transition between two curves to be visually smooth, it must be continuous, which means that the end point and the control points on either side must be collinear, i.e. they are all in a straight line.)
But that is a post for another day. Today’s post requires much less education in maths to understand. The topic: chat ranges!
-
29Oct

Attention: Maths ahead! Non-geeks may prefer to avoid the equations, and just look at the pretty colors instead.
Previously, on Jacek Writes: our hero introduced the topic of smoothly blending between two colors algorithmically.
Last time, I defined an equation for blending linearly between two color vectors
aandbas time,t, increases from 0 to 1:line(t, a, b) = a + t * (b - a)
After a little algebra, we can rewrite that function as:
line(t, a, b) = (1-t)(a) + bt
Linear blending looks just fine for blending between two colors, as demonstrated above. Starting from the left, we progress from red to blue, passing through magenta and purples. Looks pretty good, right?


Recent Comments