Skip to main content
KevinJardine
Honored Contributor
November 25, 2025
Solved

Change image in Noesis?

  • November 25, 2025
  • 9 replies
  • 242 views

I've finally been making progress with NoesisGUI - I can load text from the dataContext object in TypeScript and handle button clicks.

But has anyone been able to load an image in response to a button click? The image Source tag does not seem to accept a string value.

Best answer by gausroth

You have to make an Image Source binding in Noesis and set it to an Image Source in typescript. Something like this:

    private dataContext = {
        Image: ImageSource.fromTextureAsset(new TextureAsset(BigInt("AssetID"))),
    };

    start() {
        this.entity.as(NoesisGizmo).dataContext = this.dataContext;
        this.dataContext.Image = ImageSource.fromTextureAsset(new TextureAsset(BigInt("AssetID")));
    }

 

9 replies

gausroth
gausrothAnswer
Honored Contributor
November 25, 2025

You have to make an Image Source binding in Noesis and set it to an Image Source in typescript. Something like this:

    private dataContext = {
        Image: ImageSource.fromTextureAsset(new TextureAsset(BigInt("AssetID"))),
    };

    start() {
        this.entity.as(NoesisGizmo).dataContext = this.dataContext;
        this.dataContext.Image = ImageSource.fromTextureAsset(new TextureAsset(BigInt("AssetID")));
    }

 

GitHub: https://github.com/Gausroth/HorizonWorldsTutorials.git Discord: https://discord.gg/hNyDQwdw4N YouTube: https://www.youtube.com/@GausRothTutorials
KevinJardine
Honored Contributor
November 25, 2025

Fantastic. Yes that works for me. And it is a better solution than I was expecting as I can load any of my existing asset textures without needing to have them in the noesis zip.

 

gausroth
Honored Contributor
November 26, 2025

During my testing of the feature there seems to be a bug with the image source bindings only appearing for the asset owner. Hopefully this gets fixed. If you encounter this issue please report a bug report.

GitHub: https://github.com/Gausroth/HorizonWorldsTutorials.git Discord: https://discord.gg/hNyDQwdw4N YouTube: https://www.youtube.com/@GausRothTutorials
KevinJardine
Honored Contributor
November 27, 2025

Unfortunately, I can confirm this bug. I can see the image, but no one else can. I have reported it via the desktop editor issue system. I guess for now I am going to have to work on my world without images, which is a major limitation.😞

KevinJardine
Honored Contributor
November 25, 2025

Thanks for your YouTube videos as well. They made all the difference in connecting the dots to see how to set things up in NoesisGUI Studio, hook it up in Horizon Worlds and then populate the content in TypeScript.

gausroth
Honored Contributor
November 27, 2025

There are other ways to swap images in Noesis. I have not tried it yet, but you can use data triggers.

GitHub: https://github.com/Gausroth/HorizonWorldsTutorials.git Discord: https://discord.gg/hNyDQwdw4N YouTube: https://www.youtube.com/@GausRothTutorials
KevinJardine
Honored Contributor
November 27, 2025

Do you have hints or sample code?

gausroth
Honored Contributor
November 27, 2025

Unfortunately no.

GitHub: https://github.com/Gausroth/HorizonWorldsTutorials.git Discord: https://discord.gg/hNyDQwdw4N YouTube: https://www.youtube.com/@GausRothTutorials