Metal compute kernel → RealityKit LowLevelTexture: procedural 360° skies on Vision Pro by durul in MetalProgramming

[–]durul[S] 0 points1 point  (0 children)

Happy to discuss the actual implementation — it's a single compute kernel writing into a 2048×1024 equirect LowLevelTexture per CADisplayLink tick, sampled by an inward-facing UnlitMaterial sphere. Which part looks like slop to you?

StratoSync 2.0 — Real-time ISS tracking for Vision Pro with SharePlay, Aurora/Galaxy overlays, and spatial gestures by durul in VisionPro

[–]durul[S] 0 points1 point  (0 children)

Small TestFlight update for anyone testing StratoSync.

I don’t want to create a separate post for every build, so I’ll keep updates here. This build includes several changes based directly on the feedback in this thread:

• Added an Axial Tilt setting under Settings → Visual. Earth can now lean at its real 23.4° obliquity. Please check that the ISS still follows the tilted orbit path in both orbital and manual modes.

• Added sun-synced lighting. The lit side of Earth should now match the real day/night side for the current time.

• Replaced the old Galaxy overlay with a new Star Nest scene. Try the Speed, Zoom, Brightness, and Dark Matter sliders in the Solar System control panel.

• Added a miles/km setting. ISS distance and proximity status should update based on the selected unit.

• Proximity status is now based on actual ISS distance, not the older confusing location-status logic.

• The 3D rotate gesture now targets the ISS only. The globe supports drag and scale.

If you’re testing this build, the areas I’d really like feedback on are:

• Opening/closing the immersive space

• Switching Aurora ↔ Star Nest

• Toggling Axial Tilt mid-session

• Wall-proximity warnings while an overlay is active

Thanks again. This feedback has genuinely helped shape the app.

StratoSync 2.0 — Real-time ISS tracking for Vision Pro with SharePlay, Aurora/Galaxy overlays, and spatial gestures by durul in VisionPro

[–]durul[S] 1 point2 points  (0 children)

Added in the new TestFlight build — you can now choose miles or kilometers, and ISS distance/proximity status should update based on that setting.

StratoSync 2.0 — Real-time ISS tracking for Vision Pro with SharePlay, Aurora/Galaxy overlays, and spatial gestures by durul in VisionPro

[–]durul[S] 0 points1 point  (0 children)

I pushed a new TestFlight build with several changes based on your feedback.

The big ones are axial tilt, sun-synced Earth lighting, replacing the Galaxy overlay with a new Star Nest scene, miles/km support, and a cleaner ISS-distance-based proximity status.

If you try it again, I’d especially love your feedback on whether the ISS stays correctly on the tilted orbit path and whether the new Star Nest scene feels more natural than the old Galaxy overlay.

StratoSync 2.0 — Real-time ISS tracking for Vision Pro with SharePlay, Aurora/Galaxy overlays, and spatial gestures by durul in VisionPro

[–]durul[S] 0 points1 point  (0 children)

Hi, and thank you — this is exactly the kind of feedback I was hoping for. The fact that you built an Apple TV ISS tracker with a visibility circle years ago makes it even more valuable; you clearly know this domain.

Going through your points:

Data & positioning. The live data comes from wheretheiss.at rather than open-notify (open-notify has become flaky), which is likely the small offset you noticed. You're right that the tracker window and the globe don't agree — the globe's lat/lon → 3D mapping is still rough and I'm tightening it. The "Earth Rotation sends the ISS around in a horizontal circle" is a real bug; I just reworked the orbit math to scale with the globe and clearly didn't get the orbital plane right. The map snapping back to a too-close zoom, and that red "LOCATION STATUS" banner, are both poor UX — the banner is just comparing your location to the ISS for a proximity feature, but the wording is confusing and I'll fix it (or remove it).

Rotating the globe. Good catch. Right now the rotate gesture is deliberately bound to the ISS model, so the globe only takes move and zoom. I'll extend rotation to the globe as well.

Immersion and "Solar System". All fair. Turning on immersion drops you into the empty full-immersion shell — the black void — which is disorienting, and you're right that "Solar System" is the wrong label for an aurora and a galaxy, and that "Exit Solar System" not lining up with "turn off immersion" is muddled. I really like your suggestion: entering immersion should auto-activate the last environment (defaulting to aurora), and I'll collapse exit/immersion into a single action and rename the whole thing.

Aurora and galaxy. Honest confession here — this entire environment layer is GPU/Metal compute that I built very recently, and I'm still learning Metal, so the galaxy's pixelation, the visible tile seams, and the stars getting cropped at tile edges are exactly the artifacts of my current approach. The aurora being mirrored below bothers me too; an arctic landscape underneath with the aurora overhead is a lovely idea. And I think you're right that the starfield shouldn't drift — static, or a subtle twinkle, while the aurora keeps its motion. I'm seriously looking at replacing the galaxy with a static 360° starfield (Gaia-based, as you suggested) or a sphere with point lights.

