Worldlapse - Create a beautiful timelapse of your world!

I just found this on Reddit, and it is a wonderful idea for a plugin - a plugin that I will probably create it as soon as Sponge comes out ;):
So here’s the concept of how to realize this as a Sponge plugin:

:sunrise_over_mountains: What will Worldlapse do?

It takes the world of your Sponge server and creates wonderful timelapses and screenshots of it!
It’s a wrapper around a logging plugin (I don’t know which one yet), that can playback anything that happened on the server in any speed.

You can even create a timelapse with the camera moving along a path. Everything you need is nicely explained in the chat with clickable links.
It works with a few commands and is a wrapper around Chunky.
There’s basically no configuration needed, you just have to define the path to Chunky and Java.

:interrobang: How can I use it?

  • /timelapse <since> <speed> shows the user interface to create the timelapse
    e.g.: /timelapse 1h 20x plays the timelapse since 1 hour in 20x speed.
  • /timelapse pause will (un)pause the playback.
  • /timelapse stop stops the currently running timelapse playback

:bulb: What do you think?

The whole topic only consists of ideas and concepts - nothing of this is final or even coded yet!
If you got any suggestion, criticism or idea for this plugin - feel free to post it below :smiley:

:bomb: What happened to the Chunky wrapper?

I decided to use a playback mechanism instead, I like the idea suggested by @boformer and how smooth it can run… With shaders on a good PC, you can achieve similar results with much faster render times and a much less complex plugin.

1 Like

cool, but that’s stealing the idea of the guy at /r/admincraft. you should message him before doing this, or you look like a jerk.

i also made a timelapse a Plugin about 2 years ago, with 2 components:
TimelapseRecorder: Registered all block changes (like logblock), saved Position of Players every 5 seconds in MySQL db.
TimelapsePlayer: Revert the World to the starting point, create npc player objects in fly mode, play animation of player movement and block placement with 50x speed.

There was a great singleplayer mod for smooth camera movement, so I did not implement that (server side movement is always laggy).

With my plugin, you could record the actual timelapse as many times as you want, with different perspectives instead of a predefined one, and with timelapse speed, so it doesn’t take tears to record.

I never released it, because it used a lot of hacks (npcs), I only made it for my own server. The block placement lagged the server, so there was a natural speed limit.

The code of the recorder:
It depends on an old version of coreprotect.

Most of the hacky code is in the player plugin, I never uploaded that.

I will add a video later…

1 Like

Of course, but: It’s not really the same - PhonicUK wants to create a commercial service based on bots - you can achieve similar things (screenshots and time lapses), but you have to pay and it’s a third party service.
The idea of both is a screenshot tool for servers - the realization works completely different. As we see, he is not even the first one with a tool like this (and boformers plugin looks a lot more like my plans than his), so in my opinion the two tools have nothing to do with each other in the first place :wink:

Looks interesting - not the most common method of making a timelapse, remembering everything that happens and do it again faster :wink:
Did it run without lags? I imagine if you change just 50 blocks in one tick, it will glitch around a lot…

Other question: Would it be realistic or fast enough to export the relevant chunks to an OBJ file, import it to Blender and render it with a python script?
Completely other idea: You download the MapLog database and a script/application creates the chunk files to create a time lapse rendering with chunky - on my computer it will take a month or so to finish the render, but it’s faster than doing it on a server…

It’s quite fast. And it has many advantages. First of all, the plugin can skip the times where nothing happens (no one logged in, no blocks placed), so you only get the actual building progress. The only problem is the missing/wrong day-night-cycle, but thats not really important.

Of course, the number of blocks it places per second is limited (depending on your server, your database, and even your client), but even with only 50 blocks per second, it’s quite fast.

I found the video. The plugin used for it did not support flying npc players, but it’s possible. Also, it would have been better to turn off animal spawning, because those are moving with standard speed.

The plugin was still WIP and not really comfortable (there was only pause/unpause and restart…), but i think the result looks great :wink:

That really looks great :wink:
Now imagine with shaders… :smiley:
Also I think it’s easier to realize and does not use the main server power as you can just download the log database and run it locally… The idea is completely different, but I like it…
I think for server timelapses (which are recorded over a long time), it’s pretty useless to render the players. We just need a wrapper around any logblock plugin, should be pretty easy to implement that.

1 Like

Would it be possible to record player position correctly?

I imagine this would be a lot harder to do for a survival world then a creative world, due to players jumping or needing to be standing on a valid block while building.

Why would it be harder?

With player location: You have to rely on a plugin like Citizens and log every single movement to a database that gets humangous if you record for a long time. It would require to start the timelapse recording manually including how many frames per minute you want.
If it’s creative or survival is not relevant, but note to set more frames per minute for creative as more blocks are changed…

To record it, you don’t need any additional plugins. Only to replay it (if sponge doesn’t support it).
To save disk space, you only log player positions when a block was placed, and max. every 10 seconds, and you also log moving players next to him, but only I they were not logged in the last 20 seconds.
That limits log entries for passive players to 3/min and for active builders to 6/min