Cascade » Blog

Stas Lisetsky
2 years, 2 months ago
The initial idea for Cascade was to make a lighweight css engine to make UIs for web.

After struggling with this idea for quite some time (and even achieving an almost-working prototype), we decided that this has been a bad idea all along. It's unnecessarily complicated. Too many standards, too many things to support. The project was intended to be lightweight, but was quickly growing into a full-on browser. At this point a more logical step would be to either go web-all-the-way, or drop the idea.

We did not want to give in to the world of web. Frankly, the ... Read More →

Stas Lisetsky
3 years, 2 months ago
Hello! This is more of a "I'm not dead post". Just a couple updates.

The engine re-write is in progress. I'm sill working just on the flex-box spec implementation. This is the first time ever that i've actually hit a capacity limit of my mind. I just cant keep all the spec in the brain-RAM or whatever it is. The spec itself is not that difficult. It's short. The implementation is less than 1000 loc. But omg, the nomenculature is making things hard. It's actually turned out to be a serious problem for me. Everything has to be triple-checked all ... Read More →

Stas Lisetsky
3 years, 4 months ago
Hi y'all. Been working on the CSS engine and a debug system for it.

Here's a little video of that + some live UI editing.

This system is not unlike Chrome Dev Tools, but I also added zoom and UI resize to check for pixel-level errors and responsive behaviours. You can browse the html tree (not DOM!) to see how the selected element is drawn, which is very useful for debugging (helps to see how child-elements affect the parent's size, how wrapping works etc.)

I can also select the tree node and trigger a break on it inside the enigne. ... Read More →

Stas Lisetsky
3 years, 6 months ago
Ok, just a quick update.

I've been working on 2 things. First, I started to nail down the html/css parsing and the engine. This will allow us to do the next demo (we're going to show working bootstrap.css + stuff like drag-dropping html code onto the canvas to create objects etc.),

And also - I want to finally make a thing that is going to allow our designer to modify/tweak the interface. And we'll use html to do that. He's used html/css for years and we're doing parsing for that anyway, so naturally the html UI specification it going to ... Read More →

Stas Lisetsky
3 years, 8 months ago
Ok this is demo 2, where I try to create a web page or something like that.
So now you can actually create something and Cascade is starting to feel like an actual editor.

We planned for this demo to be a bit more polished, but at some point it's become a waste of time, and we decided to leave it at that and move on to working on next milestones.

So here you go: a short video, demonstrating some layer work, colors, gradients, css classes and many more little things.
(There were some file open issues - for some ... Read More →

Stas Lisetsky
3 years, 9 months ago
I just spent a week debugging (and understanding) color in Cascade. Premultiplied alpha, sRGB, gamma-correction - all that stuff. Citizen scientific calculator, lots of paper and my favorite Papermate Sharpwiter pencils.

Today we had a discussion with our designer about color correctness. Since our tool is for web - we have to be compatible with modern browsers, meaning I have to use non-gamma-corrected gradients.

I'm generally pro- incorrect stuff, if it looks correct. Take this example (familiar to many).

The individual colors on the second gradient may be mathematically right (hopefully! omg), but the overall gradient looks a bit uneven. ... Read More →

Stas Lisetsky
3 years, 10 months ago

Just a quick update. Working on the css engine. Actually it is rather an interpretation of the css spec, than implementation.
I wrote the first version of it long ago. And now when I have UI working, most interaction logic is there, the tree manipulations work etc. - it takes very littele to make huge things work. It's like magic. 'Oh, I want this and that feature', and boom - it works.

This is what I'm working on now. This is a next mini-project that is used to test the features we want + will be used to show ... Read More →

Stas Lisetsky
4 years ago
Ok. First of all, there is more than one way to pronounce Janus, and I want you to specifically choose the latin version [ˈjaː.nus] when reading this post. This is how it's intented.
Just fyi.

When dealing with 2 different concepts, that are essentially just 2 ways of looking at the same thing - the image of the two-faced god Janus pops into my mind.
At my old job I wrote a thing that was visually comparing 2 sets of georgaphical data, and of course I called it Janus. It's just so nice to have an actual name, instead of ... Read More →

Stas Lisetsky
4 years ago
The heart of Cascade it it's layout engine - the second most complicated thing in the app. (Scale tool has first place so far.)
I'd never written a UI engine before, but I decided not to read anything on the topic and just go in blind, relying on intuition only. The plan was to get the 'feel' for how things work and only then start the reaserch.
And after more than one year I'm still not there. We've build a quick prototype in about 3 months, and after that there hasn't really been much UI work. Just tools, workflow and ... Read More →

Stas Lisetsky
4 years, 1 month ago
Hey hey everyone! I'm not dead. Unfortunatelly had to take some contract jobs to support the development of this thing so progress has been very slow. But now I'm starting to feel like I'm back.

We (me and our designer, Vova) had some first public showing of Cascade. We visited a local Google-sponsored trade show just to see what's going on with the dev community here. It was really fun to explain that "no, this is not a cloud/js/subsription-model-payment project".

Anyways. You all (and me too) are waiting for updates on actual development.
Most recent thing I dis was the ... Read More →