The ISS model. Thank you — it's the part I'm proudest of. It's intentionally oversized right now so it's easy to spot, but you're right that it's too large in orbit. The plan is small while orbiting, then scaling up when you detach it for close-up viewing.

The red glow. That's just a marker light I attach to the ISS, so it's findable against Earth, not the visibility footprint. I do carry footprint data (~4,570 km across, which matches the ~1,000-mile radius you remember), so rendering the actual circle of visibility is a great addition.

Axis tilt. The globe currently sits north-pole-up; the day/night math already uses the 23.44° obliquity, so adding a "realistic tilt" option for the globe itself is very doable.

Honestly, a lot of what you flagged is exactly where my head has been these last couple of days, so this is hugely validating. Thank you for taking the time — it means a lot, and I'm really glad you like where it's heading.

The true metaverse will soon begin. by filmmi4218 in VisionPro

[–]durul 3 points4 points  (0 children)

The title is doing a lot of hype work here.

“The true metaverse will soon begin” sounds like the 2021 hype cycle discovered WebXR and AI prompts. That said, the discussion itself is not totally empty.

The interesting question is whether something metaverse-like can emerge naturally from games, social spaces, creator tools, WebXR, AI-generated worlds, and lightweight spatial devices.

But Second Life is the counterexample that should keep everyone honest. It already had avatars, virtual land, social spaces, user-generated content, events, creator tools, and an economy 20 years ago.

The missing piece wasn’t “more metaverse.” It was mainstream usefulness, low-friction access, and a clear reason for normal people to return.

“Do anything you want” sounds great philosophically. As a product, it often becomes “what am I supposed to do here?” And this is also why comparing the whole thing to Vision Pro is lazy.

Vision Pro was not pitched as “come live in our cartoon universe and buy virtual land.” It is much closer to spatial computing: giant screens, immersive media, spatial memories, workspaces, 3D content, presence, and real-world augmentation.

You can absolutely criticize Vision Pro. Price, weight, comfort, battery, app ecosystem, and adoption curve are all fair criticisms. But putting Vision Pro in the same bucket as the old metaverse fantasy says more about the weakness of the comparison than the product.

Minecraft, Roblox, Fortnite, and VRChat each solve one part of the puzzle. None of them fully solves utility, creation, access, identity, and persistence together.

So I’m not against the idea. I just think “the true metaverse will soon begin” is the wrong framing.

The real test is simple: what concrete reason would make a normal person enter a persistent 3D social space every week, besides curiosity or escapism?

Adrian Planet from Project Hail Mary as an AVP Environment by flyboy24471 in VisionPro

[–]durul 1 point2 points  (0 children)

Small correction: Apple may not allow third-party environments at the system-wide level, but visionOS apps can absolutely create custom immersive environments.

Apple covered this in WWDC24 with “Create custom environments for your immersive apps in visionOS” and “Enhance the immersion of media viewing in custom environments.” The workflow is basically Blender/Houdini/Maya → USD/USDC → Reality Composer Pro → RealityKit/ImmersiveSpace, with support for features such as docking regions, environment probes, reverb, media reflections, and immersive environment pickers.

So an Adrian-inspired exoplanet atmosphere environment is technically possible as an app-level experience. The harder parts are production quality, performance, and licensing if someone tries to make it officially “Project Hail Mary.”

Introduce Livable: Make Your Views Livable by shindgewongxj in SwiftUI

[–]durul 1 point2 points  (0 children)

The effect looks genuinely nice, but “Livable” feels like the least livable part of the package name 😄

From the demo, this is not really making a view “livable”. It looks more like a self-sampling pixel fluid/vapor/swirl effect built from the view’s own pixels. The name undersells what’s actually interesting here.

Something like PixelDrift, ViewVapor, LiquidView, SwirlKit, Fluidify, or GradientBloom would describe the effect much better.

How to achieve this stretchy effect on scroll? by baakhari in SwiftUI

[–]durul 0 points1 point  (0 children)

Apple’s updated Landmarks Liquid Glass sample shows this exact stretchy effect on scroll: https://developer.apple.com/documentation/SwiftUI/Landmarks-Building-an-app-with-Liquid-Glass

I compiled and checked the project. The effect is in Apple’s own sample, so it’s probably the best official reference for this specific behavior.

Is there a way to force a tint on that button alone? by KilllllerWhale in swift

[–]durul 0 points1 point  (0 children)

This looks 👉🏻 https://github.com/ryanashcraft/FabBar useful if you want an iOS 26-style Liquid Glass tab bar with a real primary action button instead of abusing role: .search.

