A simple Vision question that turned into a conversation on Pros of Vision & Perspective

I have a docked window and I need some icons not to stretch when the window streches, but I want them to stay in the same place relative to their stretching parent container

I have outlined the following to show the individual groups involved

I have the yellow container set to the following, so that it stretches to match the parent:

The blue container that groups the icon and the text is set to the following, so that it doesnt stretch horizontally unless it can also stretch vertically:

And the icon itself (A group with two paths) is set to the following, so that it stays centered in the blue box, but not to where it should stretch.

I feel like I have tried every kind of constraing possible, but no matter what I end up with the same result, unless I just dont let the orange layer stretch at all, which removes my ability to keep a group of these together in the same positions on the page (i.e. 33% across, 60% across, and 80% across)


If anyone has any advice it would be greatly appreciated, or if this is a bug with SVGs in Vision

I haven’t tested this, but try changing your relative setting to anchored top left and right. Make sure the label is relative.

I still don’t think this will work… I think Perspective has given you things that are out of reach for Vision.

Your view of Vision needs a new perspective :grin:

1 Like

This did what you said it would do in the next line, not exactly what I wanted

I swear I used to be “not terrible” at vision, and could typically figure things out pretty quickly.

But holy cow has Perspective given me a new perspective on vision hahahaha

I feel like everywhere I turn (You can probably see in any of my posts recently) I am unable to do something that is absolutely no effort in perspective. I know thats just that I am using modern web-design philosophies in a non-web format, but geeze hahaha.

Ill be honest, I feel like I used to see where Vision had its place, and where Perspective had its place. As of late, needing to build a modern looking app in Vision, I have started to realize that I am not sure in what scenario Vision would be a better option over Perspective? I am sure there are some but I have not run across them yet, maybe in a scenario with complex localhost control that a browser just cant do.

Note for the two obvious replies I typically get to that:

  1. You can run perspective in google chrome or edge Kiosk mode that gives you the same “Full screen cant escape the application” that some might desire in Vision.
  2. The other good scenario for Vision is when you know Vision really well because you’ve been using it for ages and dont want to have to learn a new platform, I am excluding that scenario as well hahaha
1 Like

Haha, I actually edited my post a few times, but even as it is now, I still don’t think it’s possible.

