Results 1 to 12 of 12

Thread: Display Object Overlay Request: Dynamically Changing Leaderboard

  1. #1
    Tuner in Training
    Join Date
    Apr 2020
    Location
    Pittsburgh, PA
    Posts
    19

    Display Object Overlay Request: Dynamically Changing Leaderboard

    I would like to request a customizable and dynamically changing leaderboard display object overlay enhancement within the RaceRender application. Something similar to what is seen on TV broadcasts or displayed at the track on the big screen tvs from Clubspeed, Apex Timing or other digital leaderboard screens. I've attached some general examples for your reference.

    I am an indoor go karting league racer and record my races from multiple angles and use the Ultimate Version of RaceRender to sync my videos together and use the various display objects to show my specific lap times. I would like the ability to create a leaderboard based on the data that is collected after the race finishes and add it as an overlay. Right now I have to record the screen on my iPad and then sync the leaderboard video to my races. It's time consuming since the race data already exists or can be created in a data table format. This way, I can modify and customize the template to my preference and take my videos to a whole new viewing level with additional data on the screen.

    Thank you in advance for your thoughtful consideration to enhance RaceRender!

    Sincerely,

    Joel
    Attached Images Attached Images

  2. #2
    Quote Originally Posted by jaabubby View Post
    I would like to request a customizable and dynamically changing leaderboard display object overlay enhancement within the RaceRender application. Something similar to what is seen on TV broadcasts or displayed at the track on the big screen tvs from Clubspeed, Apex Timing or other digital leaderboard screens. I've attached some general examples for your reference.

    I am an indoor go karting league racer and record my races from multiple angles and use the Ultimate Version of RaceRender to sync my videos together and use the various display objects to show my specific lap times. I would like the ability to create a leaderboard based on the data that is collected after the race finishes and add it as an overlay. Right now I have to record the screen on my iPad and then sync the leaderboard video to my races. It's time consuming since the race data already exists or can be created in a data table format. This way, I can modify and customize the template to my preference and take my videos to a whole new viewing level with additional data on the screen.

    Thank you in advance for your thoughtful consideration to enhance RaceRender!

    Sincerely,

    Joel
    Do you have an example CSV file that would contain the data for this? I think I could put something together, but I don't want to make assumptions on what data you have available to you, but I'll give an example of input that would make this pretty easy:

    One column with the session time, (potentially one column with the lap number), and N columns with "First Place", "Second Place", "Third Place", etc. that contain the name of the person in that position. This way, the chart can simply react to the labels of the position at the given time (and if I feel fancy enough, dynamically move the lower person above like the real broadcast does).

    I already have a "F1 style" layout for lap times that I could adapt pretty easily.


  3. #3
    Tuner in Training
    Join Date
    Apr 2020
    Location
    Pittsburgh, PA
    Posts
    19
    Thank you for your reply! I really like the example that you provided.

    Attached is a data sample of a generic race between two drivers.

    If the leaderboard can re-sort in ranking (with or without animation) as drivers compete, that would be awesome. I didn't consider any sector/turn splits that aren't captured, but would be neat if the data file can accept those parameters manually or if there are additional fields to pull as a configuration. If I had the time, I'd capture the sector splits from RR by watching where a wheel or some part crosses a certain point or marker in the video. That's certainly time consuming, but could be achieved given the amount of sectors chosen.

    Thank you again!

    Joel
    Attached Files Attached Files

  4. #4
    Quote Originally Posted by jaabubby View Post
    Thank you for your reply! I really like the example that you provided.

    Attached is a data sample of a generic race between two drivers.

    If the leaderboard can re-sort in ranking (with or without animation) as drivers compete, that would be awesome. I didn't consider any sector/turn splits that aren't captured, but would be neat if the data file can accept those parameters manually or if there are additional fields to pull as a configuration. If I had the time, I'd capture the sector splits from RR by watching where a wheel or some part crosses a certain point or marker in the video. That's certainly time consuming, but could be achieved given the amount of sectors chosen.

    Thank you again!

    Joel
    Given the go-karts that I've been to in the past, I tried mimicking your first example rather than the F1 type leaderboards. RaceRender doesn't actually have a simple way to display full text names, so I figured a 3 character shortname might be sufficient (but that can probably be expanded if necessary). It's easier to process if it's uppercase only, but I think I could make lowercase work with a little more effort. Right now, I'm converting the 3 characters into ascii numbers and concatenating them.

    Preview.jpg

    I think this will require some preprocessing of the data to get this into a format that will work. It should be as simple as running a script (but it may require installing either Java or Python) to convert the data into a file that can be easily processed in RaceRender. I think you only need one column for each participant with their name in the first row, and then their various lap times in the following rows (in order of when they were completed). The preprocessing can then take that and format it into a timeline of when each participant crossed the start/finish line (i.e. when the values would actually change). It will also convert the name into a number that can be read into RaceRender (with some default assumptions).

    RawData.csvFormattedData.csv

    I still need to write the preprocessing part, but I have a basic Display Object ready (but it may require a little updating still). That may have to wait a few more days though.

    Lap List - GoKarts.rro

  5. #5
    One note: the RaceRender Object above will require the Formula 1 fonts available here:

    https://drive.google.com/file/d/1tOb...ew?usp=sharing
    https://drive.google.com/file/d/1rA-...ew?usp=sharing

    The first is one I found by simply searching for the font itself (can't remember exactly where I found it at this point). The second is a manually edited version where the numbers are all the same width which makes displaying them in a gauge much easier (i.e. I don't have to paint each digit individually and center it).

    You can obviously use whatever fonts you want, but that would likely require tweaking the positioning of almost everything...

  6. #6
    Tuner in Training
    Join Date
    Apr 2020
    Location
    Pittsburgh, PA
    Posts
    19
    This looks good! I downloaded the F1 fonts as well.

    Is there a certain process I should follow to use the RR object? You mentioned running some scripts in Java or Python and to be honest, that's where my understanding begins and ends with programming languages. I can follow directions, but that's where the buck stops.

    I really appreciate your efforts to develop this RR object! I think it is pretty cool that you are making this request come to life.

    Sincerely,

    Joel

  7. #7
    Here is a formatter that will take a spreadsheet of laptimes and convert it into a CSV file for use within RaceRender with the Leaderboard object above:

    https://github.com/dmcfarl/RaceRende...ses/tag/v0.9.1

    You'll need to download the RaceRenderFormatter.jar and runGoKartFormatter.bat
    (and Java if you don't already have it).

    To run it, you'll need to:
    1. Copy your Excel or CSV file with lap times into the same folder as the two files above.
    2. Double-click on the runGoKartFormatter.bat file to run it (if you're running on a Mac, let me know and I can provide an equivalent file there). This will create a LeaderboardData CSV file.
    3. Then in RaceRender, add that new LeaderboardData CSV file as an Input File. You will likely need to synchronize the LeaderboardData so that it appropriately lines up with the video.
    4. Add the Leaderboard RaceRender object from above somewhere on the screen (if not already added) and make sure that it has the LeaderboardData as the selected Input.



    Then you should be good to go!

    Some notes about the formatter:
    1. It uses the most recent XLSX, XLS, or CSV file (that it didn't write itself) as the input file for the drivers and their lap times. If you want to format an older file, just delete (or move) any newer files to a different location.
    2. It assumes that the driver's name is in the first row of the file to convert. It will take up to the first 3 characters of the name, convert them to uppercase, and convert them to a number that can be read in RaceRender. I can try to increase that to upwards of 8 characters uppercase or maybe 5 if we include lowercase, but RaceRender still doesn't have an easy way to read in an exact word value (as opposed to number values). Maybe that can be changed in the future if that functionality is added.
    3. It assumes that the second row of the file to convert is the amount of time it took the driver to cross the line prior to the first recorded lap. You can adjust these values without impacting the exact lap times that each driver recorded. Adjusting these values will help line up the leaderboard change exactly with when a driver crosses the start/finish line. This may require some trial and error to get right since adjusting the value means that you would need to rerun the formatter and reimport the file into RaceRender.
    4. The formatter adds 30 seconds of buffer to the start and end of the converted CSV file so that you have some lead-in time and lead-out time before and after the race (i.e. the Leaderboard won't just magically appear the second the first driver begins their first lap). When synchronizing the LeaderboardData Input File with your video, it would probably be easiest to have the first driver cross the line exactly at 30 seconds (i.e. their initial pre-race lap is 0.0), and then count the time for each subsequent driver to cross the line and use those values in the first row of the file to convert.


    Let me know if you have any questions. Hope this works for you!

  8. #8
    Tuner in Training
    Join Date
    Apr 2020
    Location
    Pittsburgh, PA
    Posts
    19
    Awesome, thank you!

    I'll definitely give this a shot! Also, I am using the Mac version of RR. Thirty seconds should be enough for the indoor tracks that I race on and eight characters would be great to have, but graciously accept three characters. Totally agree that hopefully in future RR builds, your creation becomes a standard feature along with routine software maintenance.

    Thank you again, I will let you know how it goes!

    Joel

  9. #9
    Quote Originally Posted by jaabubby View Post
    Awesome, thank you!

    I'll definitely give this a shot! Also, I am using the Mac version of RR. Thirty seconds should be enough for the indoor tracks that I race on and eight characters would be great to have, but graciously accept three characters. Totally agree that hopefully in future RR builds, your creation becomes a standard feature along with routine software maintenance.

    Thank you again, I will let you know how it goes!

    Joel
    I think this file would do the same thing:
    https://github.com/dmcfarl/RaceRende...matter.command

    I did have some issues getting it running on my wife's Mac, but I only tried for a minute or two (mostly running into permissions issues).

  10. #10
    Potential Tuner
    Join Date
    Jan 2022
    Posts
    7
    Hello HoboBob, could you please post your template file of this F1 style lap times? I would really appreciate your wonderful work!
    Quote Originally Posted by HoboBob View Post
    Do you have an example CSV file that would contain the data for this? I think I could put something together, but I don't want to make assumptions on what data you have available to you, but I'll give an example of input that would make this pretty easy:

    One column with the session time, (potentially one column with the lap number), and N columns with "First Place", "Second Place", "Third Place", etc. that contain the name of the person in that position. This way, the chart can simply react to the labels of the position at the given time (and if I feel fancy enough, dynamically move the lower person above like the real broadcast does).

    I already have a "F1 style" layout for lap times that I could adapt pretty easily.


  11. #11
    Quote Originally Posted by le8gn View Post
    Hello HoboBob, could you please post your template file of this F1 style lap times? I would really appreciate your wonderful work!
    The one I'm currently using requires some extra pre-processing to make it work nicely, but I'll try to adapt it back to just using the lap times again. I should be able to do that soon.

  12. #12
    Potential Tuner
    Join Date
    Jan 2022
    Posts
    7
    Quote Originally Posted by HoboBob View Post
    The one I'm currently using requires some extra pre-processing to make it work nicely, but I'll try to adapt it back to just using the lap times again. I should be able to do that soon.
    Thank you so much! I'm looking forwording to it ;D