Giter Site home page Giter Site logo

Comments (8)

iAlborz avatar iAlborz commented on May 17, 2024 14

I made one with 24 hours. but it won't go past 16. it goes 16 then 1 when I change the time. Any help would be appreciated.
Update 1: I've attached the JSON file

wallpapper.txt

Update 2: I have made some progress. I went through every hour in a day, but a few wallpapers were being skipped. At first, I thought this was due to the 16 image limit. But I changed the date and months and I managed to make 19 of them appear. So there is no 16 image limit.

Here's my hypothesis: Apple is using your location and time to get the altitude and azimuth of the sun, and then compares that to the JSON file and finds the closest match.

Solution if hypothesis true: If I only use 0 and 180 as azimuth, and my only variable in the JSON file is the altitude, this should make all numbers appear. This would be true if you were on the equator on the first day of summer. (12 hours day/12 hour night and sunn is right above you at 12 PM)

with the method above, no matter where you are and what season, the wallpaper shouldn't skip.

Update 3: This is the Altitude and Azimuth I came up with. This should work. I will try and come back to report.
screen shot 2018-09-27 at 11 54 11 am

Update4: Here are the wallpapers that manage to set by simply changing the time:
screen shot 2018-09-27 at 1 58 36 am
Because I'm in Vancouver, I can't get any wallpapers that have an altitude higher than 60. Because we're far up north and the sun doesn't come too high.

This proves that the hypothesis above is actually true. The OS uses the azimuth and latitude of the sun compared to the current latitude/azimuth of your location right now to pick the closest match.
On top of that, the order of the wallpapers doesn't matter at all. It's all about the azimuth and latitude.

I'm trying to think of ways to make this work no matter where you are and have it go through all of the images.

I got the order of the numbers wrong. the first 12 should have an azimuth of 90, and 12-24 have the azimuth of 270. This resulted in the wallpaper counting backward as time moved forward.

Update 5: Going to try with these numbers:
screen shot 2018-09-27 at 12 59 05 pm
Chnaged the altitude range to 60 to -60 from 90 to -90.
Hoping this would solve the problem for most. Will come back and update.
Also fixed the wrong order of numbers. It should count up with time moving forward now.

Update 6: The approach above fixed the time going forward. but I didn't get most of the numbers. I'm going to now try a new approach: change the azimuth AND altitude based on where I am as suggested in the main notes. But the problem is that summer and winter have a big difference in the northern parts of earth. so here goes nothing. I'll come back and update again. Here are the numbers I will be trying:
screen shot 2018-09-28 at 12 01 02 am

Update 7: I'm getting tired of this. I see what apple is trying to do with matching the azimuth and latitude, but this is ridiculous. I'm using numbers from my lat-long but it keeps jumping back and forth. I'm gonna give this another shot in a few days maybe. for now I'm gonna take a break. If someone wants to take it from here, here's the JSON file I used last with 24 images:

wallpapper.txt

(just change the .txt at the end to .json I'm sure everyone knows this, but i didn't and it got me stuck for a bit)

from wallpapper.

sbliven avatar sbliven commented on May 17, 2024 3

I did some tests!

Hypothesis: Apple periodically calculates the correct elevation/azimuth from the time and location. It then searches the heic for the image closest to that position in the sky.

Test: Generate a heic with an image every 10 degrees of elevation/azimuth (180/10*360/10=648 images). Script: https://gist.github.com/sbliven/7287fa4f37d8abdcfe757a3813f8e6cd

Results:
Graphs elevation and azimuth by time of day
The blue and orange lines (at 15 min increments) show the calculated elevation and azimuth for my location (Zurich) and for the equator (0N 0E) for today's date (Feb 6, 2016). I then set the time on my computer every hour and recorded which image was displayed. I first did this with location services off (grey points) and then with location on (yellow line).

  • Sometimes the image shown was inconsistent. To get reproducible results I had to switch to the Mojave screen save and back occasionally after switching the time.
  • Using such a large heic file worked, but loading the Desktop preference pane becomes very slow (10s of seconds). Sometimes updating the image after changing the time was slow too.
  • Images are sorted internally first by elevation and then by azimuth.

Conclusions:

  • If location services are turned off, apple assumes an equatorial position
  • The elevation is generally calculated correctly, but the azimuth jumps around a lot. I'm guessing this is due to some heuristic for finding the best image for a particular sun position. Changing the image order might have an impact, but I haven't tested it.
  • It might be feasible to show different images for different seasons (at least at noon/midnight)
  • Still not fully predictable what image will be shown for a particular sun position.

from wallpapper.

JohnSlaughter avatar JohnSlaughter commented on May 17, 2024 1

I've made a test with a new image every 15 minutes, so it is possible, but Apple only reads them about every 1.5 hours so it's not beneficial to do so..

from wallpapper.

ctw-braun avatar ctw-braun commented on May 17, 2024

Hi Guys,
I have maybe the same problem with the timezone altitude/ azimuth

I'm from switzerland (UTC+2) and i created a wallpaper from Livigno, Italy (same zone). So far so good.

Now i added to the json file the altitude/azimuth from the location of the picture based on 21. Jun 2018 (longest day of the year). I set my first picture to dawn, 2. to sunrise, … 8. to culmination, … 11. to sunset, 12. dusk …

I got the altitude/azimuth from https://www.suncalc.org

  1. Screen with Mojave dynamic background
  2. Screen with my own wallpaper

I setup the date and time in the system settings to this date (2018/06/21) and sunrise time (4:53am) on both screens display the sunrise picture. Afterwards i changed the date/time to today and I have some differences.

  1. Screen display sunrise (6:55am)
  2. Screen display dawn

So, I believe the pictures are only re-calculated by a specific date/time not sure is it 21. Jun, but the result is good and it works for now :)

We can see the dropdown didn't work correct, if u put the wallpaper in your pictures folder. BUT if u put it into the /library/Desktop Pictures folder it works.

Only the right preview is missing :(

I attach for you my json file, hopefully it helps you.

Have a nice day

livigno-it.txt

from wallpapper.

vampjaz avatar vampjaz commented on May 17, 2024

I made myself a few desktops with 102 images each (link here if you want to test them out). They seem, from my initial test at least, to go through every image sequentially. I had to generate the coordinates based on my current location and season to get them to sync correctly, but so far I have not seen any images skip for a few hours so far. This is with the latest Mojave (10.14.2).

from wallpapper.

nzamosenchuk avatar nzamosenchuk commented on May 17, 2024

Does anyone have the sun positions json exactly matching Apple's Mojave wallpaper with 16 images?
Would appreciate a lot! Thank you.

from wallpapper.

ephilippo avatar ephilippo commented on May 17, 2024

Does anyone have the sun positions json exactly matching Apple's Mojave wallpaper with 16 images?

Yep, see this reply to a previous issue.

from wallpapper.

mczachurski avatar mczachurski commented on May 17, 2024

It seems that there is no limit of 16 images in macOS now. For sure you can use wallpapper for creating HEIC file with more (or less) than 16 images. I'm closing the issue.

from wallpapper.

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.