<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def scatter_plot(self, ax, topic_dims, t=None, ms_limits=True, **kwargs_plot):
 """ 2D or 3D scatter plot. :param axes ax: matplotlib axes (use Axes3D if 3D data) :param tuple topic_dims: list of (topic, dims) tuples, where topic is a string and dims is a list of dimensions to be plotted for that topic. :param int t: time indexes to be plotted :param dict kwargs_plot: argument to be passed to matplotlib's plot function, e.g. the style of the plotted points 'or' :param bool ms_limits: if set to True, automatically set axes boundaries to the sensorimotor boundaries (default: True) """

        plot_specs = {'marker': 'o', 'linestyle': 'None'}
        plot_specs.update(kwargs_plot)

        # t_bound = float('inf')
        # if t is None:
            # for topic, _ in topic_dims:
                # t_bound = min(t_bound, self.counts[topic])
            # t = range(t_bound)
        # data = self.pack(topic_dims, t)
        data = self.data_t(topic_dims, t)

        ax.plot(*(data.T), **plot_specs)
        if ms_limits:
            ax.axis(self.axes_limits(topic_dims))