Driving BLDC motor directly from Generator
You asked about brushless DC motors, which are typically made with permanent magnets.  To approach your question though, it would be useful to first look at 3-phase AC induction motors as commonly used industrially.  While those can be operated with an inverter drive to vary the speed, in simple usage connecting one to 3-phase mains will spin it up with substantial torque.  This is because the magnets in the rotor are electromagnets powered by induced currents, so if the rotor is not spinning at line synchronous speed, the virtual "magnets" are able to rotationally migrate through the physical rotor - the induced magnets spin at line synchronous speed, and the physical rotor hosting them "slips" behind as it accelerates, until it almost catches up.  (It will never quite catch up while doing work, rather a slight slip depending on torque produced will remain.  If the motor were instead to lead the line in rotation rate it would be operating as a generator, and conceptually if coasting at exactly synchronous speed no power would flow in either direction).

Your motor in contrast has permanent magnets permanently fixed in position within its physical rotor.  They cannot "slip" when not spinning at synchronous speed - essentially, you only produce useful torque when connected to a mulitphase AC source cycling at the same rate as the poles are passing the coils (or possibly a harmonically related one).  You could almost think of this type of motor as a stepper motor with relatively few steps per rotation driven in a fine microstep mode, and like a stepper motor if it lacks torque to overcome the load, it will vibrate rather than turn - it cannot meaningfully turn slower than the synchronous speed.  

As a result, to drive a BLDC motor, you really need drive electronics which "find" the rotor position, and match the line frequency to the rotation rate, accelerating up to desired speed.  For low-speed, highly-loaded motors this is typically done with hall effect sensors to directly determine the rotor position.  At higher speeds it is possible and more effective to use back-EMF detection with the drive coil themselves.  (For motors that start under minimal load, for example, driving model aircraft propellers, it can be possible for a starting algorithm to accelerate the motor open-loop up to a speed where back-EMF detection starts working, though this is not perfectly reliable).

But "open-loop" drive of a BLDC motor in ignorance of the rotor position and rotation rate tends to work quite poorly for doing actual work.  You can, as a breadboard demonstration wire a small CD-ROM BLDC motor to a driver (potentially even some MCU GPIOs) and excite it with a 3 phase square-wave.  If the load is light enough, or potentially if you pre-spin the motor, it can end up running - but it will have very low torque, and once forced away from synchronous speed it will merely vibrate, not exert useful torque to re-synchronize the load in the way that a slipping induction motor could.   

So in summary, if you want a motor which can produce useful torque to accelerate a load to near-synchronous rotation with a fixed line frequency, you need an AC induction motor; if you want to use a BLDC motor, you need drive electronics which vary the drive frequency to match the instantaneous phase to the actual rotational state of the motor.

In terms of drive waveforms, sine wave would be the most natural.  In simple small systems square wave would work crudely.  Most real systems use PWM to approximate a sinewave in the local average.