With this release I have made UI code repo public (it was anyway accessible to all ) as I am not able to work much on it. Feel free to contribute any changes you would like . Backend (writer/http process) code is still private
Github: https://github.com/back-marker/sim-view-ui
Added support for SSL/TLS in both Writer/HTTP process. Both HTTP and WebSocket connection are secured. Check config.toml for more detail.
Writer process won't crash now when pit boundary cannot be constructed (due to missing KN5 files or any other reason). A warning will be logged to indicate this as pit entry/exit detection won't work in this case.
Writer/HTTP now take path (absolute/relative) to config.toml file as arguments.
Both processes will now search for config.toml in current working directory first then will look into config folder when no parameter given.
Added doc. for integrating automatic start/stop with ACSM (single server + multi server).
Bug:
Fixed file path not printed correctly when relative path is set in game.path config.
Fixed failure in pitlane boundary creation when integer prefix is present in key name for pitlane mesh in surfaces.ini.
Fixed packets folder being created when AC server restarts (you can safely delete this folder if present).
Note: config.detail.toml file changed. Replace your config.toml file with new one
SimViewTool executable now available can be used to generate required files from KN5 model file of tracks from you AC installation. You can now just upload the generared file to server instead of KN5 files. This will save disk space on your server as KN5 are huge in size. Refer manual on how to use SimViewTool.
Added consistency tab in results page. It shows drivers absolute error and consistency percent.
Added graphs tab in result page containing following graphs:
Lap time variation using boxplot
Lap time per lap
Pace per lap
Position per lap
All graphs support zoom and panning
Bug:
Fixed straight line drawn between first and last point in telemetry graph.
Fixed issue with country flags. Check config.detail.toml on how to get new country codes.
Note:config.detail.toml file changed. Replace your config.toml file with new one
Fixed issue with simview-1.2.sql script which caused it to create a new database (simview_1_2) on import. Only those who had fresh install through this script it would have created new database.
Telemetry for single lap can be viewed and can be compared with one other lap
Currently shows Speed vs position, gear vs position and racing line on track map (same for comparison)
Single lap telemetry can be viewed from Best Lap page and Results page (standings tab for qualification/practice session and any lap in stints tab)
Comparing lap can be done from Bestlap page only by selecting two laps
Directly going to analysis page will show latest finished lap telemetry
Telemetry is saved for valid laps only and with min speed of 1km/hr. So it is skipped for in-lap, out-lap, stopping on track
Default AC Realtime interval set to 200ms (5Hz) for more accurate telemetry, and can be tuned further in config.toml
Track map now has sidelines for telemetry. New track maps will be automatically generated to replace old ones.
New config (ac.server.event.lap.telemetry.enable) to enable/disable telemetry
Note: config.detail.toml file changed. Replace your config.toml file with new one Note: DB schema changed. If you were using older version, DB migration will be happen. Follow steps from the manual
Live leaderboad will now work completely with AC servers running using Assetto Corsa Server Manager (ACSM) v2+ versions. Huge thanks to Callum Jones and team from ACSM for making this possible. Enable this feature with ac.server.udp.use.acsm.udp config when running AC servers from ACSM v2+ versions.
Bug:
Fixed lights countdown timer in race session rendering in 2 lines in some cases.
Note: config.detail.toml file changed. Replace your config.toml file with new one
A lot of fundamental changes so marking it v1.0. Hoping it performs and look better now.
ChangeLog:
Performance:
Moved live leaderboard API to Writer process. Single thread in Writer process will serve leaderboard API over configurable port (defaults to ac.server.udp.local.port). This port need to be opened to public (along with port for HTTP process) for Live Leaderboard to work now.
Changed live leaderboard API to WebSocket broadcast with binary data
Improved leaderboard serialisation performance to handle large leaderboard
Session feeds will now not be buffered at server side. It will now only send new feed generated since its last refresh
Writer process will now only use 1 connection to DB.
Leaderboard APIs now had start, current grip reducing extra request to HTTP process
Added new APIs to get multiple car/driver/teams in single request instead of doing multiple request to HTTP process. This APIs have per thread cache enabled with improved serialisation specific for live leaderboard
HTTP process will now use per thread DB connection instead of pool to avoid lock contention
Result stint tab will now not load all stints at once, but only when clicked on specific stint. For long duration events it used to request lot of data from HTTP process
Added compression for all HTTP static files
Added API to get multiple latest sessions in one requests
Made number of threads for HTTP process to be automatically decided, config (app.server.threads) is still there to override if needed.
Enhancement:
Leaderboard now highlights personal best, session best last lap, sector times in practice/qualification/race leader-boards
Tyre used is now shown in live leaderboard, result and best-lap page
Added car track position indicator in last lap column in leaderboard (above last lap time)
Redesigned session feed UI
Added Live viewers count in leaderboard
Improved pit boundary computation for track which has very narrow pit entry and exit
Added SimView favicon icon for browser tabs
HTTP process will now honour If-Modified-Since header for static files request for browser to be able to cache files
Changed "Last Lap" to "Final Lap" in countdown
Show message when disconnected from leaderboard API and when high response time variation is observed in leaderboard API (indicating some issue with connection)
Config app.live.session.leaderboard.cache.size removed as leaderboard API is removed from HTTP process
Added config (ac.server.udp.realtime.update.interval.ms) for UDP real-time position interval set in AC server. (default 500ms)
Added config (writer.leaderboard.broadcast.interval.ms) to control leaderboard refresh interval. (default 2s). UI animations will sync with this configured interval.
Removed Date response headers of HTTP responses
Few back-end changes to enabled UDP packet logging to generate data for simulating sessions
Bug:
Now elapsed session time will be used for countdown during time based sessions. This should bring SimView countdown close to AC in-game countdown.
Fixed extra pit exit feed shown when driver loads into the server
Fixed wrong last lap shown when same driver connects with different car
Fixed last stored combo not cleared in best-lap page when the combo is not valid any more
Note: DB schema changed. If you were using older version, DB migration will be happen. Follow steps from the manual Note:config.detail.toml file changed. Replace your config.toml file with new one
Improved pit entry and exit detection logic, similar to Fair Racing App. No manual configuration required. Pit stop time in feed will now be from pit entry to pit exit (duration when speed limiter is active). This will required track's kn5 files to be accessible to SimView in track path
Added fallback to main content folder (first checks in server content folder) for files required by SimView
Removed position change, offtrack and rejoins feed event as it clutter feed
Show teleport to pit event in feed
Bug:
Fixed drivers gaining 1 lap erroneously for a moment when crossing start-finish line. This will fix abrupt leaderboard position changes.
Fixed Writer crashing when server_cfg.ini cannot be parsed, and set limit for car list to 1000 chars
Fixed Writer crashing when empty GUID or extra ; found in entry_list.ini file
Fixed Writer crashing when track name contains '/' due to csp
Fixed password being shown in UI when chat enabled and ignore all chats starting with '/'
Fixed bug in v0.9 -> v0.10 migration scripts which caused session feed to not work
Fixed s1 s1 s1 showing in leaderboad sector columns for race session
Note: DB schema changed. If you were using older version, DB migration will be required. Follow steps from the manual
Improve live map generation to now use side lines from fast_lane.ai instead of ideal line. This will give more accurate track representation. For custom tracks which don't have side lines use this awesome app "AI Line Helper" from RD to add them.
Added offtrack and in pitlane status in live leaderboard and track map. It should detect teleport to pit as well.
New events in session feed:
Offtrack and subsequent rejoins from driver with track location
Pit entry and pit exit with total time spend in pit lane. Timer start when driver is "off the track" and entered the pit lane road and stops when driver is back "on track"
Best laps page will now remember your last combo viewed and will open it when you revisit.
Position gain and lose will now be shown in live leaderboard with green and red arrows.
Added hide option for whole car class in live track map.
Added tooltip for various leaderboad columns
Full name of driver or team for team event will be shown on hovering on particular car on live track map.
Session feed cache count increased to 50.
Bug:
Fix issue where HTTP process crashes if it receives concurrent requests during its startup
Note: DB schema changed. If you were using older version, DB migration will be required. Follow steps from the manual
Collisions (with corner names) and indicator on map
Session/stint best lap
Driver position change in leader board
Users chat messages (disabled by default in config)
30 feed events are caches in HTTP process, on browser side no limit. Refreshing page will only show last 30 events.
Enhancement:
Significant performance improvement in Writer process while data to DB. Should also fix issue when HTTP process seems behind in time.
Live map format updated to integrate with session feed. If you have old maps they will be automatically replaced with new ones.
Added handling for packet loss for session start and driver connect and disconnect packet.
Added option to get more entries in BestLaps page - by default 10 and max 50.
Moved some log to DEBUG to reduce HTTP process log file size.
Bug:
Removed temp name feature for team event which caused issue with driver names automatically changing to team names
Fix speed in best lap page capped at 255KM/HR
Fix issue when other connected plugin connect to AC server sets very low real-time position and cause performance issue with Writer process. Writer process will now write data at fixed rate.
Fixed issue which allowed same cars to be selected multiple time in best laps page.
Drivers list will be shown in alphabetical order in Driver page
Note:config.detail.toml file changed. Replace your config.toml file with new one Note: DB schema changed. If you were using older version, DB migration will be required. Follow steps from the manual
I have setup a server with SimView to iron out some bugs. It would be great if some of you guys can join the session and do some laps. Search SimView in CM/server browser. I will be monitoring it for any issue and will keep it running for a day or two. You can view SimView UI for this server from here.