Git Product home page Git Product logo

Comments (11)

maluoi avatar maluoi commented on June 5, 2024

Could you clarify, is this a Win32 project, or a UWP project? More specifically I suppose, what's your <TargetFramework> set to in the .csproj? Currently, the NuGet package doesn't ship an ARM64 Win32 build, so if this is a non-UWP project, that could quickly explain what you're seeing.

UWP may correctly fail on the first LoadLibraryW call, but should succeed on the second. Technically UWP will load the library right away, or build it in or something so it's available when the app starts, but LoadLibraryW I believe will merely report that the library has already been loaded.

from stereokit.

laultman avatar laultman commented on June 5, 2024

@maluoi That would quickly explain what I'm seeing. Nuget packages are great except when they are not :(
csproject.txt
Thanks Nick.
By the way, I stumbled upon a fix for the assets folder issue. If you delete all the files in the assets folder (making sure you have a copy of them somewhere else, naturally), save the work. Then copy the files you want into the assets directly from a Windows File Explorer window - not from another project in the solution. You can see in the project file what VS did and this works for the MSIX package installer.

from stereokit.

laultman avatar laultman commented on June 5, 2024

Technically UWP will load the library right away, or build it in or something so it's available when the app starts, but LoadLibraryW I believe will merely report that the library has already been loaded.

This statement makes sense too, I am trying to build a nuget package for the arm64 but really have no idea how at the moment. But my last attempt did build, however it fails to run with "stereokit.dll" was not found.

from stereokit.

maluoi avatar maluoi commented on June 5, 2024

Yeah, that's a net7.0-windows, which is definitely not UWP, even if the API it provides is kinda shaped the same as UWP.

I didn't include Win32 ARM64 in the NuGet because it's a bit of a weird edge-case target? I guess you can probably run the simulator there, but are there any XR headsets that run in that environment?

If it's genuinely of interest to you, I can add it to CI going forward. Just let me know.

from stereokit.

laultman avatar laultman commented on June 5, 2024

@maluoi It is genuinely of interest because of the arm64 based computers. While HoloLens is self-contained, the market in the industrial sector doesn't mind a tethered (wirelessly) device. The "puck" form-factor or backpack is definitely the way forward. In our case, I have mostly switched to remote rendering to HoloLens, but there are special cases where I need to have on device app capability in HoloLens. Good, bad, or otherwise, in the industrial sector the HoloLens 2 is still miles ahead. It could stand a hardware refresh on the memory/cpu/fps but really in industrial environments it is very good.
I am trying to use only one platform to save time and money. In the industrial setting, I'm using a bunch of 3D cameras to watch the action in a work cell for heavy manufacturing. The customer wants a low-cost solution to put these in every workspace for passive data gathering. So, it's not all about headsets, it's about consistent coding platform.
Combine a remote rendering device, a flexible 3D render engine (StereoKit), HoloLens, all built around a low-cost arm64 computer you have a single platform of code. StereoKit and its design coupled to some industrial coding yields a deterministic machine capability.
One last thing, I still need to have StereoKit fixed to cleanup and return to its beginning state for a server environment. I know you mentioned that you could do that over a weekend. If you will tell me how, I will put a developer on that task to get it done. Again, so you don't misunderstand, it is better for me to develop this for the project than it is to fork the code to get it, which in the end I must have it.

from stereokit.

laultman avatar laultman commented on June 5, 2024

@maluoi Edge cases are areas where money is made - they're called niche markets. Funny how niches become mainstream over time.

I didn't include Win32 ARM64 in the NuGet because it's a bit of a weird edge-case target? I guess you can probably run the simulator there, but are there any XR headsets that run in that environment?

Robotics using the simulator comes to mind as a real project. Forklift machine operation (FYI 99.9% of industrial factory floors are not Amazon robot warehouses), overhead cranes, multi-directional load movers, there are plenty of "edges" out there that could use such a technology. We are experimenting with live-remote assist, next step is live remote industrial operation.

from stereokit.

maluoi avatar maluoi commented on June 5, 2024

I'll look into adding ARM64 Win32 then.

Wrt state cleanup, I made a ticket specifically for that at #705. It has not been at all as simple as I had hoped, and has instead inspired a number of rather large architectural refactors.

from stereokit.

laultman avatar laultman commented on June 5, 2024

Thank you for the considerations. I look forward to your next evolution. After trying to track down all the locals and globals throughout the code for shutdown clean up, I was very interested to see how you could do it in a weekend. You obviously know the code inside and out and lived it for several years that I have known you. I'm not on your level by any means, but still, it didn't look that simple, but hey, if you could fix it quickly, I for one would take that all day long. :)

I read #705, it really is a good solution and will likely make the code more stable as new features are implemented. I generally, with my business hat on, strongly dislike (hate or loath are too strong) the thought of refactors as they always add time, cost, customer relations issues, and not the least of these, breaking changes. On the flip side, refactors once completed generally are positive for the business.

from stereokit.

maluoi avatar maluoi commented on June 5, 2024

0.3.7-preview.1779 now has ARM64 arch binaries for Win32! @laultman would love to hear if this works properly for you :)

from stereokit.

laultman avatar laultman commented on June 5, 2024

Yeah, I saw your comment update in the GitHub portal, so I grabbed it. Works like an absolute charm!
Running on my Microsoft Dev box on ARM64. I did manage to sideload it also to HL2. Got some issues there, but it did install, and it does at least reach the app "loading" stage. I hope that I can get it to work in HL2. At least then my code maintenance would go down some.
My intent is to create a hybrid app between the HL2 and the PC app. I have a customer who wants to do live training with multiple students concurrently in different locations. Think firefighting in a multi-story building. Sort of like multi-player gaming but running multiple games at the same time. It is actually a lot more complicated in the customer's real environment and fire is only a single component.

from stereokit.

laultman avatar laultman commented on June 5, 2024

I think this works, after some testing.

from stereokit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.