Today we proudly present our next vehicle, the Cherrier Vivace! This is a 2020 model year compact hatchback, built on a very flexible modern platform, offering vehicles with a wide range of options. FWD and AWD powertrains are available, with gasoline, diesel, or electric power. And of course, there will be lots of parts to combine and play with!
To present the different stages of the design process, we would like to hand over to some of the members of our Vehicle Design Team that have spent several months working on this newest addition to the BeamNG.drive vehicle family:
Hello, Alexandr here!
Discussing the next vehicle needed for the game, we came to the conclusion that this car should represent a very popular segment of the current automobile market.
This car has to fill missing content in several niches that we have right now:
It became clear that we should develop a modern hatch including an electric configuration to utilize electric system, implemented with the 0.16 update.
Originally the car was to be a Hirochi, but we decided to create a new French brand, allowing us to use some more interesting design solutions.
After figuring out the basics of the future car, I started to develop the design. I wanted to find a unique design that would still be recognizable as a French product with a little bit of that quirkiness that French cars always have.
Started with silhouette and general lines, which have to be unique and recognizable:
Then I added cross section lines to define volume and shapes:
The headlight shape was too futuristic to work with current common technologies, so I started to look for a new shape for them:
I looked into transforming the fenders into a widebody with different taillights:
After all of the design research was done, I ended up with a bunch of curves that represent the body shapes of the car. Finally, I was able to start development of the mesh:
With a general mesh of the body, I could see areas that needed to be redesigned and improved, like the rear bumper and the top and side parts of tailgate:
Also, the seam between hood and front bumper was too straight, making the whole hood look too square, which didn’t support the curviness of the rest of the design. I changed that seam to a curved shape for a better look:
At that point most of the exterior design was finished, but it is just a small part of the work that will be done to finish the whole car. Thank you for your time!
Hey guys, Fabian here. I chose the Vivace as the first vehicle to get my completely revamped driving dynamics package. Driving Dynamics refers to all the little subsystems in a car that try to keep you safe and want to maximize your experience at the same time. So far we had more or less two of these systems:
- ABS (preventing wheel lock-up from happening, keeping the car steerable and stable under heavy braking)
- ESC / Traction Control (Using the brakes to stabilize unwated yaw in the car and preventing excessive wheelslip during acceleration)
These two systems work mostly alright for their intended use case: regular cars with a combustion engine and 4 wheels. However, as we diversify our car pool and our awesome community keeps creating the craziest things, the systems start showing their age. They are not as flexible as I want them to be and they are not extendable in any meaningful way.
About 1.5 years ago I started planning out what would end up being a completely fresh, much more integrated and yet at the same time more flexible system for these tasks. My overall wishlist roughly looked like this:
- Improve traction control to be able to properly support high power AWD cars
- Implement proper eDiff locking strategies
- Improve ESC yaw model to better accomodate different variants of a vehicle
- Make ABS be able to detect when it can’t trust itself anymore to make it overall safer
- Untangle ESC/TC code and modularize everything
- Prepare system for really fancy features like active torque vectoring through different means (diffs, braking, etc)
- Improve usability of tuning all these systems together
- Keep system open for future extensions (from us or modders)
- Do above without killing performance…!
The work on this really took off when I found a fairly recent paper describing an improved method of calculating a trustable vehicle speed. You might not realize it, but within the reference frame of a vehicle it is incredibly complicated to actually know how fast you are going. “Look at the wheelspeed” you might say. Ok, what happens while losing ground contact? Or during excessive wheel slip (braking/accelerating)? “GPS” you might mention. Ok, what about tunnels? What about the inherent inaccuracy of GPS?
In any case, in real life there is no solution to this problem. There are sensors that can measure speed over ground (think of the same thing your computer mouse uses), but they are so impractical that they can’t be used in production vehicles. Instead, real vehicles end up guessing their speed based on a lot of math and some models. We have been doing this as well for a while already as our ABS uses this technique. It works wonderfully as long as it is not majorly confused, at which point the brakes just…stop…working. Not ideal!
The new system for guesstimating the vehicle speed is not just improved in general, it also has the major advantage that it knows when it is failing. So instead of just giving wrong speed values to the rest of the car, the new system can tell that its data is not trustworthy anymore and all other subsystems can then act based on that information.
Why is all of this so important? Because a known good speed reading is the base for a lot of other systems. Not only does the ABS use it, so does ESC and AWD traction control. Knowing the exact speed of the car at any given time is a little holy grail for vehicle software systems.
Here’s a video of that in action:
Note the top graph on the left side, displaying a comparision between the actual “true” airspeed of the car in blue (a value we don’t want to use because it’s impossible to measure IRL) vs what the car thinks about its own speed in green. You can see how the two match perfectly under normal conditions but start diverging when the vehicle goes into a drift. That’s expected and there’s nothing I can do about it. However, you can also see that the color of the green line suddenly becomes red as the car notices that it currently cannot calculate an accurate speed reading. This apparently very small detail enables all other vehicle subsystems to be much smarter about what they do.
Speaking of being smarter, the Vivace will also be among the first cars to feature a fully electronic AWD control. So far we mostly relied on mechanical AWD systems, however, they pose issues when being combined with modern electronic driving aids such as ABS, ESC, traction control etc. Being able to finely control what the AWD system is doing during any situation is important for keeping the vehicle safe and stable.
This also leads to a more realistic behavior of the modern cars as their powertrain now closely replicates real world behavior.
A little demo can be found here:
While not all of my wishlist items will be part of the Vivace, it is all going in the right direction.
Another interesting topic is the engines of this car, to date it has the broadest range of possible motorizations, with multiple gasoline, diesel and electric variants. I opted to go a slightly different route for the ICEs this time: Instead of having multiple turbos for a single block, we now have more different blocks, each with a single adjustable turbo that covers a wider range of power levels.
This means the ECU is now the main controlling factor of engine power, so exchanging it to one from a higher tier config can give you more power on the cheap. We also started applying realistic speed limits to the car, again with realistic options to change or remove the artificial limits.
To wrap this up here’s the current list of powertrain options:
- Petrol 1.0 i3
- Petrol 1.5 i4
- Diesel 1.6 i4
- Diesel 2.0 i4
- Petrol 2.0 i4
- Petrol 2.5 i5
- Single/dual electric motor
Hi everyone, it’s Mitch here. I’m working on the meshes and textures for the engines, suspension and underbody of the Vivace, as well as textures for the lights.
The suspension design of a modern vehicle featuring multiple drivetrain options requires quite a bit of planning. I worked on both low-poly suspension prototypes and high-poly meshes simultaneously, in order to quickly test geometry that worked well with the Jbeam while resolving the more complicated interactions between parts in higher detail.
Once both high-poly and low-poly versions of the suspension and engine meshes were finished, I baked the normals from the high-poly models onto the low-poly parts. All the engine textures are combined into one 1024x1024 image.
I exploded the engine mesh into individual components and used Substance Painter to assign physically based materials to each of them. Substance Painter is capable of generating very subtle and realistic procedural effects such as dirt and rust. There’s not much of it on a new car such as this, but no surface is ever perfect so creating a slightly worn-in appearance is still important. Below you can see a roughness map of the engine generated by Substance Painter.
The textures and meshes are designed to be modular, allowing a 4-cylinder engine to easily be converted into a 3 or 5 cylinder engine simply by trimming or extending the mesh:
Here is the full set of low-poly underbody, engine and suspension meshes, ready for export to BeamNG.drive:
I used Blender’s Eevee viewport renderer to test out lighting functions for the headlights and taillights. Eevee’s physically based renderer with bloom and screen space reflections makes realistic previews a breeze!
Blender can bake the scattered light from emissive materials onto a texture, so I tried using this technique to add the scattered light to the glow map of the vehicle headlights. The result is a subtle but effective spreading of the LED emission sources onto other parts of the headlight component.
Hello, Adam here with the bit about Jbeaming our new vehicle! So far we’ve talked about the body and powertrain design, as well as the software side. A vehicle’s Jbeams are what allows our cars to bend, twist and receive damage. The Cherrier Vivace is a fresh take on how to build a unibody vehicle Jbeam structure. Up until this point, most of our unibody vehicles use the same basic design for their frame structure; a single boxed “spine” down the center of the vehicle, simulating the stiffening effect of the integral frame rails on a real car and being a large factor in the Jbeam structure’s rigidity. Shown here is this principle highlighted on the Ibishu Pessima:
This has worked well enough so far, especially on certain vehicles where the integral frame rails do sit fairly inboard and close to this Jbeam structure. However, most modern unibody vehicles are not like this; the frame rails skirt to the outer edges of the floorpan, with the floorpan acheiving its rigidity from the transmission tunnel and other stamped features. In order to replicate this for the Vivace, we took what was learned from the Piccolina’s unorthodox design and applied it to a new unibody design.
Our new design much more closely fits the real thing, as the rigidity is spread evenly across the whole floor area, rather than just the center. Additionally, the Vivace makes full use of all of the improvements that have been implemented on our other vehicles, such as soft-mounted front and rear subframes, realistically weighted parts and more.
That’s it for now. There are a lot of other parts to our vehicle design process such as audio design, discussing and designing the vehicle variations and extensive Jbeam work based on crash data from similar real-life vehicles. But those are all topics for future dev blogs. We hope you’ve enjoyed this look behind the scenes and look forward to sharing more of our development process in the future.
We’ll end with some glamour shots of this very handsome, beautiful voiture Française. You can look forward to getting behind the wheel in an upcoming release of BeamNG.drive.
PS: Turns out that when you have a development team encompassing several nationalities there’s quite a few different takes on how to pronounce a model name. We’ve heard everything from ‘vee-vah-CHE’ through ‘VY-va-seh’ to ‘vee-WAH-shee’. For the record, the correct way to pronounce ‘Vivace’ is this way.