I haven’t yet jumped ship to Perspective. I’ve used it on one tiny project back in v803 I think, but nothing since. Ive never done web dev so the learning curve seemed pretty steep. I do wonder, even after 10 years’ dev, what limitations the Web environment will pose on your projects that Vision as a desktop app doesn’t have. Im also used to being able to hack the vision components if they dont quite do what I want. I don’t think that’s possible in Perspective :(. But Perspective seems to be the way forward, it’s just in a bit of an awkward place at the moment with functionality lacking, still some bugs, and lack of drawing tools (and the ability to stylise SVGs without delving through a seemingly infinite nest of json folders) . I’d really like some clarity from IA to say that, while Vision will be supported, it will eventually be phased out and it shouldn’t be used for new projects.

This was definitely something that I was a bit nervous about at first but I just jumped in head first when a rather large project using just the mobile module, had so many problems that when 8 and perspective came out the customer asked us to switch. So having a paid for project that required me to rebuild it almost all from scratch in perspective over the course of 6 months gave me quite the opportunity to become familiar. With over 100+ support tickets worth of Perspective bugs (I started in 8.0.0), wheras I am pretty sure I know them all by name at this point lmao, I eventually came out on top and now I dont think I could turn back and this project is showing me that.

I think in this case you could still do that, but it would look more like adding in your own React components with a custom module, I have been working on this a bit on the side for a project, and it seemed daunting at first (As someone with essentially no web experience) but if I can figure it out in a few weeks than I am sure anyone can. And after the first time you do it, then everything feels a bit more obvious and it takes much less time. I would say at this point adding in pre-built react components like this would honestly not take that long. As well as with theming, you can accomplish so much more than you could in 8.0.3, especially when it comes to look and feel of the application. Everything from restyling a component to complex CSS animations

I am not sure I believe you will ever get this as a direct quote, as then it would make all of the thousands of manufacturers who have put alot of faith into vision say “Holy cow well why did we buy it then if it wont last forever!” :roll_eyes: However, I will say that off the books you will find a handful of IA guys that believe that there will be a threshold when Vision just doesnt make sense to pick anymore. Especially when you consider that the backbone of perspective (The HTML/CSS/JS) is constantly being improved upon and pushed forward by the mega-tech companies (Amazon, Apple, Google, Facebook, etc.), and so in reality its the platform that will see the most growth overall.

If you cant tell, I am probably the biggest Perspective nerd there is :nerd_face:

Local filesystem and device resources on a desktop, like raw access to serial ports.


We’re still supporting Vision and still encouraging its use for new projects.


Yeah that was the primary reason I could think of, however I personally didnt think this would be that common, with how cheaply you can turn an HMI into an edge gateway, and allow the gateway service to do the talking. Then you could essentially visualize the same perspective project remotely and locally, except the local one would be running off the edge gateway, and have the ability to do any of these functions at the service level

Does this include things like barcode scanners? Can you use these with Perspective when they’re connected to a client PC? (sorry to hijack your topic @kgamble :laughing:)

Most Barcode scanners I use act natively as a keyboard input, and so they would input to perspective the same way your keyboard would.

However I am sure there are some that don’t act that way, and they may be different.

Also when using perspective on the app, you have access to the device camera for scanning barcodes as well

Ah, that’s right. For some reason I thought these presented as serial devices (I haven’t used them personally), but you’re right, the ones I have seen do present as HIDs.

1 Like

Getting back on track for your original question. I have stopped using containers for this reason. Scaling is very hard with those.

I only ever use containers when I need a border with a title, but then don’t put anything logically inside the container (only on top of it) to avoid scaling issues.

The best solution is to turn that orange area into a template. You can anchor the buttons into the template, and let the template resize where you use it. Don’t forget to enable the “Enable Layout” flag in the template.

I avoid this like the plague. Especially for devices that will be used with badges or identity tokens. It is extremely difficult to definitively control keyboard focus to avoid displaying those codes. I would expect it to be impossible in Perspective if the user can switch applications.

Anyways, if the scanner/reader can’t be reconfigured for serial duty, I buy something else.

So you will never be able to use these with Perspective then?

  1. Serial devices can be connected to gateways with ethernet-serial converters. Extra secure, too.

  2. I expect Perspective Mobile will eventually support add-on devices that present as serial with dedicated APIs, much as they support device native barcode scanners.

  3. I expect native Perspective desktop apps that exposes local device resources just like the mobile apps, eventually. I suspect some gnarly security questions are holding that back for now. Perspective undoubtedly probes the APIs exposed by the browser to determine whether it is running in the mobile app–duplicate those in a desktop app…

Not to be too “out there”, but I think #3 above is the future for the Ignition Designer, too, especially ten or so years down the road when Vision is retired.

I’d be shocked if certain people at IA aren’t already thinking this way… (Looking at you, @PerryAJ)

I guess wrapping perspective inside an electron app, and exposing the native APIs that way won’t be so hard…

It does add to the development cost though, as for every API you don’t have access to from the web, you need to gracefully fall down to someting else (like provide a file download instead of just writing to disk).

I am not sure if it’s technically announced that it would, but I wouldn’t be surprised if this is possible in Perspective Workstation edition

If you’re going to go through that much cost/effort I would say that just licensing and giving that specific device an edge license and treating it as a gateway would be cheaper. If you just need perspective, and that’s it, then you could probably get away with Edge Panel and Compute

I was thinking more like QT WebEngine, but yeah. (I’m biased towards strongly typed languages for native interfaces.)

Avoiding seat licenses is one of Ignition’s biggest selling points. This approach poisons that. I’d prefer to not paint over a Perspective limitation with a per-seat license. Not to mention the need to install a gateway on the client. Blegh.

1 Like