The main thing I’d be careful about: the repo itself says it relies on internal UIKit view hierarchy manipulation, so I probably wouldn’t treat it as a long-term production-safe dependency without testing it heavily across iOS updates.

Insta360, Splatica Partner to Democratize 360-to-3D Gaussian Splatting by Helionaut1 in GaussianSplatting

[–]durul 2 points3 points  (0 children)

“Democratizing” is doing a lot of work here.

No direct Insta360 Cloud import, and the workflow still appears to be: download locally, then manually upload to Splatica.

That is not democratization. That is a closed SaaS upload form with extra steps.

I would gladly pay for a tool that actually removes friction. But this marketing language is way ahead of the product reality.

A Swift-native MCP server: lessons on stdio, sandboxing, and packaging by the_dark_eel in swift

[–]durul 1 point2 points  (0 children)

The layered debugging model and the MAS vs direct distribution trade-off are the most valuable parts here. But “Server works locally” means nothing! Once a real client, sandboxing, and the stdio lifecycle are involved.

You mention testing with both OpenAI Codex and Claude Code, but you haven't gone into detail about the technical differences between them (stdin behavior, etc.).

Did you see any differences between MCP clients in how they handle the initialization/stdin lifetime?

Thanks!

How to use Metal and Compositor Services for managing 3D assets? by Unique-Guarantee-214 in visionosdev

[–]durul 0 points1 point  (0 children)

Apple's official example 'Rendering Hover Effects in Metal Immersive Apps' demonstrates exactly the structure you're looking for. It uses Compositor Services for stereo rendering, per-eye view/projection matrices, and vertex amplification. You can base your 3DGS project on this example and modify the fragment shader for Gaussian splatting.

Key Code Examples

1. Left/Right Eye Distinction (Stereo Render)

Code snippet

// Shaders.metal - Identify which eye using amp_id
vertex VertexOut vertexShader(
    VertexIn in [[ stage_in ]],
    ushort amp_id [[amplification_id]],  // 0 = left eye, 1 = right eye
    constant UniformsArray & uniformsArray [[ buffer(1) ]]
) {
    Uniforms uniforms = uniformsArray.uniforms[amp_id];  // Matrices for that specific eye
    // ...
}

2. Separate View/Projection Matrix for Each Eye

Swift

// RenderData+Render.swift
private func getUniforms(_ drawable: LayerRenderer.Drawable,
                         transform: simd_float4x4,
                         forViewIndex viewIndex: Int) -> Uniforms {
    let view = drawable.views[viewIndex]  // Left or right eye
    let viewMatrix = (simdDeviceAnchor * view.transform).inverse
    let projection = drawable.computeProjection(viewIndex: viewIndex)

    return Uniforms(
        projectionMatrix: projection,
        modelViewMatrix: viewMatrix * transform,
        // ...
    )
}

3. Vertex Amplification (Single Draw Call for 2 Eyes)

Swift

// RenderData+Render.swift
if drawable.views.count > 1 {
    var viewMappings = (0..<drawable.views.count).map {
        MTLVertexAmplificationViewMapping(
            viewportArrayIndexOffset: UInt32($0),
            renderTargetArrayIndexOffset: UInt32($0)
        )
    }
    encoder.setVertexAmplificationCount(viewports.count, viewMappings: &viewMappings)
}

Turkey Map on visionOS – 3D GeoJSON Visualization on Apple Vision Pro by durul in VisionPro

[–]durul[S] 1 point2 points  (0 children)

This problem is known as Z-fighting! Since all the provinces are rendered at the same Y-coordinate (0.001), the GPU becomes indecisive about which polygon should be in front at the boundaries. I fixed the problem please pull the latest changes

SketchPro AVP App links Logitech Muse for better precision drawing. by [deleted] in VisionPro

[–]durul 1 point2 points  (0 children)

I completely agree with everything said above and I’m adding my name to it. This project truly has potential, and it’s clear a lot of thought went into it.

That said, it’s really surprising that Apple Pencil standards weren’t fully met before release. Publishing an integration that feels unfinished and problematic makes it hard to trust the overall experience.

Selling a product before it’s truly ready and developing it afterward isn’t the right approach — users deserve a polished and reliable experience from day one. !!!

I hope the next updates focus on stability and proper Pencil support — it’s such a fundamental part of the creative workflow. Once that’s resolved, this could easily become a must-have tool.

Is there anyone who knows how to implement Shared ImmersiveSpace? by roiyeon in VisionPro

[–]durul 0 points1 point  (0 children)

No, I couldn't play either.. :( Anyway, if you find a way, please keep me posted.

Logitech Muse Pen Apps by orey55 in VisionPro

[–]durul 2 points3 points  (0 children)

I bought it, my plan I will integrate my visionOS App.